Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGTab.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_TGTab
13#define ROOT_TGTab
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TGTab, TGTabElement, TGTabLayout //
19// //
20// A tab widget contains a set of composite frames each with a little //
21// tab with a name (like a set of folders with tabs). //
22// //
23// The TGTab is user callable. The TGTabElement and TGTabLayout are //
24// is a service classes of the tab widget. //
25// //
26// Clicking on a tab will bring the associated composite frame to the //
27// front and generate the following event: //
28// kC_COMMAND, kCM_TAB, tab id, 0. //
29// //
30//////////////////////////////////////////////////////////////////////////
31
32#include "TGFrame.h"
33#include "TGWidget.h"
34
35class TList;
36class TGTabElement;
37class TGTab;
38class TGPicture;
39
41
42protected:
43 TGTab *fMain; // container frame
44 TList *fList; // list of frames to arrange
45
46private:
47 TGTabLayout(const TGTabLayout&) = delete;
49
50public:
52
53 virtual void Layout();
54 virtual TGDimension GetDefaultSize() const;
55 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
56
57 ClassDef(TGTabLayout,0) // Layout manager for TGTab widget
58};
59
60
61
62class TGTab : public TGCompositeFrame, public TGWidget {
63
64protected:
65 Int_t fCurrent; // index of current tab
66 UInt_t fTabh; // tab height
67 TGCompositeFrame *fContainer; // main container
68 TList *fRemoved; // list of removed tabs
70 GContext_t fNormGC; // drawing context
71
72 void ChangeTab(Int_t tabIndex, Bool_t emit=kTRUE);
73
74 static const TGFont *fgDefaultFont;
75 static const TGGC *fgDefaultGC;
76
77private:
78 TGTab(const TGTab&) = delete;
79 TGTab& operator=(const TGTab&) = delete;
80
81public:
83 static const TGGC &GetDefaultGC();
84
85 TGTab(const TGWindow *p = nullptr, UInt_t w = 1, UInt_t h = 1,
86 GContext_t norm = GetDefaultGC()(),
88 UInt_t options = kChildFrame,
90 virtual ~TGTab();
91
93 virtual TGCompositeFrame *AddTab(const char *text);
94 virtual void AddTab(const char *text, TGCompositeFrame *cf);
95 virtual void AddTab(TGString *text, TGCompositeFrame *cf);
96
97 virtual void NewTab(const char *text = "tab"); // *MENU*icon=bld_newtab.png*
98 virtual void RemoveTab(Int_t tabIndex = -1,
99 Bool_t storeRemoved = kTRUE); // *MENU*icon=bld_removetab.png*
100 virtual Bool_t SetTab(Int_t tabIndex, Bool_t emit = kTRUE);
101 virtual Bool_t SetTab(const char *name, Bool_t emit = kTRUE);
102 virtual void DrawBorder() { }
103
105 Int_t GetCurrent() const { return fCurrent; }
106 TGCompositeFrame *GetTabContainer(Int_t tabIndex) const;
107 TGCompositeFrame *GetTabContainer(const char *name) const;
108 TGTabElement *GetTabTab(Int_t tabIndex) const;
109 TGTabElement *GetTabTab(const char *name) const;
112 UInt_t GetTabHeight() const { return fTabh; }
113 Int_t GetNumberOfTabs() const;
114 virtual void SetEnabled(Int_t tabIndex, Bool_t on = kTRUE); //*MENU*
115 virtual void SetText(const char *text = "tab"); //*MENU*icon=bld_rename.png*
116 Bool_t IsEnabled(Int_t tabIndex) const;
117
118 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
119
120 virtual void CloseTab(Int_t id) { Emit("CloseTab(Int_t)", id); } //*SIGNAL*
121 virtual void Removed(Int_t id) { Emit("Removed(Int_t)", id); } //*SIGNAL*
122 virtual void Selected(Int_t id) { Emit("Selected(Int_t)", id); } //*SIGNAL*
123 virtual TGLayoutManager *GetLayoutManager() const;
124
125 ClassDef(TGTab,0) // Tab widget
126};
127
128
129
130class TGTabElement : public TGFrame {
131
132protected:
133 TGString *fText; // text on tab
134 const TGPicture *fClosePic; // "close tab" icon
135 const TGPicture *fClosePicD; // "close tab" icon (disabled)
136 GContext_t fNormGC; // graphics context for drawing tab
137 FontStruct_t fFontStruct; // font used for tab
138 UInt_t fTWidth; // width of tab text
139 UInt_t fTHeight; // height of tab text
140 Bool_t fEnabled; // enabled or disabled
141 Bool_t fShowClose; // show or hide close icon
142 Bool_t fActive; // true if active (in front)
143
144private:
145 TGTabElement(const TGTabElement&) = delete;
147
148public:
149 TGTabElement(const TGWindow *p = nullptr, TGString *text = nullptr, UInt_t w = 1, UInt_t h = 1,
152 UInt_t options = kRaisedFrame,
154 virtual ~TGTabElement();
155
156 virtual void DrawBorder();
157 virtual TGDimension GetDefaultSize() const;
158 const TGString *GetText() const { return fText; }
159 const char *GetString() const { return fText->GetString(); }
160 virtual Bool_t HandleButton(Event_t *event);
161 void SetText(TGString *text);
162 virtual void SetEnabled(Bool_t on = kTRUE) { fEnabled = on; }
163 Bool_t IsEnabled() const { return fEnabled; }
164 virtual void SetEditDisabled(UInt_t) {}
165 virtual void ShowClose(Bool_t on = kTRUE);
166 Bool_t IsCloseShown() const { return fShowClose; }
167 virtual void SetActive(Bool_t on = kTRUE) { fActive = on; }
168 Bool_t IsActive() const { return fActive; }
169
170 ClassDef(TGTabElement,0) // Little tab on tab widget
171};
172
173#endif
@ kChildFrame
Definition GuiTypes.h:379
@ kRaisedFrame
Definition GuiTypes.h:384
Handle_t GContext_t
Graphics context handle.
Definition GuiTypes.h:38
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
int Int_t
Definition RtypesCore.h:45
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
char name[80]
Definition TGX11.cxx:110
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition TGFrame.cxx:668
Definition TGGC.h:31
const char * GetString() const
Definition TGString.h:40
virtual TGDimension GetDefaultSize() const
Return default size of tab element.
Definition TGTab.cxx:171
Bool_t IsCloseShown() const
Definition TGTab.h:166
virtual ~TGTabElement()
Delete tab element.
Definition TGTab.cxx:90
Bool_t fActive
Definition TGTab.h:142
Bool_t fShowClose
Definition TGTab.h:141
TGString * fText
Definition TGTab.h:133
void SetText(TGString *text)
Set new tab text.
Definition TGTab.cxx:182
GContext_t fNormGC
Definition TGTab.h:136
virtual void DrawBorder()
Draw little tab element.
Definition TGTab.cxx:100
virtual void SetEnabled(Bool_t on=kTRUE)
Definition TGTab.h:162
Bool_t fEnabled
Definition TGTab.h:140
const char * GetString() const
Definition TGTab.h:159
UInt_t fTHeight
Definition TGTab.h:139
FontStruct_t fFontStruct
Definition TGTab.h:137
const TGPicture * fClosePic
Definition TGTab.h:134
UInt_t fTWidth
Definition TGTab.h:138
virtual void SetEditDisabled(UInt_t)
Definition TGTab.h:164
const TGString * GetText() const
Definition TGTab.h:158
Bool_t IsActive() const
Definition TGTab.h:168
TGTabElement(const TGTabElement &)=delete
virtual void SetActive(Bool_t on=kTRUE)
Definition TGTab.h:167
const TGPicture * fClosePicD
Definition TGTab.h:135
virtual void ShowClose(Bool_t on=kTRUE)
Show/hide close icon on the tab element, then apply layout to compute correct elements size.
Definition TGTab.cxx:199
Bool_t IsEnabled() const
Definition TGTab.h:163
TGTabElement & operator=(const TGTabElement &)=delete
virtual Bool_t HandleButton(Event_t *event)
Handle button event in the tab widget.
Definition TGTab.cxx:134
TGTabLayout & operator=(const TGTabLayout &)=delete
TList * fList
Definition TGTab.h:44
TGTab * fMain
Definition TGTab.h:43
TGTabLayout(const TGTabLayout &)=delete
virtual void Layout()
Layout the tab widget.
Definition TGTab.cxx:223
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition TGTab.cxx:837
virtual TGDimension GetDefaultSize() const
Get default size of tab widget.
Definition TGTab.cxx:267
Definition TGTab.h:62
static FontStruct_t GetDefaultFontStruct()
Return default font structure in use.
Definition TGTab.cxx:678
virtual TGLayoutManager * GetLayoutManager() const
Return layout manager.
Definition TGTab.cxx:722
TGCompositeFrame * GetCurrentContainer() const
Definition TGTab.h:110
virtual void NewTab(const char *text="tab")
Create new tab. Used in context menu.
Definition TGTab.cxx:698
TGCompositeFrame * GetContainer() const
Definition TGTab.h:104
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a tab widget as a C++ statement(s) on output stream out.
Definition TGTab.cxx:736
TGCompositeFrame * fContainer
Definition TGTab.h:67
virtual void SetEnabled(Int_t tabIndex, Bool_t on=kTRUE)
Enable or disable tab.
Definition TGTab.cxx:437
virtual void SetText(const char *text="tab")
Set text to current tab.
Definition TGTab.cxx:713
FontStruct_t fFontStruct
Definition TGTab.h:69
static const TGGC & GetDefaultGC()
Return default graphics context in use.
Definition TGTab.cxx:688
virtual void Removed(Int_t id)
Definition TGTab.h:121
TGTabElement * GetTabTab(Int_t tabIndex) const
Return the tab element of tab with index tabIndex.
Definition TGTab.cxx:614
TGTab & operator=(const TGTab &)=delete
Int_t fCurrent
Definition TGTab.h:65
GContext_t fNormGC
Definition TGTab.h:70
Int_t GetNumberOfTabs() const
Return number of tabs.
Definition TGTab.cxx:660
static const TGGC * fgDefaultGC
Definition TGTab.h:75
virtual Bool_t SetTab(Int_t tabIndex, Bool_t emit=kTRUE)
Brings the composite frame with the index tabIndex to the front and generate the following event if t...
Definition TGTab.cxx:509
Int_t GetCurrent() const
Definition TGTab.h:105
UInt_t fTabh
Definition TGTab.h:66
virtual void DrawBorder()
Draw frame border.
Definition TGTab.h:102
TList * fRemoved
Definition TGTab.h:68
virtual void RemoveTab(Int_t tabIndex=-1, Bool_t storeRemoved=kTRUE)
Remove container and tab of tab with index tabIndex.
Definition TGTab.cxx:394
virtual void CloseTab(Int_t id)
Definition TGTab.h:120
virtual void Selected(Int_t id)
Definition TGTab.h:122
void ChangeTab(Int_t tabIndex, Bool_t emit=kTRUE)
Make tabIdx the current tab.
Definition TGTab.cxx:460
UInt_t GetTabHeight() const
Definition TGTab.h:112
virtual ~TGTab()
Delete tab widget.
Definition TGTab.cxx:332
TGCompositeFrame * GetTabContainer(Int_t tabIndex) const
Return container of tab with index tabIndex.
Definition TGTab.cxx:565
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition TGTab.cxx:343
TGTab(const TGTab &)=delete
TGTabElement * GetCurrentTab() const
Definition TGTab.h:111
static const TGFont * fgDefaultFont
Definition TGTab.h:74
Bool_t IsEnabled() const
Definition TGWidget.h:79
A doubly linked list.
Definition TList.h:44
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition TQObject.h:164
TText * text
int main()
Event structure.
Definition GuiTypes.h:174