Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File8.2.4.1 Objektarten des AES TOS Folgende Objektarten stehen zur Auswahl: Art Bedeutung G_BOX (20) Rechteckiger Kasten. ob_spec enthält verschiedene Informationen über Rahmenstärke, Farbe und ähnliches. G_TEXT (21) Grafiktext, ob_spec zeigt auf TEDINFO-Struktur. G_BOXTEXT (22) rechteckiger Kasten mit Grafiktext, ob_spec zeigt auf TEDINFO-Struktur. G_IMAGE (23) Bild, ob_spec zeigt auf BITBLK-Struktur. G_USERDEF (24) Benutzerdefinierte Funktion zum Zeichnen eines eigenen Objekts. ob_spec verweist auf eine USERBLK Struktur. G_IBOX (25) Transparentes Rechteck, das nur gesehen werden kann, wenn die Umrandung nicht die Dicke Null hat. ob_spec enthält weitere Informationen über das Aussehen. G_BUTTON (26) Text mit Rahmen für Optionsauswahl. ob_spec zeigt auf eine Zeichenkette mit dem Text, der in dem Knopf erscheinen soll. Neu ab MagiC-Version 3.0: Ist das Objektflag WHITEBAK gesetzt, und Bit-15 im Objektstatus = 0, so wird der Button unterstrichen; dabei gilt: (Highbyte&0xf) von ob_state ist die gewünschte Unterstreichposition. Falls hingegen Bit-15 = 1 ist, so handelt es sich um einen Sonderbutton (Radio-Button oder Checkbox). Weitere Besonderheiten: WHITEBAK=1, Bit-15 = 1 und in ob_state Highbyte = -2 Gruppenrahmen Highbyte = -1 Sonderbutton, nicht unterstr. Highbyte != -1,-2 Sonderbutton, unterstr. (dabei ist wieder (Highbyte&0xf) von ob_state die Unterstreichposition). Das Vorhandensein dieser Features sollte am besten über die Funktion appl_getinfo (Opcode 13) ermittelt werden. G_BOXCHAR (27) Rechteck, mit einem Zeichen. In ob_spec wird nicht nur das Aussehen der Umrandung, sondern auch das Zeichen definiert. G_STRING (28) Zeichenkette, ob_spec zeigt auf den String. Neu ab MagiC-Version 3.0: Ist das Objektflag WHITEBAK gesetzt, und das Highbyte von ob_state != -1, so wird der String unterstrichen; die Unterstreich-Position wird dabei durch (Highbyte & 0xf) von ob_state geregelt. Bei gesetztem WHITEBAK-Flag und Highbyte von ob_state = -1, wird der komplette String unterstrichen. Das Vorhandensein dieser Features sollte am besten per appl_getinfo (Opcode 13) ermittelt werden. G_FTEXT (29) Formatierter Grafiktext, ob_spec zeigt auf TEDINFO- Struktur G_FBOXTEXT (30) Rechteck mit formatiertem Grafiktext, ob_spec zeigt auf TEDINFO-Struktur. G_ICON (31) Icon-Symbol, ob_spec zeigt auf die ICONBLK-Struktur. G_TITLE (32) Titel eines Drop-Down-Menüs, ob_spec zeigt auf den String. Ab MagiC-2 kann dabei auch ein Buchstabe unterstrichen werden. Dies geht wie folgt: WHITEBAK in ob_state setzen (ob_state >> 8) & 0xf = Position des Unterstrichs (ob_state >> 8) & 0xf0 ist 0 G_CICON (33) Farb-Icon, ob_spec zeigt auf die CICONBLK-Struktur. G_CLRICN (33) Colour icon, ob_spec zeigt auf die ICONBLK-Struktur. Supported in the ViewMAX/3 beta and in FreeGEM G_SWBUTTON (34) Cycle-Button (d.h. ein Button, der beim Anklicken seinen Text zyklisch ändert), ob_spec zeigt auf eine SWINFO-Struktur. Das Vorhandensein dieses Objekttyps sollte per appl_getinfo (Opcode 13) erfragt werden. G_DTMFDB (34) For internal AES use only: desktop image. The ob_spec is a pointer to a MFDB structure. Supported in the ViewMAX/3 beta and in FreeGEM. G_POPUP (35) PopUp-Menü, ob_spec zeigt auf eine POPINFO-Struktur. Falls das Menü mehr als 16 Einträge umfaßt, so ist dieses scrollbar. Das Vorhandensein dieses Objekttyps sollte per appl_getinfo (Opcode 13) erfragt werden. Hinweis: G_POPUP sieht wie G_BUTTON aus, die Zeichenkette wird jedoch nicht zentriert, um möglichst mit den Zeichenketten im Menü auf einer Linie zu liegen. G_WINTITLE (36) Diese Objektnummer wird von MagiC intern dazu verwendet, Fenstertitel darzustellen. Der Aufbau dieses Objekttyps kann sich jederzeit ändern und wird daher nicht dokumentiert. G_EDIT (37) Ab MagiC 5.20 steht ein in einer Shared-Library implementiertes Editobjekt zur Verfügung. ob_spec verweist auf das Objekt. Achtung: Dieser Typ wird von den Funktionen form_do, form_xdo, form_button, form_keybd, objc_edit, wdlg_evnt und wdlg_do z.Zt. noch nicht unterstützt, d.h. die entsprechenden Ereignisse müssen selbst (per edit_evnt) an das Objekt weitergeleitet werden. G_SHORTCUT (38) Dieser Typ wird ähnlich wie G_STRING behandelt, ein vorhandenes Tastaturkürzel wird jedoch abgespalten und rechtsbündig ausgegeben. Das Vorhandensein dieses Objekttyps sollte per appl_getinfo (Opcode 13) erfragt werden. Die Einführung proportionaler AES-Zeichensätze machte eine neue Strategie für die Ausrichtung der Menüeinträge erforderlich. Um Tastaturkürzel rechtsbündig ausrichten zu können, werden Objekte vom Typ G_STRING innerhalb eines Menüs entsprechend in Kommando und Kürzel aufgespalten. Diese Strategie versagt jedoch bei Menüs, die vom Programm selbst, z.B. innerhalb eines Fensters oder eines Popup- Menüs, verwaltet werden. Um auch hier eine brauchbare Ausrichtung zu erreichen, mußte dieser neue Objekttyp eingeführt werden. G_SLIST (39) XaAES extended object - scrolling list Hinweis: Für G_BOX, G_IBOX und G_BOXCHAR zeigt die Komponente ob_spec der OBJECT-Struktur nicht auf eine andere Datenstruktur, sondern enthält weitere Informationen zum Aussehen des Objektes. Dabei gilt: Bits Bedeutung 24..31 darzustellendes Zeichen (nur bei G_BOXCHAR) 16..23 0 = Rahmendicke 1..128 = Rahmen liegt 1..128 Pixel im inneren des Objekts -1..-127 = Rahmen liegt 1..127 Pixel außerhalb des Objekts 12..15 Rahmenfarbe (0..15) 08..11 Textfarbe (0..15) 7 Text transparent (0) oder deckend (1) 04..06 0 = hohl 1 = ansteigende Intensität 2 . . 7 = solide Fläche 00..03 Innenfarbe (0..15) Das Hibyte wird vom AES nur für Submenüs verwendet. Ist das höchste Bit von ob_type 0x8000, sowie das Bit SUBMENU in ob_flags gesetzt, so geben die Bits 8..14 an, welches Submenü mit dem Menüeintrag gekoppelt ist. Jede Applikation kann daher maximal 128 Submenüs haben. MagiC liest aus ob_type stets nur das Lowbyte aus, außer für die Submenü- Behandlung. TOS reagiert auf unbekannte Objekttypen (z.B. die reinen MagiC-Typen G_SWBUTTON usw.) sauber, d.h. die Objekte werden nicht gezeichnet. Querverweis: Objektstruktur im AES Objektfarben des AES