•  Back 
  •  Listboxen 
  •  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.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