Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGComboBox.h
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Fons Rademakers 13/01/98
3
4/*************************************************************************
5 * Copyright (C) 1995-2021, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TGComboBox
13#define ROOT_TGComboBox
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TGComboBox, TGComboBoxPopup //
19// //
20// A combobox (also known as a drop down listbox) allows the selection //
21// of one item out of a list of items. The selected item is visible in //
22// a little window. To view the list of possible items one has to click //
23// on a button on the right of the little window. This will drop down //
24// a listbox. After selecting an item from the listbox the box will //
25// disappear and the newly selected item will be shown in the little //
26// window. //
27// //
28// The TGComboBox is user callable. The TGComboBoxPopup is a service //
29// class of the combobox. //
30// //
31// Selecting an item in the combobox will generate the event: //
32// kC_COMMAND, kCM_COMBOBOX, combobox id, item id. //
33// //
34//////////////////////////////////////////////////////////////////////////
35
36#include "TGListBox.h"
37
39class TGTextEntry;
40
42
43protected:
46
47private:
50
51public:
52 TGComboBoxPopup(const TGWindow *p = nullptr, UInt_t w = 1, UInt_t h = 1,
53 UInt_t options = kVerticalFrame,
54 Pixel_t back = GetWhitePixel());
55
56 virtual Bool_t HandleButton(Event_t *);
58
59 void SetListBox(TGListBox *lb) { fListBox = lb; }
61 void EndPopup();
62
63 ClassDef(TGComboBoxPopup,0) // Combobox popup window
64};
65
66
67class TGComboBox : public TGCompositeFrame, public TGWidget {
68
69private:
70 TGComboBox(const TGComboBox&) = delete;
71 TGComboBox& operator=(const TGComboBox&) = delete;
72
73protected:
74 TGLBEntry *fSelEntry; // selected item frame
75 TGTextEntry *fTextEntry; // text entry
76 TGScrollBarElement *fDDButton; // button controlling drop down of popup
77 TGComboBoxPopup *fComboFrame; // popup containing a listbox
78 TGListBox *fListBox; // the listbox with text items
79 const TGPicture *fBpic; // down arrow picture used in fDDButton
80 TGLayoutHints *fLhs; // layout hints for selected item frame
81 TGLayoutHints *fLhb; // layout hints for fDDButton
82 TGLayoutHints *fLhdd; // layout hints for fListBox
83
84 virtual void Init();
85
86public:
87 TGComboBox(const TGWindow *p = nullptr, Int_t id = -1,
89 Pixel_t back = GetWhitePixel());
90 TGComboBox(const TGWindow *p, const char *text, Int_t id = -1,
92 Pixel_t back = GetWhitePixel());
93
94 virtual ~TGComboBox();
95
96 virtual void DrawBorder();
97 virtual TGDimension GetDefaultSize() const { return TGDimension(fWidth, fHeight); }
98
99 virtual Bool_t HandleButton(Event_t *event);
100 virtual Bool_t HandleDoubleClick(Event_t *event);
101 virtual Bool_t HandleMotion(Event_t *event);
102 virtual Bool_t HandleSelection(Event_t *event);
103 virtual Bool_t HandleSelectionRequest(Event_t *event);
104 virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
105
106 virtual void AddEntry(TGString *s, Int_t id)
107 { fListBox->AddEntry(s, id); Resize(); }
108 virtual void AddEntry(const char *s, Int_t id)
109 { fListBox->AddEntry(s, id); Resize(); }
110 virtual void AddEntry(TGLBEntry *lbe, TGLayoutHints *lhints)
111 { fListBox->AddEntry(lbe, lhints); Resize(); }
112 virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
113 { fListBox->InsertEntry(s, id, afterID); Resize(); }
114 virtual void InsertEntry(const char *s, Int_t id, Int_t afterID)
115 { fListBox->InsertEntry(s, id, afterID); Resize(); }
116 virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t afterID)
117 { fListBox->InsertEntry(lbe, lhints, afterID); Resize(); }
118 virtual void NewEntry(const char *s = "Entry")
119 { fListBox->NewEntry(s); Resize(); } //*MENU*
120 virtual void RemoveEntry(Int_t id = -1); //*MENU*
121 virtual void RemoveAll(); //*MENU*
122 virtual void Layout();
123 virtual Bool_t IsTextInputEnabled() const { return (fTextEntry != 0); }
124 virtual void EnableTextInput(Bool_t on); //*TOGGLE* *GETTER=IsTextInputEnabled
125 virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
126 { fListBox->RemoveEntries(from_ID, to_ID); }
127 virtual Int_t GetNumberOfEntries() const
128 { return fListBox->GetNumberOfEntries(); }
129
130 virtual TGListBox *GetListBox() const { return fListBox; }
131 virtual TGTextEntry *GetTextEntry() const { return fTextEntry; }
132 virtual TGLBEntry *FindEntry(const char *s) const;
133 virtual void Select(Int_t id, Bool_t emit = kTRUE);
134 virtual Int_t GetSelected() const { return fListBox->GetSelected(); }
136 { return fListBox->GetSelectedEntry(); }
137 virtual void SetTopEntry(TGLBEntry *e, TGLayoutHints *lh);
138 virtual void SetEnabled(Bool_t on = kTRUE); //*TOGGLE* *GETTER=IsEnabled
139 virtual Bool_t IsEnabled() const { return fDDButton->IsEnabled(); }
140 virtual void SortByName(Bool_t ascend = kTRUE)
141 { fListBox->SortByName(ascend); } //*MENU*icon=bld_sortup.png*
142
143 virtual void Selected(Int_t widgetId, Int_t id); // *SIGNAL*
144 virtual void Selected(Int_t id) { Emit("Selected(Int_t)", id); } // *SIGNAL*
145 virtual void Selected(const char *txt) { Emit("Selected(char*)", txt); } // *SIGNAL*
146 virtual void Changed() { Emit("Changed()"); } // *SIGNAL*
147 virtual void ReturnPressed(); // *SIGNAL*
148 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
149
150 ClassDef(TGComboBox,0) // Combo box widget
151};
152
153
154//////////////////////////////////////////////////////////////////////////
155// //
156// The TGLineStyleComboBox user callable and it creates //
157// a combobox for selecting the line style. //
158// //
159//////////////////////////////////////////////////////////////////////////
160
162
163public:
164 TGLineStyleComboBox(const TGWindow *p = nullptr, Int_t id = -1,
166 Pixel_t back = GetWhitePixel());
167
168 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
169
170 ClassDef(TGLineStyleComboBox, 0) // Line style combobox widget
171
172};
173
174
175//////////////////////////////////////////////////////////////////////////
176// //
177// The TGLineWidthComboBox user callable and it creates //
178// a combobox for selecting the line width. //
179// //
180//////////////////////////////////////////////////////////////////////////
181
182
184
185public:
186 TGLineWidthComboBox(const TGWindow *p = 0, Int_t id = -1,
188 Pixel_t back = GetWhitePixel(), Bool_t none=kFALSE);
189
190 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
191
192 ClassDef(TGLineWidthComboBox, 0) // Line width combobox widget
193
194
195};
196
197
198//////////////////////////////////////////////////////////////////////////
199// //
200// The TGFontTypeComboBox is user callable and it creates //
201// a combobox for selecting the font. //
202// //
203//////////////////////////////////////////////////////////////////////////
204
205const Int_t kMaxFonts = 20;
206
208
209protected:
211
212public:
213 TGFontTypeComboBox(const TGWindow *p = 0, Int_t id = -1,
215 Pixel_t bask = GetWhitePixel());
216 virtual ~TGFontTypeComboBox();
217
218 ClassDef(TGFontTypeComboBox, 0) // Font type combobox widget
219};
220
221#endif
@ kSunkenFrame
Definition GuiTypes.h:383
@ kVerticalFrame
Definition GuiTypes.h:381
@ kDoubleBorder
Definition GuiTypes.h:385
@ kHorizontalFrame
Definition GuiTypes.h:382
Handle_t FontStruct_t
Pointer to font structure.
Definition GuiTypes.h:39
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
#define h(i)
Definition RSha256.hxx:106
#define e(i)
Definition RSha256.hxx:103
int Int_t
Definition RtypesCore.h:45
unsigned int UInt_t
Definition RtypesCore.h:46
const Bool_t kFALSE
Definition RtypesCore.h:92
long Long_t
Definition RtypesCore.h:54
bool Bool_t
Definition RtypesCore.h:63
const Bool_t kTRUE
Definition RtypesCore.h:91
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:325
const Int_t kMaxFonts
Definition TGComboBox.h:205
void KeyPressed(TGFrame *, UInt_t, UInt_t)
Slot handling the key press events.
TGLBEntry * fSelected
Definition TGComboBox.h:45
virtual Bool_t HandleButton(Event_t *)
Handle mouse button event in combo box popup.
void EndPopup()
Ungrab pointer and unmap popup window.
TGComboBoxPopup(const TGComboBoxPopup &)=delete
void PlacePopup(Int_t x, Int_t y, UInt_t w, UInt_t h)
Popup combo box popup window at the specified place.
TGComboBoxPopup & operator=(const TGComboBoxPopup &)=delete
void SetListBox(TGListBox *lb)
Definition TGComboBox.h:59
TGListBox * fListBox
Definition TGComboBox.h:44
virtual Int_t GetSelected() const
Definition TGComboBox.h:134
TGLBEntry * fSelEntry
Definition TGComboBox.h:74
virtual Bool_t HandleSelectionRequest(Event_t *event)
Handle selection request in text entry.
TGComboBox(const TGComboBox &)=delete
virtual void Selected(Int_t id)
Definition TGComboBox.h:144
virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t afterID)
Definition TGComboBox.h:116
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button events in the combo box.
virtual TGLBEntry * GetSelectedEntry() const
Definition TGComboBox.h:135
virtual TGTextEntry * GetTextEntry() const
Definition TGComboBox.h:131
virtual void AddEntry(TGString *s, Int_t id)
Definition TGComboBox.h:106
virtual void SortByName(Bool_t ascend=kTRUE)
Definition TGComboBox.h:140
virtual void Changed()
Definition TGComboBox.h:146
TGListBox * fListBox
Definition TGComboBox.h:78
virtual void RemoveAll()
Remove all entries from combo box.
TGComboBox & operator=(const TGComboBox &)=delete
virtual void Selected(const char *txt)
Definition TGComboBox.h:145
virtual void SetTopEntry(TGLBEntry *e, TGLayoutHints *lh)
Set a new combo box value (normally update of text string in fSelEntry is done via fSelEntry::Update(...
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
Definition TGComboBox.h:125
virtual Bool_t HandleSelection(Event_t *event)
Handle selection in text entry.
virtual void RemoveEntry(Int_t id=-1)
Remove entry. If id == -1, the currently selected entry is removed.
virtual TGListBox * GetListBox() const
Definition TGComboBox.h:130
virtual ~TGComboBox()
Delete a combo box widget.
TGTextEntry * fTextEntry
Definition TGComboBox.h:75
virtual Bool_t HandleMotion(Event_t *event)
Handle pointer motion in text entry.
TGScrollBarElement * fDDButton
Definition TGComboBox.h:76
virtual void Select(Int_t id, Bool_t emit=kTRUE)
Make the selected item visible in the combo box window and emit signals according to the second param...
TGLayoutHints * fLhs
Definition TGComboBox.h:80
TGLayoutHints * fLhdd
Definition TGComboBox.h:82
virtual void ReturnPressed()
Add new entry to combo box when return key pressed inside text entry ReturnPressed signal is emitted.
virtual Bool_t IsEnabled() const
Definition TGComboBox.h:139
virtual void NewEntry(const char *s="Entry")
Definition TGComboBox.h:118
virtual Bool_t HandleDoubleClick(Event_t *event)
Handle double click in text entry.
virtual Bool_t IsTextInputEnabled() const
Definition TGComboBox.h:123
virtual void DrawBorder()
Draw border of combo box widget.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a combo box widget as a C++ statement(s) on output stream out.
virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
Definition TGComboBox.h:112
virtual void SetEnabled(Bool_t on=kTRUE)
Set state of combo box. If kTRUE=enabled, kFALSE=disabled.
virtual void InsertEntry(const char *s, Int_t id, Int_t afterID)
Definition TGComboBox.h:114
virtual void Selected(Int_t widgetId, Int_t id)
Emit signal, done only when selected entry changed.
virtual TGLBEntry * FindEntry(const char *s) const
Find entry by name.
virtual void EnableTextInput(Bool_t on)
Switch text input or readonly mode of combobox (not perfect yet).
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Process messages generated by the listbox and forward messages to the combobox message handling windo...
virtual void AddEntry(const char *s, Int_t id)
Definition TGComboBox.h:108
virtual TGDimension GetDefaultSize() const
std::cout << fWidth << "x" << fHeight << std::endl;
Definition TGComboBox.h:97
virtual void Layout()
layout combobox
virtual Int_t GetNumberOfEntries() const
Definition TGComboBox.h:127
virtual void Init()
Initiate the internal classes of a combo box.
TGComboBoxPopup * fComboFrame
Definition TGComboBox.h:77
const TGPicture * fBpic
Definition TGComboBox.h:79
TGLayoutHints * fLhb
Definition TGComboBox.h:81
virtual void AddEntry(TGLBEntry *lbe, TGLayoutHints *lhints)
Definition TGComboBox.h:110
virtual ~TGFontTypeComboBox()
Text font combo box dtor.
FontStruct_t fFonts[kMaxFonts]
Definition TGComboBox.h:210
static Pixel_t GetWhitePixel()
Get white pixel value.
Definition TGFrame.cxx:694
UInt_t fHeight
Definition TGFrame.h:112
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition TGFrame.cxx:590
UInt_t fWidth
Definition TGFrame.h:111
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a line style combo box widget as a C++ statement(s).
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a line width combo box widget as a C++ statement(s).
virtual void SortByName(Bool_t ascend=kTRUE)
Sort entries by name.
virtual Int_t GetNumberOfEntries() const
Definition TGListBox.h:330
virtual TGLBEntry * GetSelectedEntry() const
Definition TGListBox.h:355
virtual void NewEntry(const char *s="Entry")
method used to add entry via context menu
virtual Int_t GetSelected() const
Return id of selected listbox item.
virtual void AddEntry(TGString *s, Int_t id)
Add entry with specified string and id to listbox.
virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
Insert entry with specified string and id behind the entry with afterID.
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
Remove a range of entries defined by from_ID and to_ID.
virtual Bool_t IsEnabled() const
Definition TGScrollBar.h:73
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition TQObject.h:164
TText * text
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
Event structure.
Definition GuiTypes.h:174