XGEM

Version 1.69

Jürgen Kriege

23. Oktober 1991

XGEM ist ein Objektfile für TURBO C 2.0/PURE C und alle DRI-kompatiblen Linker für den ATARI ST/TT und bietet folgendes:

• freibewegliche Dialoge mit ’Durchblendemöglichkeit’

• Buttonanwahl über Tastatur

• Checkboxen (mit Tastaturanwahl)

• runde Radiobuttons (mit Tastaturanwahl)

• ’form xalert’-Aufruf entsprechend ’form alert’-Aufruf nur eben auch mit Tastaturbuttons und optional mit einem eigenen Image

• läuft auf allen TOS-Versionen und in allen Auflösungen

• Variablen- und Parameterkompatibel mit ’form dial’, ’objc draw’, ’form do’ & ’form alert’

XGEM ist bei nicht kommerzieller Verwendung Freeware, entwickelt von:

Jürgen Kriege Gröbelweg 13 W-4500 Osnabrück

☎ (0 541) 59 74 19 JKRIEGE@DOSUNI1.BITNET JK@OS.MAUS.DE 0541597419-0001.BTX

XGEM darf von jedermann kopiert und zu privaten Zwecken kostenlos genutzt werden. Kommerzielle Softwarehersteller müssen einen Beitrag zahlen – Private dürfen.

In der Applikation ist ein Hinweis auf die Verwendung meiner XGEM-Routinen anzubringen. Der Vertrieb über Public-Domain-Disketten etc. ist untersagt.

Wer will, d.h. wer XGEM regelmäßig seinen privaten Programmen zulinkt, wird gebeten mir als Rückmeldung eine Nachricht zukommen zu lassen. Hieraus könnte ich ersehen, wie stark der Bedarf an XGEM und deren Weiterentwicklung ist. Konditionen für kommerzielle Programme müssen individuell ausgehandelt werden.

Da die Anleitung hauptsächlich aus der beigefügten Demo besteht, sind alle Dateien weiterzukopieren, d.h.:

XGEM.TEX  dieser Text
XGEM.DVI  (dito)
XTEST.C  die eigentliche Demo
XTEST.APP  (dito)
XTEST.H  Ressourcedatei dazu
XTEST.RSC  (dito)
XTEST.RSD  (dito)
XGEMPRO.H  XGEM - Funktionsprototypen
XGEMLIB.O  XGEM - Library im TC-Format
(XGEM DRI.O) XGEM - Library im DRI-Format

nur auf Anforderung erhältlich

XTEST.PRJ  Projektdatei zur Demo
EXTOBFIX.PRG Zusatzprogramm zum Resource-Construction-Set

INTERFACE der Firma SHIFT

BITBLK.PRG  wandelt 32000er Bilder in ein RSC

Kurzanleitung:

1. Für jeden erweiteren Dialog ein ’rsrc xgaddr’ statt des üblichen ’rsrc gaddr’ durchführen. Parameter und Rückgabewerte wie ’rsrc gaddr’.

2. Untergrund retten mit ’form xdial(FMD START, ...)’

3. Dialog zeichnen mit ’objc xdraw’.

Parameter und Rückgabewerte wie ’objc draw’.

4. Dialog abfragen mit ’form xdo’.

Parameter und Rückgabewerte wie ’form do’.

5. Objekte mit ’objc xchange’ ändern, ...

6. Untergrund restaurieren mit ’form dial(FMD FINISH, ...)’

Weiterhin kann der alte ’form alert’ durch ein ’form xalert’ ersetzt werden. Parameter und Rückgabewerte im Prinzip wie üblich. Neuheit: Es kann ein eigenes IMAGE in den ’form xalert’ eingesetzt werden. Hierzu ist die Nummer des gewünschten Image auf -1 zu setzten und als zusätzlicher dritter Parameter ein Zeiger auf ein Image (BITBLK ∗) anzugeben (siehe hierzu die Demo). Es ist ein Programm beigefügt (BITBLK.PRG), das 32000er Bilder in ein RSC-File verwandelt.

Wird vor dem Anklicken der Verschiebe-Ecke die ALTERNATE -Taste oder die rechte Maustaste gedrückt, wird der Dialog bzw. der Form-Alert an der aktuellen Position (optisch) gelöscht und es wird nur noch der Rahmen gezeichnet, der dann wie üblich verschoben werden kann. Dies hat den Vorteil, daß insbesondere Leute mit großen Dialogen und kleinen Monitoren, mal eben kurz den Dialog ausblenden können um nachzusehen was sich darunter befindet.

Damit die x-Routinen die neuen Objekte erkennen können, müssen diese im oberen Wort des ’ob type’ mit speziellen Werten versehen werden. Mit welchen EXTENDED-Werten die jeweiligen Objekte zu versehen sind, entnehme man der Datei XGEMPRO.H oder schaue einmal ins

XTEST.RSC.

Um die Versionsnummer von XGEM herauszubekommen, existiert in der Variablen ’cnf xgem’ zu deklarieren als ’extern CONFIG XGEM cnf xgem’ (Definition in XGEMPRO.H) eine Zeichenkette in dem Eintrag ’cnf xgem.xgvers’ der die Version im Format “x.xx“ angibt. Das Erstellungsdatum steht in ’cnf xgem.xgdate’. Alternativ kann die Version bzw. SCCS-ID auch mit dem Toolprogramm what.tos abfragt werden.

Was noch (immer) nicht geht:

• Das verschachtelte Aufrufen mehrerer Dialoge

Was noch drin ist:

• Benutzereigne Flugobjekte hatten bislang bekanntlich den EXTENDED-Wert 8 und wurden von XGEM durchgestrichen (Eselsohr-Effekt). Ab sofort verhalten sich Objekte mit dem Wert 9 genau so, werden aber nicht mehr durchgestrichen.

• Per EXTOBFIX ist das Austesten der Dialoge unter dem Resource-Construction-Set IN-TERFACE der Firma SHIFT möglich. Genaueres hierzu findet sich im Handbuch zu INTERFACE.

• Konfigurieren von XGEM:

Überlicherweise ’fliegen’ Dialoge und FormAlerts genau dann, wenn ein EXTENDED-Objekt mit den Werten 8 oder 9 angeklickt wird. XGEM läßt sich aber auch so konfigurieren, daß beim Anklicken eines nicht selektierbaren Objektes geflogen werden kann! Hierzu ist ’fly mode’ in der Variablen ’cnf xgem’ zu setzen:

    extern CONFIG_XGEM cnf_xgem;    /* die Konfig-Struktur bekannt machen */
    cnf_xgem.fly_mode = 1;

Abschalten läßt sich diese Option natürlich durch das Setzen des Wertes auf 0.

Über das Setzen von ’wm redraw’ in ’cnf xgem’ läßt sich bei einem ’form xdial(FMD FINISH, ...)’ ein zwangsweises Updaten aller Fenster erreichen. Dieses sollte man allerdings nur in ’Notfällen’ und auch nur kurzzeitig einsetzen, da meist unnötig viele Updates stattfinden.

Beide Variablen sind zu Programmstart auf Null gesetzt.

• Für die HELP- und UNDO-Taste lassen sich spezielle Buttons einrichten, die vom Benutzer definierte Funktionen aufrufen können. Werden keine Funktionen auf die Buttons gelegt, verhalten sich diese wie ganz normale Buttons.

• rsrc xgaddr kann auf einen Dialog beliebig oft angewandt werden; bislang war nur einer erlaubt.

• Bei EDIT-Feldern kann der ASCII-Wert eines Zeichens direkt eingegeben werden. Hierzu INSERT drücken und anschließend den Wert (Angaben in Zahlen von 0 bis 9), gefolgt von einem RETURN bzw. ENTER. Das RETURN/ENTER entfällt, wenn die Angabe dreistellig vorgenommen wird.