Name: |
»WindowDialog Create« - Fensterdialog erstellen.
|
AES-Nummer: |
160
|
Deklaration: |
DIALOG *wdlg_create ( HNDL_OBJ handle_exit, OBJECT *tree, void
*user_data, int16_t code, void *data, int16_t flags );
|
Beschreibung: |
Die Funktion fordert Speicherplatz für eine Dialogstruktur an,
und initialisiert diese. Es gilt:
Parameter |
Bedeutung
|
|
|
handle_exit |
Zeiger auf eine Service-Funktion
|
tree |
Zeiger auf den Objektbaum
|
user_data |
Zeiger auf Benutzerinformationen
|
code |
wird in handle_exit über die Komponente clicks übergeben
|
data |
wird in handle_exit über die Komponente data übergeben
|
flags |
verschiedene Flags
1 = Hintergrundbedienung zulassen
|
|
Ergebnis: |
Die Funktion liefert einen Zeiger auf die erstellte
Dialogstruktur zurück.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_open wdlg_close
|
C: |
DIALOG *wdlg_create ( HNDL_OBJ handle_exit, OBJECT *tree, void
*user_data, int16_t code, void *data, int16_t flags );
|
Umsetzung: |
DIALOG *wdlg_create ( HNDL_OBJ handle_exit, OBJECT *tree,
void *user_data, int16_t code,
void *data, int16_t flags )
{
addr_in[0] = handle_exit;
addr_in[1] = tree;
addr_in[2] = user_data;
addr_in[3] = data;
int_in[0] = code
int_in[1] = flags;
crys_if (160);
return ( addr_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
160 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
4 # Einträge in addr_in |
control+8 |
control[4] |
1 # Einträge in addr_out |
addr_in |
addr_in[0] |
handle_exit |
addr_in+4 |
addr_in[1] |
tree |
addr_in+8 |
addr_in[2] |
user_data |
addr_in+12 |
addr_in[3] |
data |
int_in |
int_in[0] |
code |
int_in+2 |
int_in[1] |
flags |
addr_out |
addr_out[0] |
Return-Wert |
|
Name: |
»WindowDialog Event« - Dialogbearbeitung.
|
AES-Nummer: |
166
|
Deklaration: |
int16_t wdlg_evnt ( DIALOG *dialog, EVNT *events );
|
Beschreibung: |
Die Funktion dient zur Auswertung bzw. Bearbeitung von
Ereignissen eines Fensterdialogs. Es gilt:
Parameter |
Bedeutung |
dialog |
Zeiger auf den Dialog |
events |
Zeiger auf EVNT-Struktur |
Hinweis: Diese Funktion muß im Event-Loop aufgerufen
werden. Im Bitvektor mwhich der EVNT-Struktur werden die
Ereignis-Bits gelöscht, die sich auf den Fensterdialog beziehen. Nach
dem Aufruf dieser Funktion kann die EVNT-Struktur von der
Applikation zur Auswertung der für sie bestimmten Events benutzt
werden.
Falls die Funktion den Wert 0 zurückliefert, muß der Dialog
(per wdlg_close geschlossen werden.
Achtung: Das Iconifying wird nicht von dieser
Funktion unterstützt. Wird der Iconifier bei wdlg_open als
Fensterelement angemeldet muß daher dieses Ereignis selbst
ausgewertet und behandelt werden. Das gleiche gilt, wenn man den Sizer
als Element anmeldet.
|
Ergebnis: |
Die Funktion liefert den Wert 1 zurück, wenn kein Fehler
aufgetreten ist. Bei einem Rückgabewert von 0 muß der Dialog
geschlossen werden.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_open wdlg_close
|
Name: |
»WindowDialog Open« - öffnet einen Fensterdialog.
|
AES-Nummer: |
161
|
Deklaration: |
int16_t wdlg_open ( DIALOG *dialog, int8_t *title, int16_t
kind, int16_t x, int16_t y, int16_t code, void *data );
|
Beschreibung: |
Die Funktion öffnet einen Fensterdialog auf dem Bildschirm. Es
gilt:
Parameter |
Bedeutung |
dialog |
Zeiger auf den Dialog |
title |
Fenstername oder NULL |
kind |
Komponenten des Fensters (NAME/MOVER/CLOSER) |
x |
x-Koordinate |
y |
y-Koordinate des Dialogs |
code |
wird handle_exit in der Komponente clicks übergeben |
data |
wird handle_exit in der Komponente data übergeben |
Hinweis: Bevor die Funktion zum Aufrufer zurückkehrt,
wird noch die Serviceroutine handle_exit mit der
Funktionsnummer HNDL_OPEN aufgerufen. Bei Koordinaten von (-1,-1) wird
der Dialog zentriert dargestellt.
|
Ergebnis: |
Die Funktion liefert die Fensterkennung des Dialogs zurück,
bzw. im Fehlerfall den Wert 0.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_close wdlg_delete
|
C: |
int16_t wdlg_open ( DIALOG *dialog, int8_t *title, int16_t
kind, int16_t x, int16_t y, int16_t code, void *data );
|
Umsetzung: |
int16_t wdlg_open ( DIALOG *dialog, int8_t *title,
int16_t kind, int16_t x,
int16_t y, int16_t code, void *data )
{
addr_in[0] = dialog;
addr_in[1] = title;
addr_in[2] = data;
int_in[0] = kind;
int_in[1] = x;
int_in[2] = y;
int_in[3] = code;
crys_if (161);
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
161 # Opcode der Funktion |
control+2 |
control[1] |
4 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
3 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
addr_in |
addr_in[0] |
dialog |
addr_in+4 |
addr_in[1] |
title |
addr_in+8 |
addr_in[2] |
data |
int_in |
int_in[0] |
kind |
int_in+2 |
int_in[1] |
x |
int_in+4 |
int_in[2] |
y |
int_in+6 |
int_in[3] |
code |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»WindowDialog Redraw« - Objekt in einem Dialog zeichnen.
|
AES-Nummer: |
167
|
Deklaration: |
void wdlg_redraw ( DIALOG *dialog, GRECT *rect, int16_t obj,
int16_t depth );
|
Beschreibung: |
Die Funktion zeichnet ein Objekt in einem Dialog, unter
Beachtung der Rechteckliste des Fensters. Es gilt:
Parameter |
Bedeutung |
dialog |
Zeiger auf den Dialog |
rect |
Zeiger auf das begrenzende Rechteck |
obj |
Nummer des Startobjektes |
depth |
Anzahl der zu zeichnenden Ebenen |
Hinweis: Um ein Objekt innerhalb des Dialogs zu
zeichnen, sollte immer diese Funktion und nicht objc_draw
verwendet werden. Vor Anwendung der Funktion ist wie üblich ein
Aufruf von wind_update nötig.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding objc_draw WM_REDRAW
|
Name: |
»WindowDialog Set Edit Object« - Editfeld im Dialog
aktivieren.
|
AES-Nummer: |
165 (Unterfunktion 0)
|
Deklaration: |
int16_t wdlg_set_edit ( DIALOG *dialog, int16_t obj );
|
Beschreibung: |
Die Funktion aktiviert ein Editfeld eines Fensterdialogs. Es
gilt:
Parameter |
Bedeutung |
dialog |
Zeiger auf den Dialog |
obj |
Nummer des neuen Edit-Objekts bzw. 0, falls keins aktiv sein soll |
Hinweis: Aktivieren bedeutet in diesem Zusammenhang,
daß der Cursor im angegebenen Objekt gezeichnet, und in einem evtl.
vorher aktiven Objekt gelöscht wird.
|
Ergebnis: |
Die Funktion liefert die Nummer des aktuellen Editobjekts
zurück. Ein Wert von 0 bedeutet, daß kein solches aktiv ist.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_open wdlg_close
|
Name: |
»WindowDialog Iconify« - Fensterdialog ikonifizieren.
|
AES-Nummer: |
165 (Unterfunktion 3)
|
Deklaration: |
int16_t wdlg_set_iconify ( DIALOG *dialog, GRECT *g, int8_t
*title, OBJECT *tree, int16_t obj );
|
Beschreibung: |
Die Funktion ermöglicht das Ikonifizieren eines
Fensterdialogs. Es gilt:
Parameter |
Bedeutung |
dialog |
Zeiger auf den Dialog |
g |
neue Position des Fensters |
title |
neuer Fenstertitel, oder NULL |
tree |
neuer Fensterbaum, oder NULL |
obj |
zu zentrierendes Objekt, oder -1 |
Hinweis: Die neue Position des Fensters wird man
normalerweise von der Nachricht WM_ICONIFY übernehmen; es ist aber
auch möglich durch Koordinaten von -1,-1,-1,-1 diese direkt von MagiC
ermitteln zu lassen.
Die Funktion ändert die Position und Größe des
Wurzelobjektes. Da man i.a. für ikonifizierte Fenster einen anderen
Objektbaum anzeigen möchte, kann dieser im Parameter tree
angegeben werden. Der Objektbaum besteht normalerweise nur aus einem
Wurzelobjekt (G_BOX) und einem anzuzeigenden Icon vom Typ G_ICON oder
G_CICON. Soll das Icon im Fenster zentriert dargestellt werden, so
übergibt man dessen Objektnummer im Parameter obj.
Beim Setzen eines neuen Fenstertitels ist zu beachten, dass der
Aufrufer bei einem späteren Unikonify den alten Titel selbst
restaurieren muss.
|
Ergebnis: |
Die Funktion liefert stets den Wert 1 zurück.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden. Diese Funktion ist erst ab WDIALOG 1.05
vorhanden. Wenn sie nicht vorhanden ist, enthält intout[0] eine 0.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_set_uniconify
|
Name: |
»WindowDialog Set Size« - Größe eines Dialogs verändern.
|
AES-Nummer: |
165 (Unterfunktion 2)
|
Deklaration: |
int16_t wdlg_set_size ( DIALOG *dialog, GRECT *new_size );
|
Beschreibung: |
Die Funktion ermöglicht es, die Größe eines Fensterdialogs
zu verändern. Es gilt:
Parameter |
Bedeutung
|
|
|
dialog |
Zeiger auf den Dialog
|
new_size |
neue Position und Größe der Arbeitsfläche des Fensters
|
Hinweis: Die Funktion ändert weder Position noch
Größe des Wurzelobjektes. Soll dieses verschoben oder vergrößert
werden, so müssen die Objektausmaße vor dem Aufruf der
Funktion geändert werden.
Achtung: Die Buttons müssen sich immer vollständig
innerhalb der Arbeitsfläche des Fensters befinden, da form_button die
Rechteckliste nicht beachtet. Der normale Anwendungsfall für
diese Funktion sind vergrößerbare Dialoge, die ein Sizer-Objekt in
der rechten unteren Ecke enthalten.
|
Ergebnis: |
Die Funktion liefert stets den Wert 1 zurück.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_open wdlg_close
|
Name: |
»WindowDialog Uniconify« - Fensterdialog unikonifizieren.
|
AES-Nummer: |
165 (Unterfunktion 4)
|
Deklaration: |
int16_t wdlg_set_uniconify ( DIALOG *dialog, GRECT *g, int8_t
*title, OBJECT *tree );
|
Beschreibung: |
Die Funktion ermöglicht das Unikonifizieren eines
Fensterdialogs. Es gilt:
Parameter |
Bedeutung |
dialog |
Zeiger auf den Dialog |
g |
neue Position des Fensters |
title |
neuer Fenstertitel, oder NULL |
tree |
neuer Fensterbaum, oder NULL |
Hinweis: Die neue Position des Fensters wird man
normalerweise von der Nachricht WM_UNICONIFY übernehmen.
Die Funktion ändert die Position und Größe des
Wurzelobjektes. Da man i.a. für ikonifizierte Fenster einen anderen
Objektbaum angezeigt hatte, kann der ursprüngliche Baum im Parameter
tree angegeben und damit zurückgesetzt werden. Über den
Parameter title kann der alte Fenstertitel gesetzt werden, der
vor dem Ikonify gültig war.
|
Ergebnis: |
Die Funktion liefert stets den Wert 1 zurück.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden. Diese Funktion ist erst ab WDIALOG 1.05
vorhanden. Wenn sie nicht vorhanden ist, enthält intout[0] eine 0.
|
Gruppe: |
Fensterdialoge
|
Querverweis: |
Binding wdlg_set_iconify
|