AES
Druckdialoge
Ereignisverwaltung
Diese Bibliothek stellt Funktionen zur Verfügung, um
Editieroperationen an einem Objekt vorzunehmen.
Hinweis: Das Edit-Objekt steht ab MagiC 5.20 zur
Verfügung, und ist als SharedLibrary implementiert. Aus diesem Grund
muss die entsprechende Bibliothek mit
Slbopen("EDITOBJC.SLB", NULL, 0L, &slb, &slbexec)
geöffnet werden. Anschliessend stehen dann die o.g. Funktionen, sowie
der neue AES-Objekttyp G_EDIT zur Verfügung.
Querverweis: Verwendung G_EDIT-Objekt AES GEM
Objektfunktionen
Name: |
»Edit Object Close« - schließt ein Editobjekt.
|
AES-Nummer: |
212
|
Deklaration: |
void edit_close ( OBJECT *tree, int16_t obj );
|
Beschreibung: |
Die von der Objektgröße abhängigen Verwaltungsstrukturen
werden geschlossen und der Speicher freigegeben. Der Deskriptor selbst
bleibt jedoch erhalten. Textbehandlung ist jetzt nicht mehr möglich.
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_close ( OBJECT *tree, int16_t obj );
|
Umsetzung: |
void edit_close ( OBJECT *tree, int16_t obj )
{
int_in[0] = obj;
addr_in[0] = tree;
return ( crys_if(212) );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
212 # Opcode der Funktion |
control+2 |
control[1] |
1 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Create« - erstellt ein Editobjekt.
|
AES-Nummer: |
210
|
Deklaration: |
void *edit_create ( void )
|
Beschreibung: |
Der entsprechende Deskriptor wird angelegt (Speicher wird
reserviert), aber der Editor ist noch nicht geöffnet. Es können
jetzt verschiedene Einstellungen über edit_set_xxx geändert werden.
Die Default-Einstellungen sind:
Systemzeichensatz, 10 pt
Schwarz auf Weiß
Kein Zeilenumbruch
Tabulatorweite 64 Pixel
|
Ergebnis: |
Die Funktion liefert einen Zeiger auf einen Deskriptor des
Editobjektes zurück, oder im Fehlerfall den Wert NULL. Der Deskriptor
muss anschließend in der Komponente ob_spec der
OBJECT-Struktur gespeichert werden.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void *edit_create ( void )
|
Umsetzung: |
void *edit_create ( void )
{
crys_if(210);
return ( addr_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
210 # Opcode der Funktion |
control+2 |
control[1] |
0 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
0 # Einträge in addr_in |
control+8 |
control[4] |
1 # Einträge in addr_out |
addr_out |
addr_out[0] |
Return-Wert |
|
Name: |
»Edit Object Cursor« - schaltet den Cursor eines Editobjektes
ein oder aus.
|
AES-Nummer: |
214
|
Deklaration: |
int16_t edit_cursor ( OBJECT *tree, int16_t obj, int16_t whdl,
int16_t show );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
whdl |
Fenster-Handle oder -1
|
show |
Der Cursor wird eingeschaltet (1), ausgeschaltet (0) oder
abgefragt (-1).
|
Der Aufruf kann geschachtelt werden.
|
Ergebnis: |
Rückgabewert ist der Cursor-Aus-Zähler.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_cursor ( OBJECT *tree, int16_t obj, int16_t whdl,
int16_t show );
|
Umsetzung: |
int16_t edit_cursor ( OBJECT *tree, int16_t obj, int16_t whdl,
int16_t show )
{
addr_in[0] = tree;
int_in[0] = obj;
int_in[1] = whdl;
int_in[2] = show;
crys_if( 214 );
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
214 # Opcode der Funktion |
control+2 |
control[1] |
3 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
whdl |
int_in+2 |
int_in[2] |
show |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»Edit Object Delete« - entfernt ein Editobjekt aus dem
Speicher.
|
AES-Nummer: |
213
|
Deklaration: |
void edit_delete ( void *editinfo );
|
Beschreibung: |
Der Deskriptor editinfo wird freigegeben. Soll das
Objekt weiter verwendet werden, muß der Objekttyp auf G_BOX
zurückgesetzt werden.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_delete ( void *editinfo );
|
Umsetzung: |
void edit_delete ( void *editinfo )
{
addr_in[0] = editinfo;
crys_if( 213 );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
213 # Opcode der Funktion |
control+2 |
control[1] |
0 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
addr_in |
addr_in[0] |
editinfo |
|
Name: |
»Edit Object Event« - übernimmt die Bearbeitung eines
Editobjektes.
|
AES-Nummer: |
215
|
Deklaration: |
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode );
|
Beschreibung: |
Events, d.h. Mausklicks und Tasten, werden an das Edit-Objekt
übermittelt und von diesem ggf. verarbeitet. Wenn ein Ereignis
verarbeitet wurde, wird das entsprechende Bit in der EVENT-Struktur
gelöscht.
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
whdl |
Fenster-Handle oder -1
|
events |
EVENT-Struktur wie bei wdlg_evnt, fnts_evnt. Die Events werden
vom Dialog verarbeitet, wenn sie für das zugehörige Fenster bestimmt
sind.
|
errcode |
Fehlercode (-200 = Textpuffer voll)
|
|
Ergebnis: |
Die Funktion liefert im Fehlerfall den Wert 0 zurück. Der
genaue Fehlercode wird in diesem Fall in der Variablen errcode
abgelegt.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding Tastaturcodes
|
C: |
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode );
|
Umsetzung: |
int16_t edit_evnt ( OBJECT *tree, int16_t obj, int16_t whdl,
EVNT *events, int32_t *errcode )
{
int_in[0] = obj;
int_in[1] = whdl;
addr_in[0] = tree;
addr_in[1] = events;
int_out[1] = 0; /* für alte SLB */
int_out[2] = 0; /* für alte SLB */
crys_if( 215 )
*errcode = int_out[1..2];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
215 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
3 # Einträge in int_out |
control+6 |
control[3] |
2 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
whdl |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
events |
int_out |
int_out[0] |
Retrurn-Wert |
int_out+2 |
int_out[1..2] |
errcode |
|
Der Fehlercode errcode ist erst ab Version 7 vorhanden,
das Binding sollte dafür sorgen, daß alte SLB-Versionen immer Nullen
liefern. Umgekehrt erkennen neue SLB-Versionen per contrl[2], ob ein
Fehlercode angefordert wurde.
Name: |
»Edit Object Get Buffer« - ermittelt den aktuellen Text eines
Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 0)
|
Deklaration: |
int16_t edit_get_buf ( OBJECT *tree, int16_t obj, int8_t **buf,
int32_t *buflen, int32_t *txtlen );
|
Beschreibung: |
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
buf |
Adresse des Puffers |
buflen |
Puffer-Länge |
txtlen |
aktuelle Textlänge ohne EOS |
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
bzw. im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_get_buf ( OBJECT *tree, int16_t obj, int8_t **buf,
int32_t *buflen, int32_t *txtlen );
|
Umsetzung: |
int16_t edit_get_buf ( OBJECT *tree, int16_t obj,
int8_t **buf,
int32_t *buflen, int32_t *txtlen )
{
int_in[0] = obj;
int_in[1] = 0; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*buflen = int_out[1..2];
*txtlen = int_out[3..4];
*buf = addr_out[0];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
5 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
1 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
0 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1..2] |
buflen |
int_out+6 |
int_out[3..4] |
txtlen |
addr_out |
addr_out[0] |
buf |
|
Name: |
»Edit Object Get Colour« - ermittelt die Farbeinstellungen
eines Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 2)
|
Deklaration: |
int16_t edit_get_colour ( OBJECT *tree, int16_t obj, int16_t
*tcolour, int16_t *bcolour );
|
Beschreibung: |
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
tcolour |
Textfarbe |
bcolour |
Hintergrundfarbe |
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_get_colour ( OBJECT *tree, int16_t obj, int16_t
*tcolour, int16_t *bcolour );
|
Umsetzung: |
int16_t edit_get_colour ( OBJECT *tree, int16_t obj,
int16_t *tcolour, int16_t *bcolour )
{
int_in[0] = obj;
int_in[1] = 2; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*tcolour = int_out[1];
*bcolour = int_out[2];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
3 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
2 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1] |
tcolour |
int_out+4 |
int_out[2] |
bcolour |
|
Name: |
»Edit Object Get Cursor« - ermittelt die Position des Cursors
innerhalb eines Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 4)
|
Deklaration: |
int16_t edit_get_cursor ( OBJECT *tree, int16_t obj, int8_t
**cursorpos );
|
Beschreibung: |
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
cursorpos |
Cursorposition im Text |
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_get_cursor ( OBJECT *tree, int16_t obj, int8_t
**cursorpos );
|
Umsetzung: |
int16_t edit_get_cursor ( OBJECT *tree, int16_t obj,
int8_t **cursorpos )
{
int_in[0] = obj;
int_in[1] = 4; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*cursorpos = addr_out[0];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
1 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
4 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
addr_out |
addr_out[0] |
cursorpos |
|
Name: |
»Edit Object Get Dirtyflag« - testet, ob der Inhalt eines
Editobjektes verändert worden ist.
|
AES-Nummer: |
216 (Unterfunktion 7)
|
Deklaration: |
int16_t edit_get_dirty ( OBJECT *tree, int16_t obj );
|
Beschreibung: |
Hiermit kann ermittelt werden, ob der Text zwischenzeitlich
geändert wurde. Das Flag kann mit edit_set_dirty oder edit_set_buf
wieder zurückgesetzt werden.
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
|
Ergebnis: |
Die Funktion liefert den Wert 1 wenn der Text verändert wurde
und sonst 0.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_get_dirty ( OBJECT *tree, int16_t obj );
|
Umsetzung: |
int16_t edit_get_dirty ( OBJECT *tree, int16_t obj )
{
int_in[0] = obj;
int_in[1] = 7; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
7 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»Edit Object Get Font« - ermittelt den Zeichensatz eines
Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 3)
|
Deklaration: |
int16_t edit_get_font ( OBJECT *tree, int16_t obj, int16_t
*fontID, int16_t *fontH, int16_t *fontPix, int16_t *mono );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
fontID |
Zeichensatz-ID
|
fontH |
Höhe für vst_point
|
fontPix |
0=Punkt 1=Pixel
Ist erst ab Version 8 (3.5.98) der SLB verfügbar.
|
mono |
Flag für äquidistanten Zeichensatz
|
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_get_font ( OBJECT *tree, int16_t obj, int16_t
*fontID, int16_t *fontH, int16_t *fontPix, int16_t *mono );
|
Umsetzung: |
int16_t edit_get_font ( OBJECT *tree, int16_t obj,
int16_t *fontID, int16_t *fontH,
int16_t *fontPix, int16_t *mono )
{
int_in[0] = obj;
int_in[1] = 3; /* Subcode für Funktion */
addr_in[0] = tree;
int_out[4] = 0; /* für alte SLB */
crys_if( 216 );
*fontID = int_out[1];
*fontH = int_out[2];
*mono = int_out[3];
*fontPix = int_out[4];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
5 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
3 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1] |
fontID |
int_out+4 |
int_out[2] |
fontH |
int_out+6 |
int_out[3] |
mono |
int_out+8 |
int_out[4] |
fontPix |
|
Name: |
»Edit Object Get Format« - ermittelt die Formatierung in
einem Editobjekt.
|
AES-Nummer: |
216 (Unterfunktion 1)
|
Deklaration: |
int16_t edit_get_format ( OBJECT *tree, int16_t obj, int16_t
*tabwidth, int16_t *autowrap );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
tabwidth |
Tabulatorweite
|
autowrap |
> 0: Pixelbreite für autom. Zeilenumbruch (i.a. ==
Objektbreite)
= 0: kein Umbruch, sondern horiz. Scrolling
|
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_get_format ( OBJECT *tree, int16_t obj, int16_t
*tabwidth, int16_t *autowrap );
|
Umsetzung: |
int16_t edit_get_format ( OBJECT *tree, int16_t obj,
int16_t *tabwidth,
int16_t *autowrap )
{
int_in[0] = obj;
int_in[1] = 1; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*tabwidth = int_out[1];
*autowrap = int_out[2];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
3 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
1 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1] |
tabwidth |
int_out+4 |
int_out[2] |
autowrap |
|
Name: |
»Edit Object Get ?« - ermittelt wichtige Informationen ?
eines Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 5)
|
Deklaration: |
void edit_get_pos ( OBJECT *tree, int16_t obj, int16_t
*xscroll, int32_t *yscroll, int8_t **cyscroll, int8_t **cursorpos,
int16_t *cx, int16_t *cy );
|
Beschreibung: |
Was genau die Funktion bewirkt ist unbekannt, da sie nur im
Binding mt_edit.c auftaucht.
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
xscroll |
|
yscroll |
|
cyscroll |
|
cursorpos |
|
cx |
|
cy |
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_get_pos ( OBJECT *tree, int16_t obj, int16_t
*xscroll, int32_t *yscroll, int8_t **cyscroll, int8_t **cursorpos,
int16_t *cx, int16_t *cy );
|
Umsetzung: |
void edit_get_pos ( OBJECT *tree, int16_t obj,
int16_t *xscroll, int32_t *yscroll,
int8_t **cyscroll, int8_t **cursorpos,
int16_t *cx, int16_t *cy )
{
int_in[0] = obj;
int_in[1] = 5; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*xscroll = int_out[1];
*yscroll = int_out[2..3];
*cx = int_out[4];
*cy = int_out[5];
*cyscroll = addr_out[0];
*cursorpos = addr_out[1];
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
6 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
2 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
5 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
undefiniert |
int_out+2 |
int_out[1] |
xscroll |
int_out+4 |
int_out[2..3] |
yscroll |
int_out+8 |
int_out[4] |
cx |
int_out+10 |
int_out[5] |
cy |
addr_out |
addr_out[0] |
cyscroll |
addr_out+4 |
addr_out[1] |
cursorpos |
|
Name: |
»Edit Object Get Scrollinformation« - ermittelt wichtige
Informationen für die Scrollbalken eines Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 9)
|
Deklaration: |
void edit_get_scrollinfo ( OBJECT *tree, int16_t obj, int32_t
*nlines, int32_t *yscroll, int16_t *yvis, int16_t *yval, int16_t
*ncols, int16_t *xscroll, int16_t *xvis );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
nlines |
Anzahl Zeilen im Text
|
yscroll |
erste sichtbare Zeile
|
yvis |
Anzahl max. sichtbarer Zeilen
|
yval |
Anzahl momentan sichtbarer Zeilen
|
ncols |
Anzahl Spalten oder -1 (unbekannt)
|
xscroll |
horiz. Scroll-Offset in Pixeln
|
xvis |
Anzahl sichtbarer Spalten (in Pixeln)
|
Diese Informationen werden benötigt, um horizontale und
vertikale Scrollbalken einzustellen. Da das Edit-Objekt für jede
einzelne Zeile ein vq_extend() machen müßte, und zwar bei jeder
Änderung einer Zeile, wird die Anzahl Spalten momentan nicht
bestimmt, der Aufruf liefert -1. MGEDIT nimmt hier einfach eine feste
Breite an, wie dies andere Programme, z.B. VIEW.PRG und PC.PRG
ebenfalls tun.
yval ist immer kleiner oder gleich yvis. Falls
der Text weniger als yvis Zeilen hat, ist yval immer
kleiner.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_get_scrollinfo ( OBJECT *tree, int16_t obj, int32_t
*nlines, int32_t *yscroll, int16_t *yvis, int16_t *yval, int16_t
*ncols, int16_t *xscroll, int16_t *xvis );
|
Umsetzung: |
void edit_get_scrollinfo ( OBJECT *tree, int16_t obj,
int32_t *nlines, int32_t *yscroll,
int16_t *yvis, int16_t *yval,
int16_t *ncols, int16_t *xscroll,
int16_t *xvis )
{
int_in[0] = obj;
int_in[1] = 9; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*nlines = int_out[1..2];
*yscroll = int_out[3..4];
*yvis = int_out[5];
*yval = int_out[6];
*ncols = int_out[7];
*xscroll = int_out[8];
*xvis = int_out[9];
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
10 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
9 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
undefiniert |
int_out+2 |
int_out[1..2] |
nlines |
int_out+6 |
int_out[3..4] |
yscroll |
int_out+10 |
int_out[5] |
yvis |
int_out+11 |
int_out[6] |
yval |
int_out+12 |
int_out[7] |
ncols |
int_out+13 |
int_out[8] |
xscroll |
int_out+14 |
int_out[9] |
xvis |
In der mt_edit.c wird control[2] mit 6 belegt (?).
|
Name: |
»Edit Object Get Selection« - ermittelt den selektierten
Bereich innerhalb eines Editobjektes.
|
AES-Nummer: |
216 (Unterfunktion 8)
|
Deklaration: |
void edit_get_sel ( OBJECT *tree, int16_t obj, int8_t **bsel,
int8_t **esel );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
bsel |
Beginn des selektierten Bereichs
|
esel |
hinter das Ende des selektierten Bereichs
|
Wenn kein Bereich selektiert ist, ist bsel == NULL.
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_get_sel ( OBJECT *tree, int16_t obj, int8_t **bsel,
int8_t **esel );
|
Umsetzung: |
void edit_get_sel ( OBJECT *tree, int16_t obj,
int8_t **bsel, int8_t **esel )
{
int_in[0] = obj;
int_in[1] = 8; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 216 );
*bsel = addr_out[0];
*esel = addr_out[1];
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
216 # 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] |
1 # Einträge in addr_in |
control+8 |
control[4] |
2 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
8 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
addr_out |
addr_out[0] |
bsel |
addr_out+4 |
addr_out[1] |
esel |
In der Original Doku ist diese Funktion mit der Rückgabe
int16_t definiert. In der mt_edit.c aber als void.
|
Name: |
»Edit Object Open« - öffnet ein Editobjekt.
|
AES-Nummer: |
211
|
Deklaration: |
int16_t edit_open ( OBJECT *tree, int16_t obj );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
Für die Objektgröße wird ausgerechnet, wieviele Zeilen und
Spalten Text sichtbar sind, und entsprechende Zeiger angelegt. Dafür
wird Speicher angefordert.
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_open ( OBJECT *tree, int16_t obj );
|
Umsetzung: |
int16_t edit_open ( OBJECT *tree, int16_t obj )
{
int_in[0] = obj;
addr_in[0] = tree;
crys_if( 211 );
return ( int_out [0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
211 # Opcode der Funktion |
control+2 |
control[1] |
1 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»Edit Object Resized« - verändert die Größe eines
Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 6)
|
Deklaration: |
int16_t edit_resized ( OBJECT *tree, int16_t obj, int16_t
*oldrh, int16_t *newrh );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
oldrh |
alte Netto-Höhe des Objekts
|
newrh |
neue Netto-Höhe des Objekts
|
Das Editobjekt muß bei Veränderung der Objektgröße Speicher
freigeben und anfordern. Daher kann es im Extremfall vorkommen, daß
die Operation wegen Speichermangel fehlschlägt. Rückgabewert ist
dann 0. Damit das aufrufende Programm einen korrekten Redraw
ausführen kann, wird die vorherige und neue tatsächliche Höhe
zurückgegeben. Tatsächlich bedeutet hier die Anzahl sichtbarer
Zeilen, multipliziert mit der Zeilenhöhe, d.h. die Objekthöhe ohne
unbenutzten, unteren weißen Rand.
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_resized ( OBJECT *tree, int16_t obj, int16_t
*oldrh, int16_t *newrh );
|
Umsetzung: |
int16_t edit_resized ( OBJECT *tree, int16_t obj,
int16_t *oldrh, int16_t *newrh )
{
int_in[0] = obj;
int_in[1] = 6; /* Subcode für Funktion */
addr_in[0] = tree;
crys_if( 217 );
*oldrh = int_out[1];
*newrh = int_out[2];
return ( int_out [0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
3 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
6 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1] |
oldrh |
int_out+4 |
int_out[4] |
newrh |
|
Name: |
»Edit Object Scroll« - scroll den Inhalt eines Editobjekts.
|
AES-Nummer: |
217 (Unterfunktion 9)
|
Deklaration: |
int16_t edit_scroll ( OBJECT *tree, int16_t obj, int16_t whdl,
int32_t yscroll, int16_t xscroll );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
whdl |
Fenster-Handle oder -1
|
yscroll |
vertik. Scroll-Offset in Zeilen
|
xscroll |
horiz. Scroll-Offset in Pixeln
|
Hiermit wird horizontal und vertikal absolut gescrollt. Dieser
Aufruf wird benötigt, wenn ein Scrollbalken oder -pfeil betätigt
wurde. Das Fenster-Handle wird benötigt, damit beim Scrollen die
Rechteckliste berücksichtigt werden kann.
Ein Fehlercode wird zurückgegeben, wenn die Anzahl der Zeilen
überschritten wurde.
|
Ergebnis: |
Die Funktion liefert bei erfolgreicher Ausführung den Wert 1
und im Fehlerfall den Wert 0 zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
int16_t edit_scroll ( OBJECT *tree, int16_t obj, int16_t whdl,
int32_t yscroll, int16_t xscroll );
|
Umsetzung: |
int16_t edit_scroll ( OBJECT *tree, int16_t obj, int16_t whdl,
int32_t yscroll, int16_t xscroll )
{
int_in[0] = obj;
int_in[1] = 9; /* Subcode für Funktion */
int_in[2] = whdl;
int_in[3..4] = yscroll;
int_in[5] = xscroll;
addr_in[0] = tree;
crys_if( 217 );
return ( int_out [0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
6 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
9 # Sub-Opcode |
int_in+4 |
int_in[2] |
whdl |
int_in+6 |
int_in[3..4] |
yscroll |
int_in+10 |
int_in[5] |
xscroll |
addr_in |
addr_in[0] |
tree |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»Edit Object Set Buffer« - ändert den Inhalt des Textpuffers
eines Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 0)
|
Deklaration: |
void edit_set_buf ( OBJECT *tree, int16_t obj, int8_t *buf,
int32_t buflen );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
buf |
Textpuffer. Der Text liegt im DOS-Format mit CR/LF als
Zeilenende- Kennzeichen vor und wird mit einem Nullbyte abgeschlossen.
|
buflen |
Länge des Textpuffers inklusive abschließendem Nullbyte.
|
Der Puffer wird dem Edit-Objekt zugewiesen, die Anzahl der
Zeilen wird bestimmt. Der Cursor wird an den Textanfang gesetzt.
Dieser Aufruf löscht das Dirty-Flag.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_buf ( OBJECT *tree, int16_t obj, int8_t *buf,
int32_t buflen );
|
Umsetzung: |
void edit_set_buf ( OBJECT *tree, int16_t obj, int8_t *buf,
int32_t buflen )
{
int_in[0] = obj;
int_in[1] = 0; /* Subcode für Funktion */
int_in[2..3] = buflen;
addr_in[0] = tree;
addr_in[1] = buf;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
4 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
2 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
0 # Sub-Opcode |
int_in+4 |
int_in[2..3] |
buflen |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
buf |
|
Name: |
»Edit Object Set Colour« - verändert die Farben eines
Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 2)
|
Deklaration: |
void edit_set_colour ( OBJECT *tree, int16_t obj, int16_t
tcolour, int16_t bcolour );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
tcolour |
Textfarbe
|
bcolour |
Hintergrundfarbe
|
Wenn eines der beiden Attribute unverändert bleiben soll, kann
-1 übergeben werden.
Wenn das Editobjekt bereits geöffnet wurde, ist bei Änderung
eines der Attributs i.a. ein Redraw auszulösen.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_colour ( OBJECT *tree, int16_t obj, int16_t
tcolour, int16_t bcolour );
|
Umsetzung: |
void edit_set_colour ( OBJECT *tree, int16_t obj,
int16_t tcolour, int16_t bcolour )
{
int_in[0] = obj;
int_in[1] = 2; /* Subcode für Funktion */
int_in[2] = tcolour;
int_in[3] = bcolour;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
4 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
2 # Sub-Opcode |
int_in+4 |
int_in[2] |
tcolour |
int_in+6 |
int_in[3] |
bcolour |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set Cursor« - positioniert den Cursor eines
Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 4)
|
Deklaration: |
void edit_set_cursor ( OBJECT *tree, int16_t obj, int8_t
*cursorpos );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
cursorpos |
absolute Cursorposition
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_cursor ( OBJECT *tree, int16_t obj, int8_t
*cursorpos );
|
Umsetzung: |
void edit_set_cursor ( OBJECT *tree, int16_t obj,
int8_t *cursorpos )
{
int_in[0] = obj;
int_in[1] = 4; /* Subcode für Funktion */
addr_in[0] = tree;
addr_in[1] = cursorpos;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # 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] |
2 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
4 # Sub-Opcode |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
cursorpos |
|
Name: |
»Edit Object Set Dirtyflag« - kennzeichnet ein Editobjekt als
verändert.
|
AES-Nummer: |
217 (Unterfunktion 7)
|
Deklaration: |
void edit_set_dirty ( OBJECT *tree, int16_t obj, int16_t dirty
);
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
dirty |
0 oder 1
|
Hiermit kann das Dirty-Flag gelöscht werden, wenn der Text
abgespeichert wurde.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_dirty ( OBJECT *tree, int16_t obj, int16_t dirty
);
|
Umsetzung: |
void edit_set_dirty ( OBJECT *tree, int16_t obj,
int16_t dirty )
{
int_in[0] = obj;
int_in[1] = 7; /* Subcode für Funktion */
int_in[2] = dirty;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
3 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
7 # Sub-Opcode |
int_in+4 |
int_in[4] |
dirty |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set Font« - ändert den Zeichensatz eines
Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 3)
|
Deklaration: |
void edit_set_font ( OBJECT *tree, int16_t obj, int16_t fontID,
int16_t fontH, int16_t fontPix, int16_t mono );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
fontID |
Zeichensatz-ID
|
fontH |
Zeichenhöhe in "Punkt"
|
fontPix |
0=Punkt 1=Pixel (ab 3.5.98)
|
mono |
Flag "äquidistant"
|
Wenn das Editobjekt bereits geöffnet wurde, ist bei Änderung
des Zeichensatzes i.a. ein Redraw auszulösen.
Das Flag mono wird benötigt, um dem Editobjekt die
Möglichkeit zu geben, äquidistante Zeichensätze (mono = 1)
wesentlich schneller zu bearbeiten als proportionale Zeichensätze
(mono = 0).
fontPix steht erst ab Version 8 der SLB zur Verfügung.
Ältere Versionen nehmen immer fontPix=0 an, d.h. verwenden
ausschließlich vst_point zum Einstellen der Zeichenhöhe. Die SLB
erkennt an contrl[1], ob fontPix übergeben wurde. Wenn nicht, wird 0
angenommen.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_font ( OBJECT *tree, int16_t obj, int16_t fontID,
int16_t fontH, int16_t fontPix, int16_t mono );
|
Umsetzung: |
void edit_set_font ( OBJECT *tree, int16_t obj,
int16_t fontID, int16_t fontH,
int16_t fontPix, int16_t mono )
{
int_in[0] = obj;
int_in[1] = 3; /* Subcode für Funktion */
int_in[2] = fontID;
int_in[3] = fontH;
int_in[4] = mono;
int_in[5] = fontPix;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
6 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
3 # Sub-Opcode |
int_in+4 |
int_in[2] |
fontID |
int_in+6 |
int_in[3] |
fontH |
int_in+8 |
int_in[4] |
mono |
int_in+10 |
int_in[5] |
fontPix |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set Format« - ändert die Formatierung eines
Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 1)
|
Deklaration: |
void edit_set_format ( OBJECT *tree, int16_t obj, int16_t
tabwidth, int16_t autowrap );
|
Beschreibung: |
Parameter |
Bedeutung
|
|
|
tree |
RSC-Baum des Objekts
|
obj |
Objektnummer
|
tabwidth |
-1 oder Tabulatorbreite in Pixeln
|
autowrap |
-1: nicht ändern
> 0: Pixelbreite für autom. Zeilenumbruch
(i.a. == Objektbreite)
= 0: kein Umbruch, sondern horiz. Scrolling
|
Wenn eines der beiden Attribute unverändert bleiben soll, kann
-1 übergeben werden.
Wenn das Editobjekt bereits geöffnet wurde, ist bei Änderung
eines der Attributs i.a. ein Redraw auszulösen. Ab Version 9 der SLB
wird bei Änderung der autowrap-Einstellung die Anzahl der
Zeilen neu berechnet. In älteren Versionen geschieht das nur bei
edit_set_buf.
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_format ( OBJECT *tree, int16_t obj, int16_t
tabwidth, int16_t autowrap );
|
Umsetzung: |
void edit_set_format ( OBJECT *tree, int16_t obj,
int16_t tabwidth, int16_t autowrap )
{
int_in[0] = obj;
int_in[1] = 1; /* Subcode für Funktion */
int_in[2] = tabwidth;
int_in[3] = autowrap;
addr_in[0] = tree;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
4 # Einträge in int_in |
control+4 |
control[2] |
0 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
1 # Sub-Opcode |
int_in+4 |
int_in[2] |
tabwidth |
int_in+6 |
int_in[3] |
autowrap |
addr_in |
addr_in[0] |
tree |
|
Name: |
»Edit Object Set ?« - setzt wichtige Informationen ? eines
Editobjektes.
|
AES-Nummer: |
217 (Unterfunktion 5)
|
Deklaration: |
void edit_set_pos ( OBJECT *tree, int16_t obj, int16_t xscroll,
int32_t yscroll, int8_t *cyscroll, int8_t *cursorpos, int16_t cx,
int16_t cy );
|
Beschreibung: |
Was genau die Funktion bewirkt ist unbekannt, da sie nur im
Binding mt_edit.c auftaucht.
Parameter |
Bedeutung |
tree |
RSC-Baum des Objekts |
obj |
Objektnummer |
xscroll |
|
yscroll |
|
cyscroll |
|
cursorpos |
|
cx |
|
cy |
|
|
Ergebnis: |
Die Funktion liefert kein Ergebnis zurück.
|
Verfügbar: |
ab MagiC 5.20 mittels SharedLibrary
|
Gruppe: |
Editobjekt-Funktionen
|
Querverweis: |
Binding
|
C: |
void edit_set_pos ( OBJECT *tree, int16_t obj, int16_t xscroll,
int32_t yscroll, int8_t *cyscroll, int8_t *cursorpos, int16_t cx,
int16_t cy );
|
Umsetzung: |
void edit_set_pos ( OBJECT *tree, int16_t obj,
int16_t xscroll, int32_t yscroll,
int8_t *cyscroll, int8_t *cursorpos,
int16_t cx, int16_t cy )
{
int_in[0] = obj;
int_in[1] = 5; /* Subcode für Funktion */
int_in[2] = xscroll;
int_in[3..4] = yscroll;
int_in[5] = cx;
int_in[6] = cy;
addr_in[0] = tree;
addr_in[1] = cyscroll;
addr_in[2] = cursorpos;
crys_if( 217 );
return;
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
217 # Opcode der Funktion |
control+2 |
control[1] |
7 # Einträge in int_in |
control+4 |
control[2] |
0 # 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 |
int_in |
int_in[0] |
obj |
int_in+2 |
int_in[1] |
5 # Sub-Opcode |
int_in+4 |
int_in[2] |
xscroll |
int_in+6 |
int_in[3..4] |
yscroll |
int_in+10 |
int_in[5] |
cx |
int_in+12 |
int_in[6] |
cy |
addr_in |
addr_in[0] |
tree |
addr_in+4 |
addr_in[1] |
cyscroll |
addr_in+8 |
addr_in[2] |
cursorpos |
|
- In der RSC-Datei wird eine G_BOX, weiß, ohne Rahmen
eingetragen
- Im Programm wird die SharedLib geladen
- Für jedes G_EDIT-Objekt:
- Textpuffer anlegen.
- Editobjekt mit edit_create erzeugen.
- Objekttyp in G_EDIT ändern und ob_spec auf das Editobjekt
legen.
- mit edit_set_buf den Textpuffer zuweisen.
- Ggf. Einstellungen des Edit-Objekt per edit_set_xxx ändern.
- Edit-Objekt mit edit_open öffnen.
- Erst dann den Baum per objc_draw zeichnen.
- Um Tastaturcodes und Mausklicks an das Edit-Objekt zu
übergeben, muß man edit_evnt aufrufen. Die Syntax ist völlig analog
zu wdlg_evnt, fslx_evnt und fnts_evnt.
- Beim Schließen muß das Edit-Feld per edit_close geschlossen
werden, per edit_delete wird der Speicher für das Editfeld wieder
freigegeben. Es darf dann kein objc_draw mehr durchgeführt werden!
Ggf. den Objekttyp wieder auf G_BOX setzen.
Querverweise: Tastaturcodes von G_EDIT
Folgend Tastaturcodes werden von G_EDIT ausgewertet:
Cursor |
Cursorbewegung |
Ctrl-Cursor-hoch/runter |
Scrollen |
Ctrl-Cursor-links/rechts |
Wortweise Cursor bewegen |
Shift-Cursor-links/rechts |
Cursor zum Zeilenanfang/-ende |
Esc |
(noch) nichts |
Einf |
(noch) nichts |
Shift-Einf |
(noch) nichts |
Backspace |
Zeichen links vom Cursor löschen |
Delete |
Zeichen rechts vom Cursor löschen |
Ctrl-Delete |
(noch) nichts |
Home |
Cursor an Textanfang |
Ende (MF-2) und |
|
Ende (Mac) und |
|
Shift-Clr/Home |
Textende |
Bild hoch (Mac) und |
|
Shift-Cursor-hoch |
Cursor eine Seite hoch |
Bild runter (Mac) und |
|
Shift-Cursor-runter |
Cursor eine Seite runter |
^A |
alles auswählen (seit 27.1.98) |
^C |
Block aufs Klemmbrett |
^X |
Block löschen und aufs Klemmbrett |
^V |
Klemmbrett an Cursorposition einfügen |
AES
Druckdialoge
Ereignisverwaltung