Topic : TOS - The Operating System Author : Version : tos.hyp (December 19, 2008) Subject : Programmieren/Atari Nodes : 3010 Index Size : 93790 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Title @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File8.22.26 PARMBLK TOS typedef struct { OBJECT *pb_tree; /* Pointer to the object tree */ int16_t pb_obj; /* Index of the object */ int16_t pb_prevstate; /* Previous object status */ int16_t pb_currstate; /* New object status */ int16_t pb_x; /* X-position of the object */ int16_t pb_y; /* Y-position of the object */ int16_t pb_w; /* Width of the object */ int16_t pb_h; /* Height of the object */ int16_t pb_xc; /* X-position of the clipping region */ int16_t pb_yc; /* Y-position of the clipping region */ int16_t pb_wc; /* Width of the clipping region */ int16_t pb_hc; /* Height of the clipping region */ int32_t pb_parm; /* Parameter of USERBLK structure */ } PARMBLK; Note: The object only needs to be redrawn if the old and new states are identical; otherwise an 'update' of the object tree suffices. Furthermore, the following points should be respected: . A private function must return to the AES in data register d0 which aspects of the object status still have to be updated. With this it is not absolutely necessary to program out the code for inverting the object in a private output function. Generally one would want to process some bits of the object status oneself, and leave others to the AES. . The function receives the PARMBLK pointer on the stack, and hence must be declared in Pure-C as 'cdecl'. . A complete redraw of the object is required only if the compo nents pb_prevstate and pb_currstate are identical; otherwise only the obects status has changed (for example by being clicked on). . A private function is executed de facto as a sub-program of the AES, hence one should take care with regard to stack usage. Furthermore, one can of course make no further AES calls, since the AES is not re-entrant. On the other hand, calls of the VDI input functions are permitted here. . The component pb_parm serves to pass to one's private function further information (such as a pointer to a string, perhaps). . One should not stray too far from the original appearance of GEM. Rounded rectangles or italic texts certainly do not match the normal appearance of a GEM application. See Also: About the AES GEM USERBLK