Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGuiBldEditor.cxx
Go to the documentation of this file.
1// @(#)root/guibuilder:$Id$
2// Author: Valeriy Onuchin 12/09/04
3
4/*************************************************************************
5 * Copyright (C) 1995-2004, 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/** \class TGuiBldEditor
13 \ingroup guibuilder
14
15The property editor
16
17*/
18
19
20#include "TGuiBldEditor.h"
21#include "TRootGuiBuilder.h"
22#include "TGuiBldHintsEditor.h"
23#include "TGuiBldNameFrame.h"
25#include "TGResourcePool.h"
26#include "TGTab.h"
27#include "TGLabel.h"
28#include "TGButtonGroup.h"
29#include "TGNumberEntry.h"
30#include "TG3DLine.h"
31#include "TGColorSelect.h"
32#include "TGuiBldDragManager.h"
33#include "TGMsgBox.h"
34#include "TGFrame.h"
35#include "TGSplitter.h"
36#include "TGTableLayout.h"
37
39
40
41////////////////////////////////////////////////////////////////////////////////
43
44private:
49
50private:
55
56public:
58 ~TGuiBldBorderFrame() override { }
59
61};
62
63////////////////////////////////////////////////////////////////////////////////
64/// Constructor.
65
67 TGVerticalFrame(p, 1, 1)
68{
69 fEditor = editor;
70 fEditDisabled = 1;
71 fBgndFrame = 0;
72
74
75 fBtnGroup = new TGButtonGroup(this, "Border Mode");
76
77 TGRadioButton *frame299 = new TGRadioButton(fBtnGroup," Sunken",kBldBorderSunken);
78 frame299->SetToolTipText("Set a sunken border of the frame");
80 frame302->SetToolTipText("Set no border of the frame");
81 TGRadioButton *frame305 = new TGRadioButton(fBtnGroup," Raised",kBldBorderRaised);
82 frame305->SetToolTipText("Set a raised border of the frame");
83 frame305->SetState(kButtonDown);
85 check->SetToolTipText("Set double border of the frame");
86 //TQObject::Disconnect(check);
87
90 fBtnGroup->Connect("Pressed(Int_t)", "TGuiBldEditor", fEditor, "UpdateBorder(Int_t)");
91 check->Connect("Pressed()", "TGuiBldEditor", fEditor, "UpdateBorder(=4)");
92 check->Connect("Released()", "TGuiBldEditor", fEditor, "UpdateBorder(=5)");
93
94 TGCompositeFrame *f = new TGGroupFrame(this, "Palette");
95 TGHorizontalFrame *hf = new TGHorizontalFrame(f ,1, 1);
96 fBgndFrame = new TGColorSelect(hf, 0, 1);
99 fBgndFrame->Connect("ColorSelected(Pixel_t)", "TGuiBldEditor", fEditor,
100 "UpdateBackground(Pixel_t)");
101 hf->AddFrame(fBgndFrame, new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2));
102 hf->AddFrame(new TGLabel(hf, "Backgrnd"), new TGLayoutHints(kLHintsTop |
103 kLHintsLeft, 2, 2, 2, 2));
104 f->AddFrame(hf, new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2));
106}
107
108////////////////////////////////////////////////////////////////////////////////
109/// Perform actions when selected frame was changed.
110
112{
113 fSelected = frame;
114
115 if (!frame) {
116 return;
117 }
118
119 UInt_t opt = fSelected->GetOptions();
120
125
126 if (fBgndFrame) {
129 fBgndFrame->Connect("ColorSelected(Pixel_t)", "TGuiBldEditor", fEditor, "UpdateBackground(Pixel_t)");
130 }
131}
132
133////////////////////////////////////////////////////////////////////////////////
134////////////////////////////////////////////////////////////////////////////////
135/// Constructor.
136
138{
140 TGVerticalFrame *vf;
141 fSelected = 0;
143
144 fNameFrame = new TGuiBldNameFrame(this, this);
146
147 TGHSplitter *splitter = new TGHSplitter(this,100,5);
148 AddFrame(splitter, new TGLayoutHints(kLHintsTop | kLHintsExpandX,0,0,5,5));
149 splitter->SetFrame(fNameFrame, kTRUE);
150
151 //------------frame with layout switch
152 hf = new TGHorizontalFrame(this);
153 hf->AddFrame(new TGLabel(hf, "Composite Frame Layout"),
154 new TGLayoutHints(kLHintsLeft | kLHintsTop, 2, 2, 2, 2));
156 kLHintsExpandX, 2, 2, 2, 2));
157 AddFrame(hf, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 2));
158
159 vf = new TGVerticalFrame(this);
160 fLayoutLabel = new TGLabel(vf, "Automatic Layout Disabled");
162 2, 2, 2, 2));
163
164 fLayoutButton = new TGTextButton(vf," Enable layout ");
167 2, 2, 2, 2));
168
169 AddFrame(vf, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 2));
170
172 kLHintsExpandX, 2, 2, 2, 2));
173
174 fLayoutButton->Connect("Clicked()", "TGuiBldEditor", this, "SwitchLayout()");
175 fLayoutButton->SetToolTipText("If layout is on, all the frame \nelements get layouted automatically.");
176
177 //-----------------------------
178
179 fTab = new TGTab(this, 80, 40);
181 fTablay = fTab->AddTab("Layout");
182 TGCompositeFrame *tabcont = fTab->AddTab("Style");
183 fLayoutId = 1; // 2nd tab
184 fTab->Connect("Selected(Int_t)", "TGuiBldEditor", this, "TabSelected(Int_t)");
185
188 2, 2, 2, 2));
189
192 2, 2, 2, 2));
193
194 //----------------Position X,Y boxes---------------
195
196 fPositionFrame = new TGGroupFrame(fTablay, "Position");
197
199
200 vf = new TGVerticalFrame(hf);
201 vf->SetLayoutManager(new TGTableLayout(vf, 2, 2));
202
203 vf->AddFrame(new TGLabel(vf, " X "), new TGTableLayoutHints(0, 1, 0, 1,
204 kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
205 fXpos = new TGNumberEntry(vf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
206 vf->AddFrame(fXpos, new TGTableLayoutHints(1, 2, 0, 1, kLHintsCenterY |
207 kLHintsLeft, 2, 2, 2, 2));
208
209 vf->AddFrame(new TGLabel(vf, " Y "), new TGTableLayoutHints(0, 1, 1, 2,
210 kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
211 fYpos = new TGNumberEntry(vf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
212 vf->AddFrame(fYpos, new TGTableLayoutHints(1, 2, 1, 2, kLHintsCenterY |
213 kLHintsLeft, 2, 2, 2, 2));
214
216
217 vf = new TGVerticalFrame(hf);
218 vf->SetLayoutManager(new TGTableLayout(vf, 3, 3));
219
220 TGTextButton *fTextButton6366 = new TGTextButton(vf, "^", -1,
224 fTextButton6366->Resize(20,20);
225 vf->AddFrame(fTextButton6366, new TGTableLayoutHints(1, 2, 0, 1,
226 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
227
228 TGTextButton *fTextButton6367 = new TGTextButton(vf, "v", -1,
232 fTextButton6367->Resize(20,20);
233 vf->AddFrame(fTextButton6367, new TGTableLayoutHints(1, 2, 2, 3,
234 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
235
236 TGTextButton *fTextButton6364 = new TGTextButton(vf, "<", -1,
240 fTextButton6364->Resize(20,20);
241 vf->AddFrame(fTextButton6364, new TGTableLayoutHints(0, 1, 1, 2,
242 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
243
244 TGTextButton *fTextButton6365 = new TGTextButton(vf, ">", -1,
248 fTextButton6365->Resize(20,20);
249 vf->AddFrame(fTextButton6365, new TGTableLayoutHints(2, 3, 1, 2,
250 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
251
253
255
257
258 fXpos->Connect("ValueSet(Long_t)", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
259 fYpos->Connect("ValueSet(Long_t)", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
260
261 fTextButton6364->Connect("Clicked()", "TGNumberEntry", fXpos, "IncreaseNumber(TGNumberFormat::EStepSize=0,-1)");
262 fTextButton6364->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
263 fTextButton6365->Connect("Clicked()", "TGNumberEntry", fXpos, "IncreaseNumber()");
264 fTextButton6365->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
265 fTextButton6366->Connect("Clicked()", "TGNumberEntry", fYpos, "IncreaseNumber(TGNumberFormat::EStepSize=0,-1)");
266 fTextButton6366->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
267 fTextButton6367->Connect("Clicked()", "TGNumberEntry", fYpos, "IncreaseNumber()");
268 fTextButton6367->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
269
270 //----------------------------------------------------
271
272 fBorderFrame = new TGuiBldBorderFrame(tabcont, this);
273 tabcont->AddFrame(fBorderFrame, new TGLayoutHints(kLHintsExpandX, 2, 2, 2, 2));
274
276 SetWindowName("Frame Property Editor");
278
280}
281
282////////////////////////////////////////////////////////////////////////////////
283/// Destructor.
284
286{
287}
288
289////////////////////////////////////////////////////////////////////////////////
290/// Remove a frame.
291
293{
294 fNameFrame->RemoveFrame(frame);
295}
296
297////////////////////////////////////////////////////////////////////////////////
298/// Handle selected.
299
301{
302 if (id == fLayoutId) {
303 //printf("%d\n", fSelected);
304 }
305}
306
307////////////////////////////////////////////////////////////////////////////////
308/// Hide editor.
309
311{
312 UnmapWindow();
313}
314
315////////////////////////////////////////////////////////////////////////////////
316/// Change selected frame.
317
319{
321
322 if (!frame) {
324 //fTab->SetTab(0);
325 if (tab) {
326 tab->SetEnabled(kFALSE);
327 fClient->NeedRedraw(tab);
328 }
329 return;
330 }
331
332 fSelected = frame;
333 TGWindow *parent = (TGWindow*)fSelected->GetParent();
334
336
337 Bool_t enable_layout = kFALSE;
338 enable_layout |= parent && !(parent->GetEditDisabled() & kEditDisableLayout);
339 enable_layout |= !(fSelected->GetEditDisabled() & kEditDisableLayout);
340 enable_layout |= parent && (parent->InheritsFrom(TGCompositeFrame::Class()) &&
341 !((TGCompositeFrame*)parent)->IsLayoutBroken());
342 enable_layout |= (fSelected->InheritsFrom(TGCompositeFrame::Class()) &&
344
345 if (enable_layout) {
347
348 if (tab) {
349 tab->SetEnabled(kTRUE);
350 fClient->NeedRedraw(tab);
351 }
352 } else {
354
355 if (tab) {
356 fTab->SetTab(0);
357 tab->SetEnabled(kFALSE);
358 fClient->NeedRedraw(tab);
359 }
360 }
361
362 if ((frame->InheritsFrom(TGHorizontalFrame::Class())) ||
364 (frame->InheritsFrom(TGGroupFrame::Class())) ) {
365
367 if (fSelected->IsLayoutBroken()) {
368 fLayoutButton->SetText(" Enable layout ");
369 fLayoutLabel->SetText("Automatic layout disabled");
370 if (fTablay) {
374 }
375 } else {
376 fLayoutButton->SetText(" Disable layout ");
377 fLayoutLabel->SetText("Automatic layout enabled");
378 if (fTablay) {
382 }
383 }
384 }
385 else {
387 TGFrame *parentf = (TGFrame*)frame->GetParent();
388 if (parentf->IsLayoutBroken()) {
389 fLayoutButton->SetText(" Enable layout ");
390 fLayoutLabel->SetText("Automatic layout disabled");
394 } else {
395 fLayoutButton->SetText(" Disable layout ");
396 fLayoutLabel->SetText("Automatic layout enabled");
400 }
401 }
402
403 fYpos->SetIntNumber(frame->GetY());
404 fXpos->SetIntNumber(frame->GetX());
405
408
409 Emit("ChangeSelected(TGFrame*)", (Longptr_t)fSelected);
410
411 MapRaised();
412}
413
414////////////////////////////////////////////////////////////////////////////////
415/// Update selected frame.
416
418{
419 Emit("UpdateSelected(TGFrame*)", (Longptr_t)frame);
420}
421
422////////////////////////////////////////////////////////////////////////////////
423/// Update border of selected frame.
424
426{
427 if (!fSelected) return;
428
429 UInt_t opt = fSelected->GetOptions();
430
431 switch (b) {
432 case 1:
433 opt &= ~kRaisedFrame;
434 opt |= kSunkenFrame;
435 break;
436 case 2:
437 opt &= ~kSunkenFrame;
438 opt &= ~kRaisedFrame;
439 break;
440 case 3:
441 opt &= ~kSunkenFrame;
442 opt |= kRaisedFrame;
443 break;
444 case 4:
445 opt |= kDoubleBorder;
446 break;
447 case 5:
448 opt &= ~kDoubleBorder;
449 break;
450 default:
451 return;
452 }
455}
456
457////////////////////////////////////////////////////////////////////////////////
458/// Update background.
459
461{
462 if (!fSelected) return;
463
466}
467
468////////////////////////////////////////////////////////////////////////////////
469/// Update foreground.
470
472{
473 if (!fSelected) return;
474
477}
478
479////////////////////////////////////////////////////////////////////////////////
480/// Reset the editor.
481
483{
484 fSelected = 0;
485 fNameFrame->Reset();
487 if (tab) {
488 fTab->SetTab(0);
489 tab->SetEnabled(kFALSE);
490 }
491}
492
493////////////////////////////////////////////////////////////////////////////////
494/// Popup dialog to set layout of edited frame off. If layout is on, all
495/// the elements in the frame get laid out automatically.
496
498{
499 if (!fSelected) {
500 fLayoutButton->SetText(" Enable layout ");
502 fLayoutLabel->SetText("Automatic layout disabled");
503 if (fTablay) {
507 }
508 return;
509 }
510
512 TGFrame *frame = fSelected;
513 TGCompositeFrame *cf = fNameFrame->GetMdi(frame);
514 if (cf == 0)
515 return;
516 if (frame->IsLayoutBroken()) {
517 Int_t retval;
518 builder->GetManager()->SetEditable(kFALSE);
519 new TGMsgBox(gClient->GetDefaultRoot(), builder, "Layout change",
520 "Enabling layout will automatically align and resize all the icons. \n Do you really want to layout them?",
522
523 cf->SetEditable(kTRUE);
524 // hack against selecting the message box itself
525 builder->GetManager()->SelectFrame(frame);
526 frame->SetEditable(kTRUE);
527
528 if (retval == kMBOk) {
529 frame->SetLayoutBroken(kFALSE);
530 frame->Layout();
531 fLayoutButton->SetText(" Disable layout ");
532 fLayoutLabel->SetText("Automatic layout enabled");
533 if (fTablay) {
538 }
539 }
540 } else {
541 //set layout off - without dialog, because nothing "bad" can happen
542 frame->SetLayoutBroken(kTRUE);
543 fLayoutButton->SetText(" Enable layout ");
544 fLayoutLabel->SetText("Automatic layout disabled");
545 if (fTablay) {
549 }
550 }
551 fClient->NeedRedraw(frame, kTRUE);
553}
554
555
556
@ kRaisedFrame
Definition GuiTypes.h:384
@ kSunkenFrame
Definition GuiTypes.h:383
@ kDoubleBorder
Definition GuiTypes.h:385
@ kFixedSize
Definition GuiTypes.h:390
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
#define b(i)
Definition RSha256.hxx:100
#define f(i)
Definition RSha256.hxx:104
long Longptr_t
Definition RtypesCore.h:82
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
#define ClassImp(name)
Definition Rtypes.h:377
@ kButtonDown
Definition TGButton.h:54
#define gClient
Definition TGClient.h:156
@ kDeepCleanup
Definition TGFrame.h:42
@ kLHintsExpandY
Definition TGLayout.h:31
@ kLHintsLeft
Definition TGLayout.h:24
@ kLHintsCenterY
Definition TGLayout.h:28
@ kLHintsNormal
Definition TGLayout.h:32
@ kLHintsCenterX
Definition TGLayout.h:25
@ kLHintsTop
Definition TGLayout.h:27
@ kLHintsExpandX
Definition TGLayout.h:30
@ kMBCancel
Definition TGMsgBox.h:37
@ kMBOk
Definition TGMsgBox.h:33
@ kMBIconExclamation
Definition TGMsgBox.h:24
winID h TVirtualViewer3D TVirtualGLPainter p
Organizes TGButton widgets in a group.
virtual void SetRadioButtonExclusive(Bool_t flag=kTRUE)
If enable is kTRUE, this button group will treat radio buttons as mutually exclusive,...
virtual void SetButton(Int_t id, Bool_t down=kTRUE)
Sets the button with id to be on/down, and if this is an exclusive group, all other button in the gro...
static const TGGC & GetDefaultGC()
Return default graphics context.
Definition TGButton.cxx:470
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition TGButton.cxx:445
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition TGButton.cxx:459
Selects different options.
Definition TGButton.h:264
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
Definition TGClient.cxx:372
Like a checkbutton but instead of the check mark there is color area with a little down arrow.
void SetColor(Pixel_t color, Bool_t emit=kTRUE)
Set color.
The base class for composite widgets (menu bars, list boxes, etc.).
Definition TGFrame.h:287
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
Definition TGFrame.cxx:1000
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=nullptr)
Add frame to the composite frame using the specified layout hints.
Definition TGFrame.cxx:1117
void MapSubwindows() override
Map all sub windows that are part of the composite frame.
Definition TGFrame.cxx:1164
virtual void ShowFrame(TGFrame *f)
Show sub frame.
Definition TGFrame.cxx:1204
void SetCleanup(Int_t mode=kLocalCleanup) override
Turn on automatic cleanup of child frames in dtor.
Definition TGFrame.cxx:1072
Bool_t IsLayoutBroken() const override
Definition TGFrame.h:357
void SetEditable(Bool_t on=kTRUE) override
Switch ON/OFF edit mode.
Definition TGFrame.cxx:948
void SetEditDisabled(UInt_t on=1) override
Set edit disable flag for this frame and subframes.
Definition TGFrame.cxx:1022
static TClass * Class()
virtual void HideFrame(TGFrame *f)
Hide sub frame.
Definition TGFrame.cxx:1190
A subclasses of TGWindow, and is used as base class for some simple widgets (buttons,...
Definition TGFrame.h:80
virtual void ChangeOptions(UInt_t options)
Change frame options. Options is an OR of the EFrameTypes.
Definition TGFrame.cxx:321
virtual Bool_t IsLayoutBroken() const
Definition TGFrame.h:216
void Resize(UInt_t w=0, UInt_t h=0) override
Resize the frame.
Definition TGFrame.cxx:605
virtual void SetForegroundColor(Pixel_t)
Definition TGFrame.h:196
void SetBackgroundColor(Pixel_t back) override
Set background color (override from TGWindow base class).
Definition TGFrame.cxx:312
virtual void SetLayoutBroken(Bool_t=kTRUE)
Definition TGFrame.h:215
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition TGFrame.cxx:683
Int_t GetX() const
Definition TGFrame.h:231
virtual UInt_t GetOptions() const
Definition TGFrame.h:197
void UnmapWindow() override
unmap window
Definition TGFrame.h:206
UInt_t GetHeight() const
Definition TGFrame.h:225
Int_t GetY() const
Definition TGFrame.h:232
virtual void Layout()
Definition TGFrame.h:199
virtual Pixel_t GetBackground() const
Definition TGFrame.h:192
UInt_t GetWidth() const
Definition TGFrame.h:224
void SetEditable(Bool_t) override
Definition TGFrame.h:214
void MapRaised() override
map raised
Definition TGFrame.h:205
A composite frame with a border and a title.
Definition TGFrame.h:522
static TClass * Class()
void SetFrame(TGFrame *frame, Bool_t above) override
Set frame to be resized.
A horizontal 3D line is a line that typically separates a toolbar from the menubar.
Definition TG3DLine.h:18
A composite frame that layout their children in horizontal way.
Definition TGFrame.h:385
static TClass * Class()
This class handles GUI labels.
Definition TGLabel.h:24
virtual void SetText(TGString *newText)
Set new text in label.
Definition TGLabel.cxx:180
This class describes layout hints used by the layout classes.
Definition TGLayout.h:50
TGNumberEntry is a number entry input widget with up/down buttons.
virtual void SetIntNumber(Long_t val, Bool_t emit=kTRUE)
TGClient * fClient
Connection to display server.
Definition TGObject.h:25
Selects different options.
Definition TGButton.h:321
void SetState(EButtonState state, Bool_t emit=kFALSE) override
Set radio button state.
Service classes of the tab widget.
Definition TGTab.h:117
virtual void SetEnabled(Bool_t on=kTRUE)
Definition TGTab.h:149
A tab widget contains a set of composite frames each with a little tab with a name (like a set of fol...
Definition TGTab.h:46
TGTabElement * GetTabTab(Int_t tabIndex) const
Return the tab element of tab with index tabIndex.
Definition TGTab.cxx:663
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:558
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition TGTab.cxx:376
This class describes layout hints used by the TGTableLayout class.
A layout manager, which places child frames in a table arranged in rows and columns,...
Yield an action as soon as it is clicked.
Definition TGButton.h:142
static FontStruct_t GetDefaultFontStruct()
Return default font structure.
Definition TGButton.cxx:869
virtual void SetText(TGHotString *new_label)
Set new button text.
Definition TGButton.cxx:644
A composite frame that layout their children in vertical way.
Definition TGFrame.h:374
static TClass * Class()
ROOT GUI Window base class.
Definition TGWindow.h:23
virtual UInt_t GetEditDisabled() const
Definition TGWindow.h:112
virtual void SetEditDisabled(UInt_t on=kEditDisable)
Definition TGWindow.h:113
@ kEditDisableLayout
window layout cannot be edited
Definition TGWindow.h:60
virtual void SetWindowName(const char *name=nullptr)
Set window name.
Definition TGWindow.cxx:129
const TGWindow * GetParent() const
Definition TGWindow.h:83
UInt_t fEditDisabled
flags used for "guibuilding"
Definition TGWindow.h:32
TGButtonGroup * fBtnGroup
void ChangeSelected(TGFrame *)
Perform actions when selected frame was changed.
TGuiBldEditor * fEditor
TGuiBldBorderFrame(const TGWindow *p, TGuiBldEditor *editor)
Constructor.
~TGuiBldBorderFrame() override
TGColorSelect * fBgndFrame
void SelectFrame(TGFrame *frame, Bool_t add=kFALSE)
Grab/Select frame.
void SetEditable(Bool_t on=kTRUE) override
Grab server.
The property editor.
void ChangeSelected(TGFrame *)
Change selected frame.
TGuiBldHintsEditor * fHintsFrame
TGuiBldNameFrame * fNameFrame
void UpdateSelected(TGFrame *=nullptr)
Update selected frame.
void Reset()
Reset the editor.
void RemoveFrame(TGFrame *) override
Remove a frame.
TGTextButton * fLayoutButton
TGFrame * fSelected
TGNumberEntry * fXpos
TGuiBldGeometryFrame * fGeomFrame
TGLabel * fLayoutLabel
void TabSelected(Int_t id)
Handle selected.
TGNumberEntry * fYpos
TGuiBldEditor(const TGWindow *p=nullptr)
Constructor.
void SwitchLayout()
Popup dialog to set layout of edited frame off.
void Hide()
Hide editor.
void UpdateForeground(Pixel_t col)
Update foreground.
TGCompositeFrame * fTablay
TGGroupFrame * fPositionFrame
void UpdateBorder(Int_t)
Update border of selected frame.
void UpdateBackground(Pixel_t col)
Update background.
~TGuiBldEditor() override
Destructor.
TGuiBldBorderFrame * fBorderFrame
void ChangeSelected(TGFrame *frame)
Update number entries when new frame selected.
Editor of widget's layout hints used by the ROOT GUI builder.
void ChangeSelected(TGFrame *)
Change selected.
void Reset()
Reset name frame.
void RemoveFrame(TGFrame *frame) override
Remove a frame.
TGCompositeFrame * GetMdi(TGFrame *frame)
Find the parent mdi frame.
void ChangeSelected(TGFrame *frame)
Change selected frame.
static TGuiBuilder * Instance()
return an instance of TGuiBuilder object
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition TObject.cxx:525
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition TQObject.h:164
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Definition TQObject.cxx:869
Bool_t Disconnect(const char *signal=nullptr, void *receiver=nullptr, const char *slot=nullptr)
Disconnects signal of this object from slot of receiver.
TGuiBldDragManager * GetManager() const