•  Back 
  •  AES-Strukturen 
  •  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.22.26  PARMBLK                                                   TOS

typedef struct
{
   OBJECT   *pb_tree;        /* Zeiger auf den Objektbaum        */
   int16_t  pb_obj;          /* Nummer des Objekts               */
   int16_t  pb_prevstate;    /* vorheriger Objektstatus          */
   int16_t  pb_currstate;    /* neuer Objektstatus               */
   int16_t  pb_x;            /* x-Position des Objektes          */
   int16_t  pb_y;            /* y-Position des Objektes          */
   int16_t  pb_w;            /* Breite des Objektes              */
   int16_t  pb_h;            /* Höhe des Objektes                */
   int16_t  pb_xc;           /* x-Position des Clipping-Bereichs */
   int16_t  pb_yc;           /* y-Position des Clipping-Bereichs */
   int16_t  pb_wc;           /* Breite des Clipping-Bereichs     */
   int16_t  pb_hc;           /* Höhe des Clipping-Bereichs       */
   int32_t  pb_parm;         /* Parameter der USERBLK-Struktur   */
} PARMBLK;

Hinweis: Das Objekt muß nur neu gezeichnet werden, wenn alter und 
neuer Status identisch sind; anderenfalls reicht ein 'Update' des 
Objektbaums aus. Ferner sollten folgende Punkte beachtet werden:

   ∙ die eigene Funktion muß im Datenregister d0 dem AES 
     zurückliefern, welche Aspekte des Objektstatus noch aktualisiert 
     werden müssen. Damit ist es nicht unbedingt nötig, in der eigenen 
     Ausgabefunktion den Code zum invertieren des Objektes 
     auszuprogrammieren. Im allgemeinen wird man einige Bits des 
     Objektstatus selbst bearbeiten wollen, und andere dem AES 
     überlassen.

   ∙ die Funktion erhält den PARMBLK-Zeiger auf dem Stack, und muß 
     daher in Pure-C als 'cdecl' deklariert werden.

   ∙ ein vollständiges Neuzeichnen des Objektes ist nur dann nötig, 
     wenn die Komponenten pb_prevstate und pb_currstate gleich sind; 
     anderenfalls hat sich nur der Objektstatus geändert (zum Beispiel 
     durch Anklicken).

   ∙ die eigene Funktion wird de facto als Unterprogramm der AES 
     ausgeführt. Daher sollte man im Hinblick auf die Stackbenutzung 
     vorsichtig sein. Außerdem darf man natürlich keine weiteren AES- 
     Aufrufe machen, da das AES nicht re-entrant ist. Aufrufe der 
     VDI-Eingabefunktionen sind hingegen an dieser Stelle erlaubt.

   ∙ die Komponente pb_parm dient dazu, der eigenen Funktion weitere 
     Informationen (wie etwa einen Zeiger auf einen String) mit auf 
     den Weg zu geben.

   ∙ man sollte sich nie zu weit von der ursprünglichen Optik von GEM 
     entfernen. Abgerundete Rechtecke oder kursive Texte passen 
     sicherlich nicht in das normale Erscheinungsbild einer GEM- 
     Applikation.

Querverweis: AES   GEM   USERBLK