This is an old version from the tos.hyp. The new is on GitHub!

HomeAESDruckdialogeEreignisverwaltung

8.6 Editobjekt-Funktionen

Diese Bibliothek stellt Funktionen zur Verfügung, um Editieroperationen an einem Objekt vorzunehmen.

edit_close Schließt ein Editobjekt.
edit_create Erstellt ein neues Editobjekt.
edit_cursor Schaltet den Objekt-Cursor an bzw. aus.
edit_delete Entfernt ein Editobjekt aus dem Speicher.
edit_evnt Ereignisverwaltung für das Objekt.
edit_get_buf Textpuffer des Objektes abfragen.
edit_get_colour Farben ermitteln.
edit_get_cursor Cursorposition ermitteln.
edit_get_dirty Objekt auf Veränderungen überprüfen.
edit_get_font Zeichensatz ermitteln.
edit_get_format Formatierungen ermitteln.
edit_get_pos  
edit_get_scrollinfo Informationen für Scrollbalken ermitteln.
edit_get_sel Selektierten Bereich ermitteln.
edit_open Öffnet ein Editobjekt.
edit_resized Objektgröße verändern.
edit_scroll Scrollt das Objekt in eine Richtung.
edit_set_buf Weist dem Objekt einen Textpuffer zu.
edit_set_colour Farben setzen.
edit_set_cursor Cursorposition setzen.
edit_set_dirty Objekt als verändert markieren.
edit_set_font Zeichensatz setzen.
edit_set_format Formatierungen setzen.
edit_set_pos  

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

8.6.1 edit_close

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

8.6.1.1 Bindings für edit_close

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

8.6.2 edit_create

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

8.6.2.1 Bindings für edit_create

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

8.6.3 edit_cursor

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

8.6.3.1 Bindings für edit_cursor

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

8.6.4 edit_delete

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

8.6.4.1 Bindings für edit_delete

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

8.6.5 edit_evnt

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

8.6.5.1 Bindings für edit_evnt

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.

8.6.6 edit_get_buf

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

8.6.6.1 Bindings für edit_get_buf

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

8.6.7 edit_get_colour

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

8.6.7.1 Bindings für edit_get_colour

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

8.6.8 edit_get_cursor

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

8.6.8.1 Bindings für edit_get_cursor

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

8.6.9 edit_get_dirty

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

8.6.9.1 Bindings für edit_get_dirty

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

8.6.10 edit_get_font

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

8.6.10.1 Bindings für edit_get_font

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

8.6.11 edit_get_format

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

8.6.11.1 Bindings für edit_get_format

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

8.6.12 edit_get_pos

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

8.6.12.1 Bindings für edit_get_pos

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

8.6.13 edit_get_scrollinfo

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

8.6.13.1 Bindings für edit_get_scrollinfo

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 (?).

8.6.14 edit_get_sel

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

8.6.14.1 Bindings für edit_get_sel

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.

8.6.15 edit_open

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

8.6.15.1 Bindings für edit_open

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

8.6.16 edit_resized

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

8.6.16.1 Bindings für edit_resized

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

8.6.17 edit_scroll

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

8.6.17.1 Bindings für edit_scroll

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

8.6.18 edit_set_buf

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

8.6.18.1 Bindings für edit_set_buf

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

8.6.19 edit_set_colour

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

8.6.19.1 Bindings für edit_set_colour

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

8.6.20 edit_set_cursor

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

8.6.20.1 Bindings für edit_set_cursor

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

8.6.21 edit_set_dirty

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

8.6.21.1 Bindings für edit_set_dirty

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

8.6.22 edit_set_font

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

8.6.22.1 Bindings für edit_set_font

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

8.6.23 edit_set_format

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

8.6.23.1 Bindings für edit_set_format

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

8.6.24 edit_set_pos

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

8.6.24.1 Bindings für edit_set_pos

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

8.6.25 Verwendung G_EDIT-Objekt

Querverweise: Tastaturcodes von G_EDIT

8.6.26 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

HomeAESDruckdialogeEreignisverwaltung