Logo ROOT  
Reference Guide
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#include "TGListBox.h"
17
19class TGTextEntry;
20
22
23protected:
26
27private:
30
31public:
32 TGComboBoxPopup(const TGWindow *p = nullptr, UInt_t w = 1, UInt_t h = 1,
33 UInt_t options = kVerticalFrame,
34 Pixel_t back = GetWhitePixel());
35
36 Bool_t HandleButton(Event_t *) override;
38
39 void SetListBox(TGListBox *lb) { fListBox = lb; }
41 void EndPopup();
42
43 ClassDefOverride(TGComboBoxPopup,0) // Combobox popup window
44};
45
46
47class TGComboBox : public TGCompositeFrame, public TGWidget {
48
49private:
50 TGComboBox(const TGComboBox&) = delete;
51 TGComboBox& operator=(const TGComboBox&) = delete;
52
53protected:
54 TGLBEntry *fSelEntry; ///< selected item frame
55 TGTextEntry *fTextEntry; ///< text entry
56 TGScrollBarElement *fDDButton; ///< button controlling drop down of popup
57 TGComboBoxPopup *fComboFrame; ///< popup containing a listbox
58 TGListBox *fListBox; ///< the listbox with text items
59 const TGPicture *fBpic; ///< down arrow picture used in fDDButton
60 TGLayoutHints *fLhs; ///< layout hints for selected item frame
61 TGLayoutHints *fLhb; ///< layout hints for fDDButton
62 TGLayoutHints *fLhdd; ///< layout hints for fListBox
63
64 virtual void Init();
65
66public:
67 TGComboBox(const TGWindow *p = nullptr, Int_t id = -1,
69 Pixel_t back = GetWhitePixel());
70 TGComboBox(const TGWindow *p, const char *text, Int_t id = -1,
72 Pixel_t back = GetWhitePixel());
73
74 virtual ~TGComboBox();
75
76 void DrawBorder() override;
77 TGDimension GetDefaultSize() const override { return TGDimension(fWidth, fHeight); }
78
84 Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t parm2) override;
85
86 virtual void AddEntry(TGString *s, Int_t id)
87 { fListBox->AddEntry(s, id); Resize(); }
88 virtual void AddEntry(const char *s, Int_t id)
89 { fListBox->AddEntry(s, id); Resize(); }
90 virtual void AddEntry(TGLBEntry *lbe, TGLayoutHints *lhints)
91 { fListBox->AddEntry(lbe, lhints); Resize(); }
92 virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
93 { fListBox->InsertEntry(s, id, afterID); Resize(); }
94 virtual void InsertEntry(const char *s, Int_t id, Int_t afterID)
95 { fListBox->InsertEntry(s, id, afterID); Resize(); }
96 virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t afterID)
97 { fListBox->InsertEntry(lbe, lhints, afterID); Resize(); }
98 virtual void NewEntry(const char *s = "Entry")
99 { fListBox->NewEntry(s); Resize(); } //*MENU*
100 virtual void RemoveEntry(Int_t id = -1); //*MENU*
101 void RemoveAll() override; //*MENU*
102 void Layout() override;
103 virtual Bool_t IsTextInputEnabled() const { return (fTextEntry != 0); }
104 virtual void EnableTextInput(Bool_t on); //*TOGGLE* *GETTER=IsTextInputEnabled
105 virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
106 { fListBox->RemoveEntries(from_ID, to_ID); }
107 virtual Int_t GetNumberOfEntries() const
108 { return fListBox->GetNumberOfEntries(); }
109
110 virtual TGListBox *GetListBox() const { return fListBox; }
111 virtual TGTextEntry *GetTextEntry() const { return fTextEntry; }
112 virtual TGLBEntry *FindEntry(const char *s) const;
113 virtual void Select(Int_t id, Bool_t emit = kTRUE);
114 virtual Int_t GetSelected() const { return fListBox->GetSelected(); }
116 { return fListBox->GetSelectedEntry(); }
117 virtual void SetTopEntry(TGLBEntry *e, TGLayoutHints *lh);
118 virtual void SetEnabled(Bool_t on = kTRUE); //*TOGGLE* *GETTER=IsEnabled
119 virtual Bool_t IsEnabled() const { return fDDButton->IsEnabled(); }
120 virtual void SortByName(Bool_t ascend = kTRUE)
121 { fListBox->SortByName(ascend); } //*MENU*icon=bld_sortup.png*
122
123 virtual void Selected(Int_t widgetId, Int_t id); // *SIGNAL*
124 virtual void Selected(Int_t id) { Emit("Selected(Int_t)", id); } // *SIGNAL*
125 virtual void Selected(const char *txt) { Emit("Selected(char*)", txt); } // *SIGNAL*
126 virtual void Changed() { Emit("Changed()"); } // *SIGNAL*
127 virtual void ReturnPressed(); // *SIGNAL*
128
129 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
130
131 ClassDefOverride(TGComboBox,0) // Combo box widget
132};
133
134
135/** \class TGLineStyleComboBox
136The TGLineStyleComboBox user callable and it creates
137a combobox for selecting the line style.
138*/
139
141
142public:
143 TGLineStyleComboBox(const TGWindow *p = nullptr, Int_t id = -1,
145 Pixel_t back = GetWhitePixel());
146
147 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
148
149 ClassDefOverride(TGLineStyleComboBox, 0) // Line style combobox widget
150};
151
152
153/** \class TGLineWidthComboBox
154The TGLineWidthComboBox user callable and it creates
155a combobox for selecting the line width.
156*/
157
159
160public:
161 TGLineWidthComboBox(const TGWindow *p = nullptr, Int_t id = -1,
163 Pixel_t back = GetWhitePixel(), Bool_t none=kFALSE);
164
165 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
166
167 ClassDefOverride(TGLineWidthComboBox, 0) // Line width combobox widget
168};
169
170
171/** \class TGFontTypeComboBox
172The TGFontTypeComboBox is user callable and it creates
173a combobox for selecting the font.
174*/
175
176const Int_t kMaxFonts = 20;
177
179
180protected:
182
183public:
184 TGFontTypeComboBox(const TGWindow *p = nullptr, Int_t id = -1,
186 Pixel_t bask = GetWhitePixel());
187 virtual ~TGFontTypeComboBox();
188
189 ClassDefOverride(TGFontTypeComboBox, 0) // Font type combobox widget
190};
191
192#endif
@ kSunkenFrame
Definition: GuiTypes.h:383
@ kVerticalFrame
Definition: GuiTypes.h:381
@ kDoubleBorder
Definition: GuiTypes.h:385
@ kHorizontalFrame
Definition: GuiTypes.h:382
ULong_t Pixel_t
Pixel value.
Definition: GuiTypes.h:40
Handle_t FontStruct_t
Pointer to font structure.
Definition: GuiTypes.h:39
#define h(i)
Definition: RSha256.hxx:106
#define e(i)
Definition: RSha256.hxx:103
bool Bool_t
Definition: RtypesCore.h:63
int Int_t
Definition: RtypesCore.h:45
long Longptr_t
Definition: RtypesCore.h:82
const Bool_t kFALSE
Definition: RtypesCore.h:101
unsigned int UInt_t
Definition: RtypesCore.h:46
const Bool_t kTRUE
Definition: RtypesCore.h:100
const char Option_t
Definition: RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
const Int_t kMaxFonts
Definition: TGComboBox.h:176
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Option_t Option_t TPoint TPoint const char text
A service class of the combobox.
Definition: TGComboBox.h:21
void KeyPressed(TGFrame *, UInt_t, UInt_t)
Slot handling the key press events.
Definition: TGComboBox.cxx:200
TGLBEntry * fSelected
Definition: TGComboBox.h:25
void EndPopup()
Ungrab pointer and unmap popup window.
Definition: TGComboBox.cxx:113
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.
Definition: TGComboBox.cxx:137
TGComboBoxPopup & operator=(const TGComboBoxPopup &)=delete
Bool_t HandleButton(Event_t *) override
Handle mouse button event in combo box popup.
Definition: TGComboBox.cxx:91
void SetListBox(TGListBox *lb)
Definition: TGComboBox.h:39
TGListBox * fListBox
Definition: TGComboBox.h:24
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
Definition: TGComboBox.h:47
virtual Int_t GetSelected() const
Definition: TGComboBox.h:114
void Layout() override
layout combobox
Definition: TGComboBox.cxx:541
Bool_t HandleSelection(Event_t *event) override
Handle selection in text entry.
Definition: TGComboBox.cxx:570
TGLBEntry * fSelEntry
selected item frame
Definition: TGComboBox.h:54
TGComboBox(const TGComboBox &)=delete
virtual void Selected(Int_t id)
Definition: TGComboBox.h:124
void RemoveAll() override
Remove all entries from combo box.
Definition: TGComboBox.cxx:690
virtual void InsertEntry(TGLBEntry *lbe, TGLayoutHints *lhints, Int_t afterID)
Definition: TGComboBox.h:96
TGDimension GetDefaultSize() const override
std::cout << fWidth << "x" << fHeight << std::endl;
Definition: TGComboBox.h:77
virtual TGLBEntry * GetSelectedEntry() const
Definition: TGComboBox.h:115
virtual TGTextEntry * GetTextEntry() const
Definition: TGComboBox.h:111
virtual void AddEntry(TGString *s, Int_t id)
Definition: TGComboBox.h:86
void DrawBorder() override
Draw border of combo box widget.
Definition: TGComboBox.cxx:343
virtual void SortByName(Bool_t ascend=kTRUE)
Definition: TGComboBox.h:120
virtual void Changed()
Definition: TGComboBox.h:126
TGListBox * fListBox
the listbox with text items
Definition: TGComboBox.h:58
TGComboBox & operator=(const TGComboBox &)=delete
virtual void Selected(const char *txt)
Definition: TGComboBox.h:125
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a combo box widget as a C++ statement(s) on output stream out.
Definition: TGComboBox.cxx:706
Bool_t HandleDoubleClick(Event_t *event) override
Handle double click in text entry.
Definition: TGComboBox.cxx:554
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(...
Definition: TGComboBox.cxx:438
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
Definition: TGComboBox.h:105
virtual void RemoveEntry(Int_t id=-1)
Remove entry. If id == -1, the currently selected entry is removed.
Definition: TGComboBox.cxx:522
virtual TGListBox * GetListBox() const
Definition: TGComboBox.h:110
virtual ~TGComboBox()
Delete a combo box widget.
Definition: TGComboBox.cxx:268
TGTextEntry * fTextEntry
text entry
Definition: TGComboBox.h:55
TGScrollBarElement * fDDButton
button controlling drop down of popup
Definition: TGComboBox.h:56
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...
Definition: TGComboBox.cxx:456
TGLayoutHints * fLhs
layout hints for selected item frame
Definition: TGComboBox.h:60
TGLayoutHints * fLhdd
layout hints for fListBox
Definition: TGComboBox.h:62
Bool_t HandleSelectionRequest(Event_t *event) override
Handle selection request in text entry.
Definition: TGComboBox.cxx:578
virtual void ReturnPressed()
Add new entry to combo box when return key pressed inside text entry ReturnPressed signal is emitted.
Definition: TGComboBox.cxx:663
virtual Bool_t IsEnabled() const
Definition: TGComboBox.h:119
virtual void NewEntry(const char *s="Entry")
Definition: TGComboBox.h:98
Bool_t ProcessMessage(Longptr_t msg, Longptr_t parm1, Longptr_t parm2) override
Process messages generated by the listbox and forward messages to the combobox message handling windo...
Definition: TGComboBox.cxx:588
virtual Bool_t IsTextInputEnabled() const
Definition: TGComboBox.h:103
Bool_t HandleButton(Event_t *event) override
Handle mouse button events in the combo box.
Definition: TGComboBox.cxx:481
virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
Definition: TGComboBox.h:92
virtual void SetEnabled(Bool_t on=kTRUE)
Set state of combo box. If kTRUE=enabled, kFALSE=disabled.
Definition: TGComboBox.cxx:646
virtual void InsertEntry(const char *s, Int_t id, Int_t afterID)
Definition: TGComboBox.h:94
virtual void Selected(Int_t widgetId, Int_t id)
Emit signal, done only when selected entry changed.
Definition: TGComboBox.cxx:633
virtual TGLBEntry * FindEntry(const char *s) const
Find entry by name.
Definition: TGComboBox.cxx:427
Bool_t HandleMotion(Event_t *event) override
Handle pointer motion in text entry.
Definition: TGComboBox.cxx:562
virtual void EnableTextInput(Bool_t on)
Switch text input or readonly mode of combobox (not perfect yet).
Definition: TGComboBox.cxx:367
virtual void AddEntry(const char *s, Int_t id)
Definition: TGComboBox.h:88
virtual Int_t GetNumberOfEntries() const
Definition: TGComboBox.h:107
virtual void Init()
Initiate the internal classes of a combo box.
Definition: TGComboBox.cxx:291
TGComboBoxPopup * fComboFrame
popup containing a listbox
Definition: TGComboBox.h:57
const TGPicture * fBpic
down arrow picture used in fDDButton
Definition: TGComboBox.h:59
TGLayoutHints * fLhb
layout hints for fDDButton
Definition: TGComboBox.h:61
virtual void AddEntry(TGLBEntry *lbe, TGLayoutHints *lhints)
Definition: TGComboBox.h:90
The base class for composite widgets (menu bars, list boxes, etc.).
Definition: TGFrame.h:287
The TGFontTypeComboBox is user callable and it creates a combobox for selecting the font.
Definition: TGComboBox.h:178
virtual ~TGFontTypeComboBox()
Text font combo box dtor.
Definition: TGComboBox.cxx:885
TGFontTypeComboBox(const TGWindow *p=nullptr, Int_t id=-1, UInt_t options=kHorizontalFrame|kSunkenFrame|kDoubleBorder, Pixel_t bask=GetWhitePixel())
Create a text font combo box.
Definition: TGComboBox.cxx:851
FontStruct_t fFonts[kMaxFonts]
Definition: TGComboBox.h:181
A subclasses of TGWindow, and is used as base class for some simple widgets (buttons,...
Definition: TGFrame.h:80
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
Definition: TGFrame.cxx:605
static Pixel_t GetWhitePixel()
Get white pixel value.
Definition: TGFrame.cxx:709
UInt_t fHeight
frame height
Definition: TGFrame.h:88
UInt_t fWidth
frame width
Definition: TGFrame.h:87
Basic listbox entries.
Definition: TGListBox.h:24
This class describes layout hints used by the layout classes.
Definition: TGLayout.h:50
The TGLineStyleComboBox user callable and it creates a combobox for selecting the line style.
Definition: TGComboBox.h:140
TGLineStyleComboBox(const TGWindow *p=nullptr, Int_t id=-1, UInt_t options=kHorizontalFrame|kSunkenFrame|kDoubleBorder, Pixel_t back=GetWhitePixel())
Create a line style combo box.
Definition: TGComboBox.cxx:753
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a line style combo box widget as a C++ statement(s).
Definition: TGComboBox.cxx:774
The TGLineWidthComboBox user callable and it creates a combobox for selecting the line width.
Definition: TGComboBox.h:158
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save a line width combo box widget as a C++ statement(s).
Definition: TGComboBox.cxx:816
TGLineWidthComboBox(const TGWindow *p=nullptr, Int_t id=-1, UInt_t options=kHorizontalFrame|kSunkenFrame|kDoubleBorder, Pixel_t back=GetWhitePixel(), Bool_t none=kFALSE)
Create a line width combo box.
Definition: TGComboBox.cxx:792
A listbox is a box, possibly with scrollbar, containing entries.
Definition: TGListBox.h:221
virtual void SortByName(Bool_t ascend=kTRUE)
Sort entries by name.
Definition: TGListBox.cxx:1506
virtual Int_t GetNumberOfEntries() const
Definition: TGListBox.h:263
virtual TGLBEntry * GetSelectedEntry() const
Definition: TGListBox.h:288
virtual void NewEntry(const char *s="Entry")
method used to add entry via context menu
Definition: TGListBox.cxx:1301
virtual Int_t GetSelected() const
Return id of selected listbox item.
Definition: TGListBox.cxx:1516
virtual void AddEntry(TGString *s, Int_t id)
Add entry with specified string and id to listbox.
Definition: TGListBox.cxx:1204
virtual void InsertEntry(TGString *s, Int_t id, Int_t afterID)
Insert entry with specified string and id behind the entry with afterID.
Definition: TGListBox.cxx:1279
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
Remove a range of entries defined by from_ID and to_ID.
Definition: TGListBox.cxx:1354
The TGPicture class implements pictures and icons used in the different GUI elements and widgets.
Definition: TGPicture.h:25
virtual Bool_t IsEnabled() const
Definition: TGScrollBar.h:54
TGString wraps a TString and adds some graphics routines like drawing, size of string on screen depen...
Definition: TGString.h:20
A TGTextEntry is a one line text input widget.
Definition: TGTextEntry.h:24
The widget base class.
Definition: TGWidget.h:43
ROOT GUI Window base class.
Definition: TGWindow.h:23
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition: TQObject.h:164
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
static constexpr double s
Event structure.
Definition: GuiTypes.h:174