Diese Bibliothek enthält nützliche Funktionen zur Verarbeitung von Dialog- bzw. Alarmboxen aller Art. Für diesen Zweck stehen die folgenden Routinen zur Verfügung:
• form_alert | Alertbox darstellen. |
• form_button | Simulieren eines Mausklicks. |
• form_center | Zentrieren eines Objektes. |
• form_dial | Bildschirmspeicher reservieren und freigeben. |
• form_do | Behandlung eines Dialogs. |
• form_error | Betriebssystemfehlermeldung ausgeben. |
• form_keybd | Auswerten einer Tastatureingabe. |
• form_popup | Verwaltung eines Popup-Menüs. |
• form_wbutton | Simulieren eines Mausklicks (im Fenster). |
• form_wkeybd | Auswerten einer Tastatureingabe (im Fenster). |
• form_xdial | Bildschirmspeicher reservieren/freigeben (Flydials). |
• form_xdo | Erweiterte Dialogbehandlung. |
• form_xerr | Betriebssystemfehlermeldung ausgeben. |
• xfrm_popup | Verwaltung eines Popup-Menüs, erweiterte Version |
• x_form_center | Zentrieren eines Objektes. |
• x_form_error | Betriebssystemfehlermeldung ausgeben. |
• x_form_filename | Konvertiert ein standard GEMDOS Dateiname in einem editierbaren Feld in einem Dialog. |
• x_form_mouse | Handle mouse clicks in a dialog, including editable cursor movement. |
Hinweis: Einige dieser Funktionen sind nur unter MagiC vorhanden, und bieten viel zusätzlichen Komfort (z.B. verschiebbare Dialogboxen).
Querverweis: Dialogboxen Style-Guidelines Scrollende Eingabefelder
Name: | »Form alert box« - zeichnet eine Alarmbox.
| ||||||||||||||||||||||||||||||
AES-Nummer: | 52
| ||||||||||||||||||||||||||||||
Deklaration: | int16_t form_alert ( int16_t fo_adefbttn, CONST int8_t
*fo_astring );
| ||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion stellt eine Alarmbox auf dem Bildschirm dar und
gibt die Nummer des Buttons zurück, mit dem die Alarmbox verlassen
wurde. Der Bildschirmhintergrund wird dabei vom AES gesichert.
Der Parameter fo_adefbttn bestimmt die Nummer des Defaultbuttons der darzustellenden Alarmbox. Es gilt:
Der Parameter fo_astring ist ein Zeiger auf den String, der das Aussehen der Alarmbox bestimmt. Das verwendete Format ist "[n][lines][buttons]" wobei n die Nummer des einzublendenden Icons ist:
Hinweis: Die zur Verfügung stehenden Icons sollten nicht willkürlich eingesetzt werden, sondern zur jeweiligen Situation passen, d.h:
Die Komponente lines beschreibt die einzelnen Textzeilen. Es sind höchstens fünf Textzeilen mit maximal 30 Zeichen, die durch das Zeichen '|' getrennt werden, erlaubt. Die Komponente buttons beschreibt die Texte für höchstens drei Buttons, die durch das Zeichen '|' getrennt werden.
| ||||||||||||||||||||||||||||||
Ergebnis: | Als Ergebnis wird die Nummer des Buttons geliefert, mit dem die
Alertbox verlassen wurde; dabei besitzt der ganz links stehende Button
den Wert 1.
| ||||||||||||||||||||||||||||||
Verfügbar: | In allen AES Versionen.
| ||||||||||||||||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||||||||||||||||
Querverweis: | Binding
|
C: | int16_t form_alert ( int16_t fo_adefbttn, CONST int8_t
*fo_astring );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t form_alert (int16_t fo_adefbttn, CONST int8_t *fo_astring) { int_in[0] = fo_adefbttn; addr_in[0] = fo_astring; return ( crys_if(52) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Button« - simuliert das Anklicken eines Objektes
| ||||||||||||
AES-Nummer: | 56
| ||||||||||||
Deklaration: | int16_t form_button ( OBJECT *fo_btree, int16_t fo_bobject,
int16_t fo_bclicks, int16_t *fo_bnxtobj );
| ||||||||||||
Beschreibung: | Die Funktion simuliert das Anklicken eines Objektes. Es gilt:
Hinweis: Bei einem Doppelklick auf ein Objekt mit TOUCHEXIT, wird im Parameter fo_bnxtobj Bit-15 gesetzt. Die Rechteckliste wird von dieser Funktion nicht beachtet. | ||||||||||||
Ergebnis: | Der Rückgabewert der Funktion ist Null, falls ein Exitobjekt
selektiert wurde, sonst ist er positiv.
| ||||||||||||
Verfügbar: | All AES versions.
| ||||||||||||
Gruppe: | Formulare
| ||||||||||||
Querverweis: | Binding OBJECT evnt_multi form_keybd
|
C: | int16_t form_button ( OBJECT *fo_btree, int16_t fo_bobject,
int16_t fo_bclicks, int16_t *fo_bnxtobj );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_button (OBJECT *fo_btree, int16_t fo_bobject, int16_t fo_bclicks, int16_t *fo_bnxtobj) { int_in[0] = fo_bobject; int_in[1] = fo_bclicks; addr_in[0] = fo_btree; crys_if (56); *fo_bnxtobj = int_out[1]; return ( int_out[0] ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form centered Object« - zentriert ein Objekt auf dem
Bildschirm.
| ||||||||||||
AES-Nummer: | 54
| ||||||||||||
Deklaration: | int16_t form_center ( OBJECT *fo_ctree, int16_t *fo_cx, int16_t
*fo_cy, int16_t *fo_cw, int16_t *fo_ch );
| ||||||||||||
Beschreibung: | Die Funktion zentriert ein Objekt in der Bildschirmmitte, und
liefert die tatsächliche Position des Objektes zurück. Es gilt:
Hinweis: Die Funktion berücksichtigt auch spezielle Attribute des Objektes, wie z.B. OUTLINED (nicht jedoch SHADOWED). Ab PC-GEM/3 wird der Objektbaum in y-Richtung nicht mehr auf dem ganzen Bildschirm zentriert. Begründet wurde dies damit, dass ein Benutzer auf Großbildschirmen ansonsten einen zu weiten Weg von der Menüzeile bis zum Objekt (etwa einer Dialogbox) zurücklegen muss. | ||||||||||||
Ergebnis: | Als Ergebnis wird immer eine 1 zurückgegeben.
| ||||||||||||
Verfügbar: | All AES versions.
| ||||||||||||
Gruppe: | Formulare
| ||||||||||||
Querverweis: | Binding x_form_center OBJECT objc_offset
|
C: | int16_t form_center ( OBJECT *fo_ctree, int16_t *fo_cx, int16_t
*fo_cy, int16_t *fo_cw, int16_t *fo_ch );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_center (OBJECT *fo_ctree, int16_t *fo_cx, int16_t *fo_cy, int16_t *fo_cw, int16_t *fo_ch) { addr_in[0] = fo_ctree; crys_if (54); *fo_cx = int_out[1]; *fo_cy = int_out[2]; *fo_cw = int_out[3]; *fo_ch = int_out[4]; return (int_out[0]); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Dialog Space« - reserviert oder gibt Speicherplatz frei
für ein Dialogobjekt.
| ||||||||||||||||||||||
AES-Nummer: | 51
| ||||||||||||||||||||||
Deklaration: | int16_t form_dial ( int16_t fo_diflag, int16_t fo_dilittlx,
int16_t fo_dilittly, int16_t fo_dilittlw, int16_t fo_dilittlh, int16_t
fo_dibigx, int16_t fo_dibigy, int16_t fo_dibigw, int16_t fo_dibigh );
| ||||||||||||||||||||||
Beschreibung: | Die Funktion übernimmt abhängig von den übergebenen
Parametern verschiedene Aufgaben. Es gilt:
Hinweis: Durch den Opcode FMD_FINISH erhalten alle betroffenen Fenster vom AES eine WM_REDRAW Nachricht. Die Menüzeile kann auf diese Art jedoch nicht restauriert werden, da sie außerhalb des Arbeitsbereichs des Desktop-Fensters liegt. Die Opcodes FMD_GROW und FMD_SHRINK sind in PC-GEM Version 2.0 den Rechtsstreitigkeiten zwischen Apple und Digital Research zum Opfer gefallen. | ||||||||||||||||||||||
Ergebnis: | Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird.
| ||||||||||||||||||||||
Verfügbar: | In allen AES Versionen.
| ||||||||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||||||||
Querverweis: | Binding evnt_mesag form_xdial graf_growbox
graf_shrinkbox
|
C: | int16_t form_dial ( int16_t fo_diflag, int16_t fo_dilittlx,
int16_t fo_dilittly, int16_t fo_dilittlw, int16_t fo_dilittlh, int16_t
fo_dibigx, int16_t fo_dibigy, int16_t fo_dibigw, int16_t fo_dibigh );
| ||||||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_dial (int16_t fo_diflag, int16_t fo_dilittlx, int16_t fo_dilittly, int16_t fo_dilittlw, int16_t fo_dilittlh, int16_t fo_dibigx, int16_t fo_dibigy, int16_t fo_dibigw, int16_t fo_dibigh) { int_in[0] = fo_diflag; int_in[1] = fo_dilittlx; int_in[2] = fo_dilittly; int_in[3] = fo_dilittlw; int_in[4] = fo_dilittlh; int_in[5] = fo_dibigx; int_in[6] = fo_dibigy; int_in[7] = fo_dibigw; int_in[8] = fo_dibigh; return ( crys_if(51) ); } | ||||||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form do Dialog« - führt den Dialog mit dem Anwender durch.
| ||||||||
AES-Nummer: | 50
| ||||||||
Deklaration: | int16_t form_do ( OBJECT *fo_dotree, int16_t fo_dostartob );
| ||||||||
Beschreibung: | Die Funktion übernimmt die Behandlung von Benutzeraktionen in
einem Formular. Es gilt:
Hinweis: Die Funktion kehrt erst dann zurück, wenn der Benutzer ein Objekt mit EXIT- bzw. TOUCHEXIT Status aktiviert. | ||||||||
Ergebnis: | Als Ergebnis wird der Index des Objekts zurückgegeben, mit
dessen Hilfe der Dialog beendet wurde. Bei einem Doppelklick wird
zusätzlich das 15. Bit gesetzt.
| ||||||||
Verfügbar: | All AES versions.
| ||||||||
Gruppe: | Formulare
| ||||||||
Querverweis: | Binding form_xdo OBJECT
|
C: | int16_t form_do ( OBJECT *fo_dotree, int16_t fo_dostartob );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t form_do (OBJECT *fo_dotree, int16_t fo_dostartob) { int_in[0] = fo_dostartob; addr_in[0] = fo_dotree; return ( crys_if(50) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Error« - stellt eine Fehlerbox für TOS-Fehler dar.
|
AES-Nummer: | 53
|
Deklaration: | int16_t form_error ( int16_t fo_enum );
|
Beschreibung: | Die Funktion gibt eine MS-DOS Fehlernummer im Klartext (d.h. in
einer Alertbox) aus.
Der Parameter fo_enum ist dabei die entsprechende Fehlernummer. Hinweis: Diese Funktion ist aus Kompatibilitätsgründen zum PC-GEM vorhanden. Auf TOS-Systemen muß daher zunächst die GEMDOS-Fehlernummer auf die MS-DOS Codierung umgerechnet werden. Für die Umrechnung (GEMDOS -> MS-DOS) kann z.B. die folgende Formel benutzt werden: (~fo_enum) - 30. In N.AES gibt es einer erweiterte Form von form_error mit allen GEMDOS-Fehlercodes. Deren vorhandensein kann mit appl_getinfo (Opcode 64) festgestellt werden. Geneva interpreted a negative number as a GEMDOS/BIOS error code, and an appropriate error message is displayed. For instance, the call: form_error(-33); produces an alert with the text "There is no file with this name". |
Ergebnis: | Als Ergebnis wird die Nummer (1-3) der ausgewählten Option
zurückgegeben. Bei jetzigen GEM-Versionen steht jedoch nur eine
Option zur Verfügung.
|
Verfügbar: | In allen AES Versionen.
|
Gruppe: | Formulare
|
Querverweis: | Binding form_xerr form_error in N.AES
|
C: | int16_t form_error ( int16_t fo_enum );
| ||||||||||||||||||||||||
Umsetzung: |
int16_t form_error (int16_t fo_enum) { int_in[0] = fo_enum; return ( crys_if(53) ); } | ||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Keyboard« - Nimmt Tastatureingaben in ein Formular vor.
| ||||||||||||||||
AES-Nummer: | 55
| ||||||||||||||||
Deklaration: | int16_t form_keybd ( OBJECT *fo_ktree, int16_t fo_kobject,
int16_t fo_kobnext, int16_t fo_kchar, int16_t *fo_knxtobject, int16_t
*fo_knxtchar );
| ||||||||||||||||
Beschreibung: | Die Funktion übernimmt Tastatureingaben in ein Formular. Es
gilt:
Bei der Eingabe wird ggfs. das Edit-Objekt geändert (Cursortasten oder Tabulator), oder das Default-Objekt selektiert (Return). Hinweis zu MagiC, N.AES: Wird als Objektnummer der Wert 0x8765 angegeben, so werden Tasten verarbeitet, die zusammen mit der Alternate-Taste betätigt wurden. Falls ein passendes Objekt gefunden wurde, wird der Wert 1 zurückgegeben, das Zeichen gelöscht, und in fo_knxtobject die zugehörige Objektnummer übergeben. | ||||||||||||||||
Ergebnis: | Der Rückgabewert der Funktion ist Null, falls ein Exitobjekt
gewählt wurde, sonst ist er positiv.
| ||||||||||||||||
Verfügbar: | All AES versions.
| ||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||
Querverweis: | Binding OBJECT objc_edit form_button form_wkeybd
|
C: | int16_t form_keybd ( OBJECT *fo_ktree, int16_t fo_kobject,
int16_t fo_kobnext, int16_t fo_kchar, int16_t *fo_knxtobject, int16_t
*fo_knxtchar );
| |||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_keybd (OBJECT *fo_ktree, int16_t fo_kobject, int16_t fo_kobnext, int16_t fo_kchar, int16_t *fo_knxtobject, int16_t *fo_knxtchar) { int_in[0] = fo_kobject; int_in[1] = fo_kchar; int_in[2] = fo_kobnext; addr_in[0] = fo_ktree; crys_if (55); *fo_knxtobject = int_out[1]; *fo_knxtchar = int_out[2]; return ( int_out[0] ); } | |||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Popup« - verwaltet ein Popup-Menü
| ||||||||||
AES-Nummer: | 135
| ||||||||||
Deklaration: | int16_t form_popup ( OBJECT *tree, int16_t x, int16_t y );
| ||||||||||
Beschreibung: | Die Funktion stellt ein Popup-Menü auf dem Bildschirm dar,
und übernimmt dessen Verwaltung. Es gilt:
Hinweis: Falls die Parameter x und y den Wert 0 besitzen, werden die entsprechenden Werte aus der Objektstruktur beachtet, und das zentrieren entfällt. Es wird immer dafür gesorgt, daß das Popup vollständig auf dem Bildschirm liegt. Wählbare Objekte müssen den Status SELECTABLE, nicht wählbare Objekte den Status DISABLED erhalten. Das Objekt mit der Nummer 0 im Objektbaum, sollte den Typ G_BOX oder G_IBOX besitzen. | ||||||||||
Ergebnis: | Die Funktion liefert die Nummer des gewählten Objektes aus dem
Popup-Menü oder den Wert -1.
| ||||||||||
Verfügbar: | Seit MagiC 1.11, kann aber auch per appl_getinfo (Opcode 9) abgefragt
werden, da andere System die Funktion auch kennen.
| ||||||||||
Gruppe: | Formulare
| ||||||||||
Querverweis: | Binding OBJECT xfrm_popup
|
C: | int16_t form_popup ( OBJECT *tree, int16_t x, int16_t y );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_popup (OBJECT *tree, int16_t x, int16_t y) { int_in[0] = x; int_in[1] = y; addr_in[0] = tree; return ( crys_if(135) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Window Button« - simuliert das Anklicken eines Objektes
in einem Fenster.
| ||||||||||||||
AES-Nummer: | 63
| ||||||||||||||
Deklaration: | int16_t form_wbutton ( OBJECT *fo_btree, int16_t fo_bobject,
int16_t fo_bclicks, int16_t *fo_bnxtobj, int16_t whandle );
| ||||||||||||||
Beschreibung: | Die Funktion simuliert das Anklicken eines Objektes in einem
Fenster. Es gilt:
Hinweis: Bei einem Doppelklick auf ein Objekt mit TOUCHEXIT, wird im Parameter fo_bnxtobj Bit-15 gesetzt. Die Funktion entspricht im wesentlichen form_button mit dem Unterschied, dass hier die Rechteckliste eines Fensters beachtet wird. Die Funktion steht in MagiC ab Version 5.10 zur Verfügung. | ||||||||||||||
Ergebnis: | Der Rückgabewert der Funktion ist Null, falls ein Exitobjekt
selektiert wurde, sonst ist er positiv.
| ||||||||||||||
Verfügbar: | ab MagiC Version 5.10
| ||||||||||||||
Gruppe: | Formulare
| ||||||||||||||
Querverweis: | Binding OBJECT evnt_multi form_keybd
|
C: | int16_t form_wbutton ( OBJECT *fo_btree, int16_t fo_bobject,
int16_t fo_bclicks, int16_t *fo_bnxtobj, int16_t whandle );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_wbutton (OBJECT *fo_btree, int16_t fo_bobject, int16_t fo_bclicks, int16_t *fo_bnxtobj, int16_t whandle) { int_in[0] = fo_bobject; int_in[1] = fo_bclicks; int_in[2] = whandle; addr_in[0] = fo_btree; crys_if (63); *fo_bnxtobj = int_out[1]; return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Window Keyboard« - Nimmt Tastatureingaben in ein
Formular in einem Fenster vor.
| ||||||||||||||||||
AES-Nummer: | 64
| ||||||||||||||||||
Deklaration: | int16_t form_wkeybd ( OBJECT *fo_ktree, int16_t fo_kobject,
int16_t fo_kobnext, int16_t fo_kchar, int16_t *fo_knxtobject, int16_t
*fo_knxtchar, int16_t whandle );
| ||||||||||||||||||
Beschreibung: | Die Funktion übernimmt Tastatureingaben in ein Formular in
einem Fenster. Es gilt:
Bei der Eingabe wird ggfs. das Edit-Objekt geändert (Cursortasten oder Tabulator), oder das Default-Objekt selektiert (Return). Hinweis zu MagiC: Wird als Objektnummer der Wert 0x8765 angegeben, so werden Tasten verarbeitet, die zusammen mit der Alternate-Taste betätigt wurden. Falls ein passendes Objekt gefunden wurde, wird der Wert 1 zurückgegeben, das Zeichen gelöscht, und in fo_knxtobject die zugehörige Objektnummer übergeben. Diese Funktion entspricht im wesentlichen form_keybd mit dem Unterschied, dass hier die Rechteckliste eines Fensters beachtet wird. | ||||||||||||||||||
Ergebnis: | Der Rückgabewert der Funktion ist Null, falls ein Exitobjekt
gewählt wurde, sonst ist er positiv.
| ||||||||||||||||||
Verfügbar: | ab MagiC Version 5.10
| ||||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||||
Querverweis: | Binding OBJECT objc_edit form_button
|
C: | int16_t form_wkeybd ( OBJECT *fo_ktree, int16_t fo_kobject,
int16_t fo_kobnext, int16_t fo_kchar, int16_t *fo_knxtobject, int16_t
*fo_knxtchar, int16_t whandle );
| ||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_wkeybd (OBJECT *fo_ktree, int16_t fo_kobject, int16_t fo_kobnext, int16_t fo_kchar, int16_t *fo_knxtobject, int16_t *fo_knxtchar, int16_t whandle) { int_in[0] = fo_kobject; int_in[1] = fo_kchar; int_in[2] = fo_kobnext; int_in[3] = whandle; addr_in[0] = fo_ktree; crys_if (64); *fo_knxtobject = int_out[1]; *fo_knxtchar = int_out[2]; return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form XDialog Space« - reserviert oder gibt Speicherplatz
frei für ein Dialogobjekt.
| ||||||||||||||||||||||||
AES-Nummer: | 51
| ||||||||||||||||||||||||
Deklaration: | int16_t form_xdial ( int16_t fo_diflag, int16_t fo_dilittlx,
int16_t fo_dilittly, int16_t fo_dilittlw, int16_t fo_dilittlh, int16_t
fo_dibigx, int16_t fo_dibigy, int16_t fo_dibigw, int16_t fo_dibigh,
void **flydial );
| ||||||||||||||||||||||||
Beschreibung: | Die Funktion übernimmt abhängig von den übergebenen
Parametern verschiedene Aufgaben. Es gilt:
Hinweis: Wenn flydial ungleich 0 ist, wird getestet, ob genügend Speicher zur Verfügung steht, um den Hintergrund der Dialogbox zu retten. Ein Zeiger auf die geretteten Daten wird dann in dieser Variablen vermerkt. Falls nicht genügend Speicher zur Verfügung steht, um den Hintergrund zu retten, ist die per form_xdo zu bearbeitende Dialogbox nicht verschiebbar; in diesem Fall wird auch keine 'Flugecke' im Dialog angezeigt. | ||||||||||||||||||||||||
Ergebnis: | Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird.
| ||||||||||||||||||||||||
Verfügbar: | Das Vorhandensein der Flydials kann per appl_getinfo (Opcode 14)
abgefragt werden.
| ||||||||||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||||||||||
Querverweis: | Binding evnt_mesag form_dial graf_growbox graf_shrinkbox
|
C: | int16_t form_xdial ( int16_t fo_diflag, int16_t fo_dilittlx,
int16_t fo_dilittly, int16_t fo_dilittlw, int16_t fo_dilittlh, int16_t
fo_dibigx, int16_t fo_dibigy, int16_t fo_dibigw, int16_t fo_dibigh,
void **flydial );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_xdial (int16_t fo_diflag, int16_t fo_dilittlx, int16_t fo_dilittly, int16_t fo_dilittlw, int16_t fo_dilittlh, int16_t fo_dibigx, int16_t fo_dibigy, int16_t fo_dibigw, int16_t fo_dibigh, void **flydial) { int_in[0] = fo_diflag; int_in[1] = fo_dilittlx; int_in[2] = fo_dilittly; int_in[3] = fo_dilittlw; int_in[4] = fo_dilittlh; int_in[5] = fo_dibigx; int_in[6] = fo_dibigy; int_in[7] = fo_dibigw; int_in[8] = fo_dibigh; addr_in[0] = flydial; addr_in[1] = 0; /* reserviert */ return ( crys_if(51) ); } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form do XDialog« - führt einen erweiterten Dialog mit dem
Anwender durch.
| ||||||||||||||
AES-Nummer: | 50
| ||||||||||||||
Deklaration: | int16_t form_xdo ( OBJECT *tree, int16_t startob, int16_t
*lastcrsr, XDO_INF *tabs, void *flydial );
| ||||||||||||||
Beschreibung: | Die Funktion übernimmt die Behandlung von Benutzeraktionen in
einem Formular.
| ||||||||||||||
Ergebnis: | Als Ergebnis wird der Index des Objekts zurückgegeben, mit
dessen Hilfe der Dialog beendet wurde.
| ||||||||||||||
Verfügbar: | Die Funktion steht nur unter MagiC (ab Version 2.0) zur
Verfügung. Das Vorhandensein der Flydials, der Tastaturtabellen sowie
der Möglichkeit, die letzte Cursorposition zu erfragen, kann per
appl_getinfo (Opcode 14) abgefragt werden.
| ||||||||||||||
Gruppe: | Formulare
| ||||||||||||||
Querverweis: | Binding form_do
|
C: | int16_t form_xdo ( OBJECT *tree, int16_t startob, int16_t
*lastcrsr, XDO_INF *tabs, void *flydial );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_xdo (OBJECT *tree, int16_t startob, int16_t *lastcrsr, XDO_INF *tabs, void *flydial) { int_in[0] = startob; addr_in[0] = tree; addr_in[1] = tabs; addr_in[2] = flydial; crys_if (50); *lastcrsr = int_out[1]; return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form XError« - stellt eine Fehlerbox für TOS-Fehler dar.
| ||||||||
AES-Nummer: | 136
| ||||||||
Deklaration: | int16_t form_xerr ( int32_t errcode, int8_t *errfile );
| ||||||||
Beschreibung: | Gibt eine Fehlerbox auf dem Bildschirm aus, die die übergebene
Fehlernummer im Klartext beinhaltet. Im Gegensatz zu form_error
entfällt jedoch eine Umrechnung vom TOS in das MSDOS Format.
| ||||||||
Ergebnis: | Als Ergebnis wird die Nummer (1-3) der ausgewählten Option
zurückgegeben. Bei der jetzigen GEM-Version steht jedoch nur eine
Option zur Verfügung.
| ||||||||
Verfügbar: | Die Funktion steht nur unter MagiC (ab Version 2.0) zur
Verfügung.
| ||||||||
Gruppe: | Formulare
| ||||||||
Querverweis: | Binding form_error
|
C: | int16_t form_xerr ( int32_t errcode, int8_t *errfile );
| ||||||||||||||||||||||||||||||
Umsetzung: |
int16_t form_xerr (int32_t errcode, int8_t *errfile) { int_in[0] = errcode (High); int_in[1] = errcode (Low); addr_in[0] = errfile; return ( crys_if(136) ); } | ||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form Popup« - verwaltet ein Popup-Menü
| ||||||||||||||||||||||
AES-Nummer: | 135
| ||||||||||||||||||||||
Deklaration: | int16_t xfrm_popup( OBJECT *tree, int16_t x, int16_t y, int16_t
firstscrlob, int16_t lastscrlob, int16_t nlines, void cdecl
(*init)(OBJECT *tree, int16_t scrollpos, int16_t nlines, void *param),
void *param, int16_t *lastscrlpos )
| ||||||||||||||||||||||
Beschreibung: | Die Funktion stellt ein Popup-Menü auf dem Bildschirm dar, und
übernimmt dessen Verwaltung. Es gilt:
Hinweis: Falls die Parameter x und y den Wert 0 besitzen, werden die entsprechenden Werte aus der Objektstruktur beachtet, und das zentrieren entfällt. Es wird immer dafür gesorgt, daß das Popup vollständig auf dem Bildschirm liegt. Wählbare Objekte müssen das Flag SELECTABLE, nicht wählbare Objekte den Status DISABLED erhalten. Das Objekt mit der Nummer 0 im Objektbaum, sollte den Typ G_BOX oder G_IBOX besitzen.
| ||||||||||||||||||||||
Ergebnis: | Die Funktion liefert die Nummer des gewählten Objektes aus dem
Popup-Menü oder den Wert -1.
| ||||||||||||||||||||||
Verfügbar: | Die Funktion steht ab MagiC 5.03 zur Verfügung.
| ||||||||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||||||||
Querverweis: | Binding OBJECT form_popup
|
C: | int16_t xfrm_popup( OBJECT *tree, int16_t x, int16_t y, int16_t
firstscrlob, int16_t lastscrlob, int16_t nlines, void cdecl
(*init)(OBJECT *tree, int16_t scrollpos, int16_t nlines, void *param),
void *param, int16_t *lastscrlpos )
| |||||||||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t xfrm_popup( OBJECT *tree, int16_t x, int16_t y, int16_t firstscrlob, int16_t lastscrlob, int16_t nlines, void cdecl (*init)(OBJECT *tree, int16_t scrollpos, int16_t nlines, void *param), void *param, int16_t *lastscrlpos ) { int_in[0] = x; int_in[1] = y; int_in[2] = firstscrlob; int_in[3] = lastscrlob; int_in[4] = nlines; int_in[5] = *lastscrlpos; addr_in[0] = tree; addr_in[1] = init; addr_in[2] = param; int_out[1] = *lastscrlpos; /* vorbesetzen */ crys_if(135) *lastscrlpos = int_out[1]; return ( int_out[0] ); } | |||||||||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »Form centered Object« - zentriert ein Objekt auf dem
Bildschirm.
| ||||||||||||
AES-Nummer: | 28944
| ||||||||||||
Deklaration: | int16_t x_form_center( OBJECT *tree, int16_t *cx, int16_t *cy,
int16_t *cw, int16_t *ch );
| ||||||||||||
Beschreibung: | Center a dialog on the screen, taking into account all object
attributes that can affect the outer border.
This function is essentially identical in purpose to the AES form_center call, however it takes all attributes which can affect the size of the outer border of the object tree (SHADOWED, OUTLINED, 3D effect, etc.) into consideration. The returned rectangle describes the entire area containing these effects. | ||||||||||||
Ergebnis: | Als Ergebnis wird immer eine 1 zurückgegeben.
| ||||||||||||
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
| ||||||||||||
Gruppe: | Formulare
| ||||||||||||
Querverweis: | Binding form_center
|
C: | int16_t x_form_center( OBJECT *tree, int16_t *cx, int16_t *cy,
int16_t *cw, int16_t *ch );
| ||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t x_form_center( OBJECT *tree, int16_t *cx, int16_t *cy, int16_t *cw, int16_t *ch ) { addr_in[0] = tree; crys_if(28944); *cx = int_out[1]; *cy = int_out[2]; *cw = int_out[3]; *ch = int_out[4]; return (int_out[0]); } | ||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »XForm error« - stellt eine Fehlerbox für TOS-Fehler da
(Geneva).
|
AES-Nummer: | 28945
|
Deklaration: | int16_t x_form_error ( uint8_t *fmt, int16_t errnum );
|
Beschreibung: | This function takes the error code specified by errnum
and finds an appropriate error message string. It then inserts this
text into a program-defined alert string and displays an alert.
The fmt should be in standard form_alert format, with a "%s" to indicate the location where the error message should be inserted. Since an alert can contain no more than five lines of 30 characters each, and the pre-defined error messages can take up to three lines, there should be no more than two lines of text surrounding the inserted error text. Example: if( x_form_error( "[1][Error!|%s][Continue|Quit]", -33 ) == 1 ) continue... else quit... |
Ergebnis: | Als Ergebnis wird die Nummer (1-3) der ausgewählten Option
zurückgegeben.
|
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
|
Gruppe: | Formulare
|
Querverweis: | Binding form_error form_xerr form_error in N.AES
|
C: | int16_t x_form_error ( uint8_t *fmt, int16_t errnum );
| |||||||||||||||||||||||||||
Umsetzung: |
int16_t x_form_error ( uint8_t *fmt, int16_t errnum ) { int_in[0] = errnum; addr_in[0] = fmt; return ( crys_if(28945) ); } | |||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »XForm filename« - Convert to/from a standard GEMDOS filename
in editable field in a dialog.
| ||||||||||||
AES-Nummer: | 28996
| ||||||||||||
Deklaration: | int16_t x_form_filename( OBJECT *tree, int16_t obj, int16_t
to_from, uint8_t *string );
| ||||||||||||
Beschreibung: |
Since filenames are typically entered in a GEM dialog using the period to separate the filename from the extension, and filenames with less than eight characters before the period are padded with spaces, converting to and from the editable field can be a difficult task. When the mode parameter passed to x_form_filename is 0, the string is converted from the FILENAME.EXT format to the editable field format. When mode is 1, the filename is converted from the editable field and written into string in FILENAME.EXT format. Note that this function assumes that the editable field is an object of type G_FTEXT or G_FBOXTEXT and uses the te_ptmplt string "________.___". Example: OBJECT *tree; char name[13] = "DEFAULT.TXT"; x_form_filename( tree, object, 0, name ); form_do( tree, object ); x_form_filename( tree, object, 1, name ); /* "name" now contains what the user changed it to */ | ||||||||||||
Ergebnis: | Liefert immer 1.
| ||||||||||||
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
| ||||||||||||
Gruppe: | Formulare
| ||||||||||||
Querverweis: | Binding
|
C: | int16_t x_form_filename( OBJECT *tree, int16_t obj, int16_t
to_from, uint8_t *string );
| |||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t x_form_filename( OBJECT *tree, int16_t obj, int16_t to_from, uint8_t *string ) { int_in[0] = obj; int_in[1] = to_from; addr_in[0] = tree; addr_in[1] = string; return ( crys_if(28996) ); } | |||||||||||||||||||||||||||||||||
GEM-Arrays: |
|
Name: | »XForm mouse« - Handle mouse clicks in a dialog, including
editable cursor movement.
| ||||||||||||||||||
AES-Nummer: | 28997
| ||||||||||||||||||
Deklaration: | int16_t x_form_mouse( OBJECT *tree, int16_t mouse_x, int16_t
mouse_y, int16_t clicks, int16_t *edit_obj, int16_t *next_obj, int16_t
*edit_idx );
| ||||||||||||||||||
Beschreibung: |
This function begins by calling form_button. If neither an EXIT nor a TOUCHEXIT button is selected, and the object is EDITABLE, then the editable cursor is moved to the character within the editable field which is under the mouse pointer. | ||||||||||||||||||
Ergebnis: | 0 = Ein Objekt wurde selektiert
1 = Kein Objekt angewählt.
| ||||||||||||||||||
Verfügbar: | Die Funktion steht nur unter Geneva zur Verfügung.
| ||||||||||||||||||
Gruppe: | Formulare
| ||||||||||||||||||
Querverweis: | Binding
|
C: | int16_t x_form_mouse( OBJECT *tree, int16_t mouse_x, int16_t
mouse_y, int16_t clicks, int16_t *edit_obj, int16_t *next_obj, int16_t
*edit_idx );
| ||||||||||||||||||||||||||||||||||||||||||||||||
Umsetzung: |
int16_t x_form_mouse( OBJECT *tree, int16_t mouse_x, int16_t mouse_y, int16_t clicks, int16_t *edit_obj, int16_t *next_obj, int16_t *edit_idx ) { int_in[0] = mouse_x; int_in[1] = mouse_y; int_in[2] = clicks; int_in[3] = edit_obj; int_in[4] = next_obj; int_in[5] = edit_idx; addr_in[0] = tree; crys_if(28997); *edit_obj = int_out[1]; *next_obj = int_out[2]; *edit_idx = int_out[3]; return ( int_out[0] ); } | ||||||||||||||||||||||||||||||||||||||||||||||||
GEM-Arrays: |
|