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.41 SET_ITEM TOStypedef int16_t (cdecl *SET_ITEM)( LIST_BOX *box, OBJECT *tree,
struct _lbox_item *item,
int16_t obj_index, void *user_data,
GRECT *rect, int16_t first );
Dabei gilt:
Parameter Bedeutung
box Zeiger auf die Listbox-Struktur
tree Zeiger auf den Objektbaum des Dialogs
item Zeiger auf LBOX_ITEM-Struktur des zu setzenden Eintrags
obj_index Nummer des zu setzenden Objektes
user_data Zeiger der bei lbox_create übergeben wurde
rect Rechteck für das Objekt-Redraw (oder NULL)
first Nummer des ersten sichtbaren Elements für Slider-B
Hinweis: Bei einer Listbox, die nur Text-Strings enthält, ist dies
typischerweise eine Funktion, die einen String, auf den die LBOX_ITEMStruktur verweist, in das Objekt obj_index kopiert. Der Parameter rectist 0L, wenn ein Redraw der Dialogbox durchgeführt wird oder wenn
lbox_update aufgerufen wurde. Er ist hingegen nicht 0L, wenn der
Anwender ein Objekt selektiert oder deselektiert hat, und zeigt auf
das GRECT für den Redraw.
Der Rückgabewert der Funktion ist die Nummer des Startobjekts für die
Funktion objc_draw bzw. wdlg_redraw.
Bei Einträgen in der Listbox, die aus mehreren Objekten bestehen, ist
es manchmal sinnvoll bei Selektion/Deselektion eines Objekts das
Redrawrechteck zu verkleinern oder das Startobjekt zu ändern, um
unnötige Zeichenoperationen und unnötiges Geflacker zu vermeiden. In
den meisten Fällen rufen die Listbox-Routinen nach der oben
beschriebenen Funktion die Routinen objc_draw bzw. wdlg_redraw auf, um
den geänderten Inhalt anzuzeigen.
Der Parameter first enthält die Nummer des ersten sichtbaren Elements
für Slider B, wenn die Listbox 2 Slider hat. Bei einer (vertikalen)
Listbox mit Text-Strings und zwei Slidern gibt man z.B. beim Aufruf
von lbox_create die Anzahl der sichtbaren Zeichen in visible_b, die
gesamte Stringlänge in entries_b und den Index des ersten sichtbaren
Zeichens in first_b an. Wird der Text horizontal gescrollt, wird die
Funktion für alle sichtbaren Strings aufgerufen und der Bereich
neugezeichnet bzw. verschoben. Wenn die Listbox nur einen Slider hat,
ist first immer 0.
Querverweis: Listboxenlbox_create