•  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.41  SET_ITEM                                                  TOS

typedef 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_ITEM 
Struktur verweist, in das Objekt obj_index kopiert. Der Parameter rect 
ist 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: Listboxen   lbox_create