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 Die Objekt-Struktur TOS Die Datenstruktur des Objektbaums ist zwar kein Baum im Sinne eines Binärbaums, besitzt jedoch innerhalb eines Zeigers die logischen Verkettungen eines Baums, mit Vorgängern und Nachfolgern. Die Spezifikation von Vorgängern und Nachfolgern wird durch Indizes auf ein Array vorgenommen. Die Baumstruktur der einzelnen Objekte kann man sich am leichtesten an Hand eines einfachen Beispiels veranschaulichen: Ein Menü setzt sich zunächst aus der Menüleiste zusammen. Diese enthält wiederum mehrere Titeltexte. Die Titeltexte sind also direkt in der Menüleiste enthalten, sie sind beide Nachfolger des Objekts 'Menüleiste', bewegen sich also auf der selben hierarchischen Ebene. Das Objekt Menüleiste verweist mit ob_head auf den ersten Menütitel und mit ob_tail auf den letzten Menütitel. Im ersten Menütitel dient der Zeiger ob_next zur Adressierung des nächsten Menütitels. Die Verkettung weist also folgende Struktur auf: Menüleiste: +---------+---------+--------+ | ob_head | ob_tail | ... | | o | o | | +----|----+----|----+--------+ | +-------------------------+ V V +---------+---------+--------+ +---------+---------+--------+ | ... | ob_next | ... | ... | ... | ... | ... | | | o | | | | | | +---------+----|----+--------+ +---------+---------+--------+ 1.Menütitel | n-ter Menütitel +-----> 2.Menütitel Welche Aktionen mit einem Objekt durchgeführt werden dürfen, wird in ob_flags festgelegt. Der Zustand eines Objekts wird im Eintrag ob_state festgehalten. Der Eintrag ob_type legt den Objekttyp fest. Manche Objekte benötigen zur exakten Festlegung eine zusätzliche Datenstruktur, wie TEDINFO oder BITBLK. In ob_spec wird dann ein Zeiger auf diese zusätzliche Struktur abgelegt. Zusammenfassend nochmals der Gesamtaufbau der Datenstruktur für Objekte OBJECT: +-------------+ | ob_next | Index für das nächste Objekt +-------------+ | ob_head | Index des ersten Kindes +-------------+ | ob_tail | Index des letzten Kindes +-------------+ | ob_type | Objektart +-------------+ | ob_flags | Manipulationsflags +-------------+ | ob_state | Objektstatus +-------------+ | ob_spec | siehe unter Objektart +-------------+ | ob_x | relative x-Koordiante zum Eltern-Objekt +-------------+ | ob_y | relative y-Koordinate zum Eltern-Objekt +-------------+ | ob_width | Breite des Objekts +-------------+ | ob_height | Höhe des Objekts +-------------+ Querverweis: Objektfarben des AES Objektart Manipulationsflags Objektstatus