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.4 Objektstati des AES TOS Vom Objektstatus hängt es ab, wie ein Objekt später auf dem Bildschirm dargestellt wird. Ein Objektstatus kann von folgendem Typ sein: Status Bedeutung NORMAL (0x0000) Normale Darstellung. SELECTED (0x0001) Inverse Darstellung, dh. das Objekt ist selektiert. CROSSED (0x0002) Falls die Objektart BOX ist, wird das Objekt mit durchgestrichen gezeichnet. CHECKED (0x0004) Am linken Objektrand befindet sich ein Häkchen. DISABLED (0x0008) Das Objekt wird grau dargestellt und ist nicht mehr selektierbar. OUTLINED (0x0010) Das Objekt bekommt einen Rahmen. SHADOWED (0x0020) Ein Schatten wird unter das Objekt gezeichnet. WHITEBAK (0x0040) Auf PC-GEM bewirkt dies, daß die Icon-Maske nicht mitgezeichnet wird, was u.U. die Ausgabe beschleunigen kann. Ab MagiC-3 wird hiermit das Unterstreichen von Zeichenketten gesteuert. Dieses Feature kann über appl_getinfo (Opcode 13) ermittelt werden. DRAW3D (0x0080) Ein Objekt soll mit 3D-Effekt gezeichnet werden. Dieses Flag ist nur für PC-GEM interessant, und wird vom Atari-AES (so z.B. auch in MagiC) ignoriert. HIGHLIGHTED (0x0100) Ein Objekt mit diesem State wird mit einer gestrichelten Line, die mit MD_XOR gezeichnet wird, umrandet. Dieser State wurde mit ViewMAX beta eingeführt. UNHIGHLIGHTED (0x0200) Bei einem Objekt mit diesem State wird beim Zeichnen explizit eine durch den State HIGHLIGHTED gezeichnete Umrandung entfernt. Dazu muß wie folgt vorgegangen werden: Zuerst muß der State HIGHLIGHTED gelöscht werden, dann der State UNHIGHLIGHTED gesetzt werden und anschließend das Objekt mit der Funktion objc_draw neu gezeichnet werden. Ein Neuzeichnen des Objekts ohne den State UNHIGHLIGHTED würde die Umrandung nicht löschen, da sie außerhalb des Bereichs liegt, den das Objekt belegt. Nach dem Neuzeichnen sollte der State UNHIGHLIGHTED wieder gelöscht werden. Dieser State wurde mit ViewMAX beta eingeführt. UNDERLINE (0x0f00) Dieser Opcode steht unter MagiC ab Version 2.0 zur Verfügung, und legt die Position und Größe des Unterstriches bei Objekten vom Typ G_STRING, G_TITLE und G_BUTTON fest. XSTATE (0xf000) Dieser Opcode steht unter MagiC ab Versio 2.0 zur Verfügung, und sorgt für das Umschalten bei den verschiedenen Button-Typen (G_STRING, G_TITLE und G_BUTTON). In GEM/5, CROSSED makes the object draw in 3D: ∙ If an object is both CROSSED and SELECTABLE, then it is drawn as a checkbox. ∙ If it is CROSSED, SELECTABLE and an RBUTTON, it is drawn as a radio button. ∙ If it is a button or a box and it is CROSSED, then it is drawn as a raised 3D shape, similar to Motif. ∙ If a button is CROSSED and DEFAULT, a "Return key" symbol appears on it (rather like NEXTSTEP). ∙ Boxes and text fields that are CROSSED and CHECKED appear sunken. GEM/5 can be detected by calling vqt_name for font 1. If nothing is returned, GEM/5 is running. Recent FreeGEM builds contain a system based on the GEM/5 one, but extended and backwards-compatible. The DRAW3D state is used instead of CROSSED: ∙ If an object is both DRAW3D and SELECTABLE, then it is drawn as a checkbox. ∙ If it is DRAW3D, SELECTABLE and an RBUTTON, it is drawn as a radio button. ∙ If a button is DRAW3D and DEFAULT, a "Return key" symbol will be on it. ∙ If an object with a 3D border has the WHITEBAK state, then the 3D border will not have a black edge. ∙ If a radio button or checkbox has the WHITEBAK state, then it will be drawn with a white background rather than in the colour used by 3D objects. To check for these abilities, use appl_init and check that bit 3 of xbuf.abilities is set. Querverweis: Objektstruktur im AES Objektarten des AES