Diese Bibliothek stellt Funktionen zur Verfügung, um Objekte
(gleich welcher Art) zu zeichnen und zu manipulieren; hierzu gibt es
die folgenden Routinen:
• objc_add |
Objekt im Objektbaum einfügen |
• objc_change |
Status eine Objekts ändern |
• objc_delete |
Objekt aus dem Objektbaum entfernen |
• objc_draw |
Objekt (mit Unterobjekten) zeichnen |
• objc_edit |
Text eines Objektes editieren |
• objc_find |
Objekt an der Mausposition ermitteln |
• objc_offset |
Bildschirmkoordinaten eines Objekts ermitteln |
• objc_order |
Reihenfolge im Objektbaum umstellen |
• objc_sysvar |
Modifikation der 3D-Objekte |
• objc_wchange |
Status eines Objektes ändern (im Fenster) |
• objc_wdraw |
Objekt (mit Unterobjekten) zeichnen (im Fenster) |
• objc_wedit |
Text eines Objektes editieren (im Fenster) |
• objc_xedit |
Text eines Objektes editieren |
• objc_xfind |
Objektindex über Position ermitteln |
• objc_xoffset |
z.Zt. keine Informationen bekannt
|
Name: |
»Object change« - verändert die Darstellung eines Objekts
innerhalb der angegebenen Grenzen. |
AES-Nummer: |
47 |
Deklaration: |
int16_t objc_change ( OBJECT *ob_ctree, int16_t ob_cobject,
int16_t ob_cresvd, int16_t ob_cxclip, int16_t ob_cyclip, int16_t
ob_cwclip, int16_t ob_chclip, int16_t ob_cnewstate, int16_t ob_credraw
); |
Beschreibung: |
Die Funktion ändert den Status eines Objektes und zeichnet es
ggfs. neu. Es gilt:
Parameter |
Bedeutung |
|
|
ob_ctree |
Adresse des Objektbaumes |
ob_cobject |
Nummer des betreffenden Objektes |
ob_cresvd |
reserviert, sollte 0 sein |
ob_cxclip |
x-Koordinate |
ob_cyclip |
y-Koordinate |
ob_cwclip |
Breite |
ob_chclip |
Höhe des Clipping-Rechtecks |
ob_cnewstate |
neuer Status des Objektes |
ob_credraw |
0 |
= |
Objekt nicht neu zeichnen |
1 |
= |
Objekt neu zeichnen |
|
|
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
All AES versions. |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_wchange OBJECT
|
C: |
int16_t objc_change ( OBJECT *ob_ctree, int16_t ob_cobject,
int16_t ob_cresvd, int16_t ob_cxclip, int16_t ob_cyclip, int16_t
ob_cwclip, int16_t ob_chclip, int16_t ob_cnewstate, int16_t ob_credraw
); |
Umsetzung: |
int16_t objc_change (OBJECT *ob_ctree, int16_t ob_cobject,
int16_t ob_cresvd, int16_t ob_cxclip,
int16_t ob_cyclip, int16_t ob_cwclip,
int16_t ob_chclip, int16_t ob_cnewstate,
int16_t ob_credraw)
{
int_in[0] = ob_cobject;
int_in[1] = ob_cresvd;
int_in[2] = ob_cxclip;
int_in[3] = ob_cyclip;
int_in[4] = ob_cwclip;
int_in[5] = ob_chclip;
int_in[6] = ob_cnewstate;
int_in[7] = ob_credraw;
addr_in[0] = ob_ctree;
return ( crys_if(47) );
}
|
GEM-Arrays: |
|
Name: |
»Object draw« - zeichnet ein Objekt. |
AES-Nummer: |
42 |
Deklaration: |
int16_t objc_draw ( OBJECT *ob_drtree, int16_t ob_drstart,
int16_t ob_drdepth, int16_t ob_drxclip, int16_t ob_dryclip, int16_t
ob_drwclip, int16_t ob_drhclip ); |
Beschreibung: |
Die Funktion stellt Objekte (oder Teile von Objekten) auf dem
Bildschirm dar. Es gilt:
Parameter |
Bedeutung |
|
|
ob_drtree |
Adresse des Objektbaumes |
ob_drstart |
Nummer des ersten zu zeichnenden Objektes |
ob_drdepth |
Anzahl der zu zeichnenden Ebenen (0 = nur das erste Objekt),
max 8 |
ob_drxclip |
x-Koordinate |
ob_dryclip |
y-Koordinate |
ob_drwclip |
Breite |
ob_drhclip |
Höhe des begrenzenden Rechteckes.
|
Hinweis: Über die Parameter kann ein Rechteck angegeben
werden, auf das sich die Darstellung beschränken soll (Clipping). |
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
All AES versions. |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_wdraw OBJECT
|
Name: |
»Object edit« - editiert einen Text in einem Objekt. |
AES-Nummer: |
46 |
Deklaration: |
int16_t objc_edit ( OBJECT *ob_edtree, int16_t ob_edobject,
int16_t ob_edchar, int16_t *ob_edidx, int16_t ob_edkind ); |
Beschreibung: |
Die Funktion ermöglicht Texteingaben in Objekte des Typs
G_FTEXT oder G_FBOXTEXT. Es gilt:
Parameter |
Bedeutung |
|
|
ob_edtree |
Adresse des Objektbaumes |
ob_edobject |
Nummer des zu editierenden Objektes |
ob_edchar |
eingegebenes Zeichen |
ob_edidx |
Position des Zeichens im String |
ob_edkind |
Funktionsauswahl, wie folgt:
EDSTART 0 |
reserviert |
EDINIT 1 |
formatierten String berechnen, und Cursor einschalten |
EDCHAR 2 |
Zeichen verarbeiten und String anschließend neu anzeigen |
EDEND 3 |
Cursor ausschalten
|
|
Hinweis: MagiC ab Version 2.0 kennt eine erweiterte
Funktion objc_xedit. |
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
All AES versions. |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_wedit OBJECT TEDINFO objc_xedit
|
Name: |
»Object find« - ermittelt, welches Objekt sich an der
angegebenen Bildschirmposition befindet. |
AES-Nummer: |
43 |
Deklaration: |
int16_t objc_find ( OBJECT *ob_ftree, int16_t ob_fstartob,
int16_t ob_fdepth, int16_t ob_fmx, int16_t ob_fmy ); |
Beschreibung: |
Die Funktion bestimmt das Objekt, welches sich unter dem
Mauszeiger befindet. Es gilt:
Parameter |
Bedeutung |
|
|
ob_ftree |
Adresse des Objektbaumes |
ob_fstartob |
Nummer des Objektes, bei dem die Suche beginnen soll |
ob_fdepth |
Anzahl der Ebenen, die durchsucht werden sollen (0 = nur
Mutterobjekt) |
ob_fmx |
x-Koordinate |
ob_fmy |
y-Koordinate der Bildschirmposition
|
|
Ergebnis: |
Als Ergebnis wird die Nummer des entsprechenden Objektes (oder
-1 für 'nicht gefunden') zurückgegeben. |
Verfügbar: |
All AES versions. |
Gruppe: |
Objekte |
Querverweise: |
Binding OBJECT objc_xfind
|
Name: |
»Object sysvar« - Manipulation der 3D Objekte |
AES-Nummer: |
48 |
Deklaration: |
int16_t objc_sysvar ( int16_t ob_smode, int16_t ob_swhich,
int16_t ob_sival1, int16_t ob_sival2, int16_t *ob_soval1, int16_t
*ob_soval2 ); |
Beschreibung: |
Die Funktion erlaubt es, das Erscheinungsbild der 3D-Objekte
des AES zu setzen bzw. zu erfragen. Es gilt:
Parameter |
Bedeutung |
|
|
ob_smode |
0 |
- |
Status abfragen |
1 |
- |
neuen Status setzen |
|
ob_swhich |
Gewünschte 3D-Komponente:
LK3DIND (1) - Indikatoren
Modus 0: |
ob_soval1 = 0
beim Selektieren eines Objektes bewegt sich der zugehörige Text
nicht.
ob_soval1 = 1
beim Selektieren eines Objektes bewegt sich der zugehörige Text.
ob_soval2 = 0
Objektfarbe ändert sich beim Selektieren nicht.
ob_soval2 = 1
Objektfarbe wird beim Selektieren verändert. |
Modus 1: |
wie Modus 0, nur lassen sich jetzt die jeweiligen Werte, über
die Parameter ob_sival1 bzw. ob_sival2 setzen.
|
LK3DACT (2) - Aktivatoren
Bestimmt das Verhalten der Aktivatoren. Alle weiteren Angaben sind
analog den Indikatoren zu verwenden.
INDBUTCOL (3) - Farbe nicht-selektierter Indikatoren!
Modus 0: |
ob_soval1 ist die aktuelle Farbe. |
Modus 1: |
ob_sival1 enthält die zu setzende Farbe.
|
ACTBUTCOL (4) - Farbe nicht-selektierter Aktivatoren
Modus 0: |
ob_soval1 ist die aktuelle Farbe. |
Modus 1: |
ob_sival1 enthält die zu setzende Farbe.
|
BACKGRCOL (5) - Farbe des 3D Hintergrundes
Modus 0: |
ob_soval1 ist die aktuelle Farbe. |
Modus 1: |
ob_sival1 enthält die zu setzende Farbe.
|
AD3DVALUE (6) - Pixelvergrößerung erfragen
Modus 0: |
ob_soval1
Anzahl der Pixel in horizontaler Richtung, um die 3D-Buttons nach
jeder Seite vergrößert werden.
ob_soval2
Anzahl der Pixel in vertikaler Richtung, um die 3D-Buttons nach
jeder Seite vergrößert werden.
Hinweis: Dieser Modus liefert in MagiC stets den Wert 0,
da die Objektgrößen vom System nicht angetastet werden. |
Modus 1: |
z.Zt. nicht unterstützt.
|
MX_ENABLE3D (10) - 3D Look ein-/ausschalten Dieser Modus
ist nur unter MagiC (ab Version 3.0) vorhanden, und erlaubt es, den
3D-Look ein- bzw. auszuschalten. Es gilt:
Modus 0: |
ob_soval1 = 0
(3D ist aus)
ob_soval1 = 1
(3D ist aktiv) |
Modus 1: |
ob_sival1 = 0
ob_sival2 = 0
(3D-Look aus)
ob_sival1 = 1
ob_sival2 = 1
(3D-Look ein)
|
|
Hinweis: Die per objc_sysvar vorgenommenen Einstellungen
gelten nicht nur für das eigene Programm, sondern für das ganze
System. Aus diesem Grund sollte die Funktion in normalen
Anwenderprogrammen nicht benutzt werden, sondern nur in
Konfigurations-Programmen (z.B. CPX-Modulen) zum Einsatz kommen.
In MagiC 2.0 ist die Funktion zwar vorhanden, läßt jedoch aufgrund
der noch fehlenden 3D-Objekte keine Modifikationen zu. Deshalb sollte
der Rückgabewert der Funktion beachtet werden. Ab MagiC 3 steht der
3D-Look zwar zur Verfügung, jedoch gilt es einige Unterschiede zu
beachten. |
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis der Wert
0 zurückgegeben wird. |
Verfügbar: |
Available as of AES version 3.40.
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 13)
erfragt werden. |
Gruppe: |
Objekte |
Querverweise: |
Binding
|
Name: |
»Object window change« - verändert die Darstellung eines
Objekts innerhalb der angegebenen Grenzen. |
AES-Nummer: |
61 |
Deklaration: |
void objc_wchange ( OBJECT *ob_ctree, int16_t ob_cobject,
int16_t ob_cnewstate, GRECT *clip, int16_t whandle ); |
Beschreibung: |
Die Funktion ändert den Status eines Objektes und zeichnet es
ggfs. neu. Es gilt:
Parameter |
Bedeutung |
ob_ctree |
Adresse des Objektbaumes |
ob_cobject |
Nummer des betreffenden Objektes |
ob_cnewstate |
neuer Status des Objektes |
clip |
begrenzendes Clipping-Rechteck |
whandle |
Kennung des Fensters |
Hinweis: Ein Aufruf dieser Funktion ist äquivalent zu
objc_change (ohne Neuzeichnen) mit einem anschließendem objc_wdraw. |
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
Die Funktion steht in MagiC ab Version 5.10 zur Verfügung. |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_change OBJECT
|
Name: |
»Object window draw« - zeichnet ein Objekt im Fenster. |
AES-Nummer: |
60 |
Deklaration: |
void objc_wdraw ( OBJECT *ob_drtree, int16_t ob_drstart,
int16_t ob_drdepth, GRECT *clip, int16_t whandle ); |
Beschreibung: |
Die Funktion stellt Objekte (oder Teile von Objekten) auf dem
Bildschirm dar. Es gilt:
Parameter |
Bedeutung |
|
|
ob_drtree |
Adresse des Objektbaumes |
ob_drstart |
Nummer des ersten zu zeichnenden Objektes |
ob_drdepth |
Anzahl der zu zeichnenden Ebenen (0 = nur das erste Objekt) |
clip |
begrenzendes Clipping-Rechteck |
whandle |
Kennung des Fensters
|
Hinweis: Über die Parameter kann ein Rechteck angegeben
werden, auf das sich die Darstellung beschränken soll (Clipping).
Besitzt clip den Wert NULL, so beschränkt sich der
Zeichenbereich auf den Arbeitsbereich des Fensters.
Die Funktion entspricht im wesentlichen objc_draw mit dem
Unterschied, dass hier die Rechteckliste eines Fensters beachtet wird. |
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
Die Funktion steht in MagiC ab Version 5.10 zur Verfügung. |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_draw OBJECT
|
Name: |
»Object window edit« - editiert einen Text in einem Objekt. |
AES-Nummer: |
65 |
Deklaration: |
int16_t objc_wedit ( OBJECT *ob_edtree, int16_t ob_edobject,
int16_t ob_edchar, int16_t *ob_edidx, int16_t ob_edkind, int16_t
whandle ); |
Beschreibung: |
Die Funktion ermöglicht Texteingaben in Objekte des Typs
G_FTEXT oder G_FBOXTEXT. Es gilt:
Parameter |
Bedeutung |
|
|
ob_edtree |
Adresse des Objektbaumes |
ob_edobject |
Nummer des zu editierenden Objektes |
ob_edchar |
eingegebenes Zeichen |
ob_edidx |
Position des Zeichens im String |
ob_edkind |
Funktionsauswahl, wie folgt:
0 |
= reserviert |
1 |
= formatierten String berechnen, und Cursor einschalten |
2 |
= Zeichen verarbeiten und String anschließend neu anzeigen |
3 |
= Cursor ausschalten |
103 |
= Analog Modus-3, jedoch wird der Cursor im XOR-Modus
gezeichnet.
|
|
whandle |
Kennung des Fensters
|
Hinweis: Die Funktion entspricht im Prinzip objc_edit mit
dem Unterschied, dass hier die Rechteckliste eines Fensters beachtet
wird. |
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
Die Funktion steht in MagiC ab Version 5.10 zur Verfügung. |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_edit OBJECT TEDINFO
|
Name: |
»Object edit« - editiert einen Text in einem Objekt. |
AES-Nummer: |
46 |
Deklaration: |
int16_t objc_xedit ( OBJECT *ob_edtree, int16_t ob_edobject,
int16_t ob_edchar, int16_t *ob_edidx, int16_t ob_edkind, GRECT *r ); |
Beschreibung: |
Die Funktion ermöglicht Texteingaben in Objekte des Typs
G_FTEXT oder G_FBOXTEXT. Es gilt:
Parameter |
Bedeutung |
|
|
ob_edtree |
Adresse des Objektbaumes |
ob_edobject |
Nummer des zu editierenden Objektes |
ob_edchar |
eingegebenes Zeichen |
ob_edidx |
Position des Zeichens im String |
ob_edkind |
Funktionsauswahl, wie folgt:
0 |
reserviert |
1 |
formatierten String berechnen, und Cursor einschalten |
2 |
Zeichen verarbeiten und String anschließend neu anzeigen |
3 |
Cursor ausschalten |
103 |
Analog Modus-3, jedoch wird der Cursor im XOR-Modus gezeichnet.
Zusätzlich muß jedoch Zeiger auf ein GRECT übergeben werden, auf das
die Ausgabe beschränkt wird; wichtig für den Redraw im Fenster.
|
|
r |
siehe ob_edkind
|
|
Ergebnis: |
Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 0
zurückgegeben wird. |
Verfügbar: |
ab MagiC Version 2.0 |
Gruppe: |
Objekte |
Querverweise: |
Binding objc_wedit OBJECT TEDINFO objc_edit
|
Name: |
»Object xfind« - ermittelt, welches Objekt sich an der
angegebenen Bildschirmposition befindet. |
AES-Nummer: |
49 |
Deklaration: |
int16_t objc_xfind ( OBJECT *ob_ftree, int16_t ob_fstartob,
int16_t ob_fdepth, int16_t ob_fmx, int16_t ob_fmy ); |
Beschreibung: |
Die Funktion bestimmt das Objekt, welches sich unter dem
Mauszeiger befindet. Es gilt:
Parameter |
Bedeutung |
|
|
ob_ftree |
Adresse des Objektbaumes |
ob_fstartob |
Nummer des Objektes, bei dem die Suche beginnen soll |
ob_fdepth |
Anzahl der Ebenen, die durchsucht werden sollen (0 = nur
Mutterobjekt) |
ob_fmx |
x-Koordinate |
ob_fmy |
y-Koordinate der Bildschirmposition
|
Hinweis: Der Unterschied zu objc_find besteht darin, daß
statt dem normalen Objektrechteck das umfassende Objektrechteck
benutzt wird. Bei dieser Funktion wird also auch der Rahmen des
Objektes beachtet. |
Ergebnis: |
Als Ergebnis wird die Nummer des entsprechenden Objektes (oder
-1 für 'nicht gefunden') zurückgegeben. |
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 5)
erfragt werden. |
Gruppe: |
Objekte |
Querverweise: |
Binding OBJECT objc_find
|