•  Back 
  •  Grundlagen des AES 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
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