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.14.4 lbox_create TOS Name: »List Box Create« - Initialisieren einer Listbox. AES-Nummer: 170 Deklaration: LIST_BOX *lbox_create ( OBJECT *tree, SLCT_ITEM slct, SET_ITEM set, LBOX_ITEM *items, int16_t visible_a, int16_t first_a, int16_t *ctrl_objs, int16_t *objs, int16_t flags, int16_t pause_a, void *user_data, DIALOG *dialog, int16_t visible_b, int16_t first_b, int16_t entries_b, int16_t pause_b ); Beschreibung: Die Funktion legt Speicherplatz für eine Listbox an, und initialisiert deren Objekte. Es gilt: Parameter Bedeutung tree Zeiger auf den Objektbaum des Dialogs slct Zeiger auf die Auswahlroutine set Zeiger auf die Set-Routine items Zeiger auf eine verkette Liste der Listbox-Elemente (oder NULL) visible_a Anzahl sichtbarer Einträge (Slider A) first_a erstes sichtbares Element (Slider A) ctrl_objs Zeiger auf ein Feld mit den Objektnummern der Buttons und der Slider. Es gilt: ctrl_objs[0] = Box der Scroll-Objekte ctrl_objs[1] = Scrolling nach oben/links ctrl_objs[2] = dto. nach unten/rechts ctrl_objs[3] = Slider-Hintergrund ctrl_objs[4] = Slider-Box Falls die Listbox 2 Slider besitzt, enthalten ctrl_objs[5-8] die Nummern der Objekte von Slider B: ctrl_objs[5] = Scrolling nach oben/links ctrl_objs[6] = dto. nach unten/rechts ctrl_objs[7] = Slider-Hintergrund ctrl_objs[8] = Slider-Box objs Zeiger auf ein Feld mit den Objektnummern der Listbox-Einträge (insgesamt entries Einträge). Es gilt: objs[0] = erstes Objekt objs[entries-1] = letztes Objekt Die Objekte sollten normalerweise den Status TOUCHEXIT besitzen. flags verschiedene Flags pause_a Verzögerung beim Scrolling in ms (Slider A) user_data Zeiger für die Applikation dialog Zeiger auf die Fensterdialog-Struktur, oder NULL visible_b Anzahl sichtbarer Elemente (Slider B) first_b erstes sichtbares Element (Slider B) entries_b Anzahl der Elemente (Slider B) pause_b Verzögerung beim Scrolling in ms (Slider B) Hinweis: Das Initialisieren erfolgt dadurch, daß für jedes der in objs angegebenen Objekte die Routine set aufgerufen wird. Durch den Aufruf dieser Funktion wird die Listbox nicht gezeichnet. Die Buttons, der Slider und dessen Hintergrund sollten den Status TOUCHEXIT besitzen. Falls die Listbox nur Buttons und keinen Slider besitzt müssen ctrl_objs[3] und ctrl_objs[4] (bzw. [7/8]) den Wert -1 enthalten. Unabhängig von der Hauptscrollrichtung kann die Listbox noch einen zweiten Slider haben, wenn die Elemente selber noch gescrollt werden sollen; dies kann z.B. bei einer vertikalen Listbox mit Textelementen, die breiter als die Box selbst sind, sinnvoll sein. Achtung: Sowohl slct als auch set sind Funktionen, deren Parameter auf dem Stack übergeben werden. Die Funktionen dürfen die Register d0-d2 und a0-a2 verändern. slct wird immer dann aufgerufen, wenn ein Eintrag ausgewählt oder aufgehoben wird. Die Variable selected aus der LBOX_ITEM Struktur enthält beim Aufruf von slct bereits den neuen Status des Objekts. Ergebnis: Die Funktion liefert einen Zeiger auf die Struktur der Listbox (oder im Fehlerfall den Wert NULL) zurück. Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden. Gruppe: Listboxen Querverweis: Binding lbox_delete lbox_do