12 #ifndef ROOT_TGListBox
13 #define ROOT_TGListBox
52 class TGLBEntry :
public TGFrame {
59 virtual void DoRedraw() { }
62 TGLBEntry(
const TGWindow *p = 0, Int_t
id = -1, UInt_t options = kHorizontalFrame,
63 Pixel_t back = GetWhitePixel());
65 virtual void Activate(Bool_t a);
66 virtual void Toggle();
67 virtual void Update(TGLBEntry *) { }
68 Int_t EntryId()
const {
return fEntryId; }
69 Bool_t IsActive()
const {
return fActive; }
70 virtual void SetBackgroundColor(Pixel_t col) { TGFrame::SetBackgroundColor(col); fBkcolor = col; }
84 class TGTextLBEntry :
public TGLBEntry {
92 FontStruct_t fFontStruct;
94 virtual void DoRedraw();
96 static const TGFont *fgDefaultFont;
97 static TGGC *fgDefaultGC;
100 TGTextLBEntry(
const TGTextLBEntry &);
101 TGTextLBEntry &operator=(
const TGTextLBEntry &);
104 static FontStruct_t GetDefaultFontStruct();
105 static const TGGC &GetDefaultGC();
107 TGTextLBEntry(
const TGWindow *p = 0, TGString *s = 0, Int_t
id = -1,
108 GContext_t norm = GetDefaultGC()(),
109 FontStruct_t font = GetDefaultFontStruct(),
110 UInt_t options = kHorizontalFrame,
111 Pixel_t back = GetWhitePixel());
112 virtual ~TGTextLBEntry();
114 virtual TGDimension GetDefaultSize()
const {
return TGDimension(fTWidth, fTHeight+1); }
115 const TGString *GetText()
const {
return fText; }
116 void SetText(TGString *new_text);
117 virtual const char *GetTitle()
const {
return fText->Data(); }
118 virtual void SetTitle(
const char *text) { *fText = text; }
120 virtual void DrawCopy(Handle_t
id, Int_t x, Int_t y);
121 virtual void Update(TGLBEntry *e)
122 { SetText(
new TGString(((TGTextLBEntry *)e)->GetText())); }
124 GContext_t GetNormGC()
const {
return fNormGC; }
125 FontStruct_t GetFontStruct()
const {
return fFontStruct; }
127 virtual void SavePrimitive(std::ostream &out, Option_t * =
"");
129 ClassDef(TGTextLBEntry,0)
142 class TGLineLBEntry :
public TGTextLBEntry {
145 TGLineLBEntry(
const TGLineLBEntry&);
146 TGLineLBEntry operator=(
const TGLineLBEntry&);
154 virtual void DoRedraw();
157 TGLineLBEntry(
const TGWindow *p = 0, Int_t
id = -1,
const char *str = 0,
158 UInt_t w = 0, Style_t s = 0,
159 UInt_t options = kHorizontalFrame,
160 Pixel_t back = GetWhitePixel());
161 virtual ~TGLineLBEntry();
163 virtual TGDimension GetDefaultSize()
const
164 {
return TGDimension(fTWidth, fTHeight+1); }
165 virtual Int_t GetLineWidth()
const {
return fLineWidth; }
166 virtual void SetLineWidth(Int_t width);
167 Style_t GetLineStyle()
const {
return fLineStyle; }
168 virtual void SetLineStyle(Style_t style);
169 TGGC *GetLineGC()
const {
return fLineGC; }
170 virtual void Update(TGLBEntry *e);
171 virtual void DrawCopy(Handle_t
id, Int_t x, Int_t y);
173 ClassDef(TGLineLBEntry, 0)
184 class TGIconLBEntry :
public TGTextLBEntry {
187 TGIconLBEntry(
const TGIconLBEntry&);
188 TGIconLBEntry operator=(
const TGIconLBEntry&);
191 const TGPicture *fPicture;
193 virtual void DoRedraw();
196 TGIconLBEntry(
const TGWindow *p = 0, Int_t
id = -1,
const char *str = 0,
197 const TGPicture *pic = 0,
198 UInt_t w = 0, Style_t s = 0,
199 UInt_t options = kHorizontalFrame,
200 Pixel_t back = GetWhitePixel());
201 virtual ~TGIconLBEntry();
203 virtual TGDimension GetDefaultSize()
const
204 {
return TGDimension(fTWidth, fTHeight+1); }
205 const TGPicture *GetPicture()
const {
return fPicture; }
206 virtual void SetPicture(
const TGPicture *pic = 0);
208 virtual void Update(TGLBEntry *e);
209 virtual void DrawCopy(Handle_t
id, Int_t x, Int_t y);
211 ClassDef(TGIconLBEntry, 0)
223 class TGLBContainer :
public TGContainer {
225 friend class TGListBox;
228 TGLBContainer(
const TGLBContainer&);
229 TGLBContainer operator=(
const TGLBContainer&);
232 TGLBEntry *fLastActive;
238 virtual void OnAutoScroll();
239 virtual void DoRedraw();
242 TGLBContainer(
const TGWindow *p = 0, UInt_t w = 1, UInt_t h = 1,
243 UInt_t options = kSunkenFrame,
244 Pixel_t back = GetDefaultFrameBackground());
245 virtual ~TGLBContainer();
247 virtual void AddEntry(TGLBEntry *lbe, TGLayoutHints *lhints);
248 virtual void AddEntrySort(TGLBEntry *lbe, TGLayoutHints *lhints);
249 virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t afterID);
250 virtual void RemoveEntry(Int_t
id);
251 virtual void RemoveEntries(Int_t from_ID, Int_t to_ID);
252 virtual void RemoveAll();
254 virtual void ActivateItem(TGFrameElement *el);
255 virtual void Associate(
const TGWindow *w) { fMsgWindow = w; }
256 virtual void SetListBox(TGListBox *lb) { fListBox = lb; }
257 TGListBox *GetListBox()
const {
return fListBox; }
258 virtual Bool_t HandleButton(Event_t *event);
259 virtual Bool_t HandleDoubleClick(Event_t *event);
260 virtual Bool_t HandleMotion(Event_t *event);
261 virtual Int_t GetSelected()
const;
262 virtual Bool_t GetSelection(Int_t
id);
263 virtual Int_t GetPos(Int_t
id);
264 TGLBEntry *GetSelectedEntry()
const {
return fLastActive; }
265 virtual void GetSelectedEntries(TList *selected);
266 virtual TGLBEntry *Select(Int_t
id, Bool_t sel);
267 virtual TGLBEntry *Select(Int_t
id);
269 virtual TGVScrollBar *GetVScrollbar()
const;
270 virtual void SetVsbPosition(Int_t newPos);
271 virtual void Layout();
272 virtual UInt_t GetDefaultWidth()
const {
return fWidth; }
274 virtual void SetMultipleSelections(Bool_t multi);
275 virtual Bool_t GetMultipleSelections()
const {
return fMultiSelect; }
277 ClassDef(TGLBContainer,0)
289 class TGListBox :
public TGCompositeFrame,
public TGWidget {
292 TGListBox(
const TGListBox&);
293 TGListBox operator=(
const TGListBox&);
297 Bool_t fIntegralHeight;
300 TGVScrollBar *fVScrollbar;
302 void SetContainer(TGFrame *f) { fVport->SetContainer(f); }
304 virtual void InitListBox();
307 TGListBox(
const TGWindow *p = 0, Int_t
id = -1,
308 UInt_t options = kSunkenFrame | kDoubleBorder,
309 Pixel_t back = GetWhitePixel());
310 virtual ~TGListBox();
312 virtual void AddEntry(TGString *s, Int_t
id);
313 virtual void AddEntry(
const char *s, Int_t
id);
314 virtual void AddEntry(TGLBEntry *lbe, TGLayoutHints *lhints);
315 virtual void AddEntrySort(TGString *s, Int_t
id);
316 virtual void AddEntrySort(
const char *s, Int_t
id);
317 virtual void AddEntrySort(TGLBEntry *lbe, TGLayoutHints *lhints);
318 virtual void InsertEntry(TGString *s, Int_t
id, Int_t afterID);
319 virtual void InsertEntry(
const char *s , Int_t
id, Int_t afterID);
320 virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t afterID);
321 virtual void NewEntry(
const char *s =
"Entry");
322 virtual void RemoveEntry(Int_t
id = -1);
323 virtual void RemoveAll();
324 virtual void RemoveEntries(Int_t from_ID, Int_t to_ID);
325 virtual void ChangeBackground(Pixel_t back);
326 virtual void SetTopEntry(Int_t
id = -1);
327 virtual void SetMultipleSelections(Bool_t multi = kTRUE)
328 { fLbc->SetMultipleSelections(multi); }
329 virtual Bool_t GetMultipleSelections()
const
330 {
return fLbc->GetMultipleSelections(); }
331 virtual Int_t GetNumberOfEntries()
const
332 {
return fLbc->GetList()->GetSize(); }
333 virtual TGLBEntry *GetEntry(Int_t
id)
const;
334 virtual TGLBEntry *FindEntry(
const char *s)
const;
335 virtual TGFrame *GetContainer()
const {
return fVport->GetContainer(); }
336 virtual TGViewPort *GetViewPort()
const {
return fVport; }
337 virtual TGScrollBar *GetScrollBar()
const {
return fVScrollbar; }
338 virtual TGVScrollBar *GetVScrollbar()
const {
return fVScrollbar; }
340 virtual void DrawBorder();
341 virtual void Resize(UInt_t w, UInt_t h);
342 virtual void Resize(TGDimension size) { Resize(size.fWidth, size.fHeight); }
343 virtual void MoveResize(Int_t x, Int_t y, UInt_t w, UInt_t h);
344 virtual void Layout();
345 virtual void SetLayoutManager(TGLayoutManager*) { }
346 virtual void SortByName(Bool_t ascend = kTRUE);
347 virtual void IntegralHeight(Bool_t mode) { fIntegralHeight = mode; }
348 virtual TGDimension GetDefaultSize()
const;
350 virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
352 virtual TGLBEntry *Select(Int_t
id, Bool_t sel = kTRUE)
353 {
return fLbc->Select(
id, sel); }
354 virtual Int_t GetSelected()
const;
355 virtual Bool_t GetSelection(Int_t
id) {
return fLbc->GetSelection(
id); }
356 virtual TGLBEntry *GetSelectedEntry()
const {
return fLbc->GetSelectedEntry(); }
357 virtual void GetSelectedEntries(TList *selected);
358 UInt_t GetItemVsize()
const {
return fItemVsize; }
360 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
362 virtual void Selected(Int_t widgetId, Int_t
id);
363 virtual void Selected(Int_t
id) { Emit(
"Selected(Int_t)",
id); }
364 virtual void Selected(
const char *txt) { Emit(
"Selected(char*)", txt); }
365 virtual void DoubleClicked(Int_t widgetId, Int_t
id);
366 virtual void DoubleClicked(Int_t
id) { Emit(
"DoubleClicked(Int_t)",
id); }
367 virtual void DoubleClicked(
const char *txt) { Emit(
"DoubleClicked(char*)", txt); }
368 virtual void SelectionChanged() { Emit(
"SelectionChanged()"); }
370 ClassDef(TGListBox,0)