Logo ROOT  
Reference Guide
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//////////////////////////////////////////////////////////////////////////
13// //
14// TGuiBldEditor - the property editor //
15// //
16//////////////////////////////////////////////////////////////////////////
17
18#include "TGuiBldEditor.h"
19#include "TRootGuiBuilder.h"
20#include "TGuiBldHintsEditor.h"
21#include "TGuiBldNameFrame.h"
23#include "TGResourcePool.h"
24#include "TGTab.h"
25#include "TGLabel.h"
26#include "TGButtonGroup.h"
27#include "TGNumberEntry.h"
28#include "TG3DLine.h"
29#include "TGColorSelect.h"
30#include "TGColorDialog.h"
31#include "TGCanvas.h"
32#include "TGListTree.h"
33#include "TGuiBldDragManager.h"
34#include "TGMsgBox.h"
35#include "TGIcon.h"
36#include "TGFrame.h"
37#include "TGSplitter.h"
38#include "TGTableLayout.h"
39
41
42
43////////////////////////////////////////////////////////////////////////////////
44class TGuiBldBorderFrame : public TGVerticalFrame {
45
46private:
47 enum EBldBorderFrameMode {
48 kBldBorderNone, kBldBorderSunken,
49 kBldBorderPlain, kBldBorderRaised,
50 kBldBorderDouble };
51
52private:
53 TGuiBldEditor *fEditor;
54 TGFrame *fSelected;
55 TGButtonGroup *fBtnGroup;
56 TGColorSelect *fBgndFrame;
57
58public:
59 TGuiBldBorderFrame(const TGWindow *p, TGuiBldEditor *editor);
60 virtual ~TGuiBldBorderFrame() { }
61
62 void ChangeSelected(TGFrame*);
63};
64
65////////////////////////////////////////////////////////////////////////////////
66/// Constructor.
67
68TGuiBldBorderFrame::TGuiBldBorderFrame(const TGWindow *p, TGuiBldEditor *editor) :
69 TGVerticalFrame(p, 1, 1)
70{
71 fEditor = editor;
72 fEditDisabled = 1;
73 fBgndFrame = 0;
74
75 SetCleanup(kDeepCleanup);
76
77 fBtnGroup = new TGButtonGroup(this, "Border Mode");
78
79 TGRadioButton *frame299 = new TGRadioButton(fBtnGroup," Sunken",kBldBorderSunken);
80 frame299->SetToolTipText("Set a sunken border of the frame");
81 TGRadioButton *frame302 = new TGRadioButton(fBtnGroup," None",kBldBorderPlain);
82 frame302->SetToolTipText("Set no border of the frame");
83 TGRadioButton *frame305 = new TGRadioButton(fBtnGroup," Raised",kBldBorderRaised);
84 frame305->SetToolTipText("Set a raised border of the frame");
85 frame305->SetState(kButtonDown);
86 TGCheckButton *check = new TGCheckButton(fBtnGroup," Double",kBldBorderDouble);
87 check->SetToolTipText("Set double border of the frame");
88 //TQObject::Disconnect(check);
89
90 fBtnGroup->SetRadioButtonExclusive(kTRUE);
91 AddFrame(fBtnGroup, new TGLayoutHints(kLHintsCenterX | kLHintsTop));
92 fBtnGroup->Connect("Pressed(Int_t)", "TGuiBldEditor", fEditor, "UpdateBorder(Int_t)");
93 check->Connect("Pressed()", "TGuiBldEditor", fEditor, "UpdateBorder(=4)");
94 check->Connect("Released()", "TGuiBldEditor", fEditor, "UpdateBorder(=5)");
95
96 TGCompositeFrame *f = new TGGroupFrame(this, "Palette");
97 TGHorizontalFrame *hf = new TGHorizontalFrame(f ,1, 1);
98 fBgndFrame = new TGColorSelect(hf, 0, 1);
99 fBgndFrame->SetEditDisabled();
100 fBgndFrame->SetColor(GetDefaultFrameBackground());
101 fBgndFrame->Connect("ColorSelected(Pixel_t)", "TGuiBldEditor", fEditor,
102 "UpdateBackground(Pixel_t)");
103 hf->AddFrame(fBgndFrame, new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2));
104 hf->AddFrame(new TGLabel(hf, "Backgrnd"), new TGLayoutHints(kLHintsTop |
105 kLHintsLeft, 2, 2, 2, 2));
106 f->AddFrame(hf, new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2));
107 AddFrame(f, new TGLayoutHints(kLHintsCenterX | kLHintsTop));
108}
109
110////////////////////////////////////////////////////////////////////////////////
111/// Perform actions when selected frame was changed.
112
113void TGuiBldBorderFrame::ChangeSelected(TGFrame *frame)
114{
115 fSelected = frame;
116
117 if (!frame) {
118 return;
119 }
120
121 UInt_t opt = fSelected->GetOptions();
122
123 fBtnGroup->SetButton(kBldBorderDouble, opt & kDoubleBorder);
124 fBtnGroup->SetButton(kBldBorderSunken, opt & kSunkenFrame);
125 fBtnGroup->SetButton(kBldBorderRaised, opt & kRaisedFrame);
126 fBtnGroup->SetButton(kBldBorderPlain, !(opt & kRaisedFrame) && !(opt & kSunkenFrame));
127
128 if (fBgndFrame) {
129 TQObject::Disconnect(fBgndFrame);
130 fBgndFrame->SetColor(fSelected->GetBackground());
131 fBgndFrame->Connect("ColorSelected(Pixel_t)", "TGuiBldEditor", fEditor, "UpdateBackground(Pixel_t)");
132 }
133}
134
135////////////////////////////////////////////////////////////////////////////////
136////////////////////////////////////////////////////////////////////////////////
137/// Constructor.
138
140{
142 TGVerticalFrame *vf;
143 fSelected = 0;
145
146 fNameFrame = new TGuiBldNameFrame(this, this);
148
149 TGHSplitter *splitter = new TGHSplitter(this,100,5);
151 splitter->SetFrame(fNameFrame, kTRUE);
152
153 //------------frame with layout switch
154 hf = new TGHorizontalFrame(this);
155 hf->AddFrame(new TGLabel(hf, "Composite Frame Layout"),
156 new TGLayoutHints(kLHintsLeft | kLHintsTop, 2, 2, 2, 2));
158 kLHintsExpandX, 2, 2, 2, 2));
159 AddFrame(hf, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 2));
160
161 vf = new TGVerticalFrame(this);
162 fLayoutLabel = new TGLabel(vf, "Automatic Layout Disabled");
164 2, 2, 2, 2));
165
166 fLayoutButton = new TGTextButton(vf," Enable layout ");
169 2, 2, 2, 2));
170
171 AddFrame(vf, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 2));
172
174 kLHintsExpandX, 2, 2, 2, 2));
175
176 fLayoutButton->Connect("Clicked()", "TGuiBldEditor", this, "SwitchLayout()");
177 fLayoutButton->SetToolTipText("If layout is on, all the frame \nelements get layouted automatically.");
178
179 //-----------------------------
180
181 fTab = new TGTab(this, 80, 40);
183 fTablay = fTab->AddTab("Layout");
184 TGCompositeFrame *tabcont = fTab->AddTab("Style");
185 fLayoutId = 1; // 2nd tab
186 fTab->Connect("Selected(Int_t)", "TGuiBldEditor", this, "TabSelected(Int_t)");
187
190 2, 2, 2, 2));
191
194 2, 2, 2, 2));
195
196 //----------------Position X,Y boxes---------------
197
198 fPositionFrame = new TGGroupFrame(fTablay, "Position");
199
201
202 vf = new TGVerticalFrame(hf);
203 vf->SetLayoutManager(new TGTableLayout(vf, 2, 2));
204
205 vf->AddFrame(new TGLabel(vf, " X "), new TGTableLayoutHints(0, 1, 0, 1,
206 kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
207 fXpos = new TGNumberEntry(vf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
208 vf->AddFrame(fXpos, new TGTableLayoutHints(1, 2, 0, 1, kLHintsCenterY |
209 kLHintsLeft, 2, 2, 2, 2));
210
211 vf->AddFrame(new TGLabel(vf, " Y "), new TGTableLayoutHints(0, 1, 1, 2,
212 kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
213 fYpos = new TGNumberEntry(vf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
214 vf->AddFrame(fYpos, new TGTableLayoutHints(1, 2, 1, 2, kLHintsCenterY |
215 kLHintsLeft, 2, 2, 2, 2));
216
218
219 vf = new TGVerticalFrame(hf);
220 vf->SetLayoutManager(new TGTableLayout(vf, 3, 3));
221
222 TGTextButton *fTextButton6366 = new TGTextButton(vf, "^", -1,
226 fTextButton6366->Resize(20,20);
227 vf->AddFrame(fTextButton6366, new TGTableLayoutHints(1, 2, 0, 1,
228 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
229
230 TGTextButton *fTextButton6367 = new TGTextButton(vf, "v", -1,
234 fTextButton6367->Resize(20,20);
235 vf->AddFrame(fTextButton6367, new TGTableLayoutHints(1, 2, 2, 3,
236 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
237
238 TGTextButton *fTextButton6364 = new TGTextButton(vf, "<", -1,
242 fTextButton6364->Resize(20,20);
243 vf->AddFrame(fTextButton6364, new TGTableLayoutHints(0, 1, 1, 2,
244 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
245
246 TGTextButton *fTextButton6365 = new TGTextButton(vf, ">", -1,
250 fTextButton6365->Resize(20,20);
251 vf->AddFrame(fTextButton6365, new TGTableLayoutHints(2, 3, 1, 2,
252 kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
253
255
257
259
260 fXpos->Connect("ValueSet(Long_t)", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
261 fYpos->Connect("ValueSet(Long_t)", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
262
263 fTextButton6364->Connect("Clicked()", "TGNumberEntry", fXpos, "IncreaseNumber(TGNumberFormat::EStepSize=0,-1)");
264 fTextButton6364->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
265 fTextButton6365->Connect("Clicked()", "TGNumberEntry", fXpos, "IncreaseNumber()");
266 fTextButton6365->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
267 fTextButton6366->Connect("Clicked()", "TGNumberEntry", fYpos, "IncreaseNumber(TGNumberFormat::EStepSize=0,-1)");
268 fTextButton6366->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
269 fTextButton6367->Connect("Clicked()", "TGNumberEntry", fYpos, "IncreaseNumber()");
270 fTextButton6367->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
271
272 //----------------------------------------------------
273
274 fBorderFrame = new TGuiBldBorderFrame(tabcont, this);
275 tabcont->AddFrame(fBorderFrame, new TGLayoutHints(kLHintsExpandX, 2, 2, 2, 2));
276
278 SetWindowName("Frame Property Editor");
280
282}
283
284////////////////////////////////////////////////////////////////////////////////
285/// Destructor.
286
288{
289}
290
291////////////////////////////////////////////////////////////////////////////////
292/// Remove a frame.
293
295{
296 fNameFrame->RemoveFrame(frame);
297}
298
299////////////////////////////////////////////////////////////////////////////////
300/// Handle selected.
301
303{
304 if (id == fLayoutId) {
305 //printf("%d\n", fSelected);
306 }
307}
308
309////////////////////////////////////////////////////////////////////////////////
310/// Hide editor.
311
313{
314 UnmapWindow();
315}
316
317////////////////////////////////////////////////////////////////////////////////
318/// Change selected frame.
319
321{
323
324 if (!frame) {
326 //fTab->SetTab(0);
327 if (tab) {
328 tab->SetEnabled(kFALSE);
329 fClient->NeedRedraw(tab);
330 }
331 return;
332 }
333
334 fSelected = frame;
335 TGWindow *parent = (TGWindow*)fSelected->GetParent();
336
338
339 Bool_t enable_layout = kFALSE;
340 enable_layout |= parent && !(parent->GetEditDisabled() & kEditDisableLayout);
341 enable_layout |= !(fSelected->GetEditDisabled() & kEditDisableLayout);
342 enable_layout |= parent && (parent->InheritsFrom(TGCompositeFrame::Class()) &&
343 !((TGCompositeFrame*)parent)->IsLayoutBroken());
344 enable_layout |= (fSelected->InheritsFrom(TGCompositeFrame::Class()) &&
346
347 if (enable_layout) {
349
350 if (tab) {
351 tab->SetEnabled(kTRUE);
352 fClient->NeedRedraw(tab);
353 }
354 } else {
356
357 if (tab) {
358 fTab->SetTab(0);
359 tab->SetEnabled(kFALSE);
360 fClient->NeedRedraw(tab);
361 }
362 }
363
364 if ((frame->InheritsFrom(TGHorizontalFrame::Class())) ||
366 (frame->InheritsFrom(TGGroupFrame::Class())) ) {
367
369 if (fSelected->IsLayoutBroken()) {
370 fLayoutButton->SetText(" Enable layout ");
371 fLayoutLabel->SetText("Automatic layout disabled");
372 if (fTablay) {
376 }
377 } else {
378 fLayoutButton->SetText(" Disable layout ");
379 fLayoutLabel->SetText("Automatic layout enabled");
380 if (fTablay) {
384 }
385 }
386 }
387 else {
389 TGFrame *parentf = (TGFrame*)frame->GetParent();
390 if (parentf->IsLayoutBroken()) {
391 fLayoutButton->SetText(" Enable layout ");
392 fLayoutLabel->SetText("Automatic layout disabled");
396 } else {
397 fLayoutButton->SetText(" Disable layout ");
398 fLayoutLabel->SetText("Automatic layout enabled");
402 }
403 }
404
405 fYpos->SetIntNumber(frame->GetY());
406 fXpos->SetIntNumber(frame->GetX());
407
408 if (fBorderFrame) fBorderFrame->ChangeSelected(fSelected);
410
411 Emit("ChangeSelected(TGFrame*)", (long)fSelected);
412
413 MapRaised();
414}
415
416////////////////////////////////////////////////////////////////////////////////
417/// Update selected frame.
418
420{
421 Emit("UpdateSelected(TGFrame*)", (long)frame);
422}
423
424////////////////////////////////////////////////////////////////////////////////
425/// Update border of selected frame.
426
428{
429 if (!fSelected) return;
430
431 UInt_t opt = fSelected->GetOptions();
432
433 switch (b) {
434 case 1:
435 opt &= ~kRaisedFrame;
436 opt |= kSunkenFrame;
437 break;
438 case 2:
439 opt &= ~kSunkenFrame;
440 opt &= ~kRaisedFrame;
441 break;
442 case 3:
443 opt &= ~kSunkenFrame;
444 opt |= kRaisedFrame;
445 break;
446 case 4:
447 opt |= kDoubleBorder;
448 break;
449 case 5:
450 opt &= ~kDoubleBorder;
451 break;
452 default:
453 return;
454 }
457}
458
459////////////////////////////////////////////////////////////////////////////////
460/// Update background.
461
463{
464 if (!fSelected) return;
465
468}
469
470////////////////////////////////////////////////////////////////////////////////
471/// Update foreground.
472
474{
475 if (!fSelected) return;
476
479}
480
481////////////////////////////////////////////////////////////////////////////////
482/// Reset the editor.
483
485{
486 fSelected = 0;
487 fNameFrame->Reset();
489 if (tab) {
490 fTab->SetTab(0);
491 tab->SetEnabled(kFALSE);
492 }
493}
494
495////////////////////////////////////////////////////////////////////////////////
496/// Popup dialog to set layout of editted frame off. If layout is on, all
497/// the elements in the frame get layouted automatically.
498
500{
501 if (!fSelected) {
502 fLayoutButton->SetText(" Enable layout ");
504 fLayoutLabel->SetText("Automatic layout disabled");
505 if (fTablay) {
509 }
510 return;
511 }
512
514 TGFrame *frame = fSelected;
515 TGCompositeFrame *cf = fNameFrame->GetMdi(frame);
516 if (cf == 0)
517 return;
518 if (frame->IsLayoutBroken()) {
519 Int_t retval;
520 builder->GetManager()->SetEditable(kFALSE);
521 new TGMsgBox(gClient->GetDefaultRoot(), builder, "Layout change",
522 "Enabling layout will automatically align and resize all the icons. \n Do you really want to layout them?",
524
525 cf->SetEditable(kTRUE);
526 // hack against selecting the message box itself
527 builder->GetManager()->SelectFrame(frame);
528 frame->SetEditable(kTRUE);
529
530 if (retval == kMBOk) {
531 frame->SetLayoutBroken(kFALSE);
532 frame->Layout();
533 fLayoutButton->SetText(" Disable layout ");
534 fLayoutLabel->SetText("Automatic layout enabled");
535 if (fTablay) {
540 }
541 }
542 } else {
543 //set layout off - without dialog, because nothing "bad" can happen
544 frame->SetLayoutBroken(kTRUE);
545 fLayoutButton->SetText(" Enable layout ");
546 fLayoutLabel->SetText("Automatic layout disabled");
547 if (fTablay) {
551 }
552 }
553 fClient->NeedRedraw(frame, kTRUE);
555}
556
557
558
void Class()
Definition: Class.C:29
@ kRaisedFrame
Definition: GuiTypes.h:384
@ kSunkenFrame
Definition: GuiTypes.h:383
@ kDoubleBorder
Definition: GuiTypes.h:385
@ kFixedSize
Definition: GuiTypes.h:390
ULong_t Pixel_t
Definition: GuiTypes.h:39
#define b(i)
Definition: RSha256.hxx:100
#define f(i)
Definition: RSha256.hxx:104
unsigned int UInt_t
Definition: RtypesCore.h:44
const Bool_t kFALSE
Definition: RtypesCore.h:90
const Bool_t kTRUE
Definition: RtypesCore.h:89
#define ClassImp(name)
Definition: Rtypes.h:361
@ kButtonDown
Definition: TGButton.h:54
#define gClient
Definition: TGClient.h:166
@ kDeepCleanup
Definition: TGFrame.h:51
@ kLHintsExpandY
Definition: TGLayout.h:38
@ kLHintsLeft
Definition: TGLayout.h:31
@ kLHintsCenterY
Definition: TGLayout.h:35
@ kLHintsNormal
Definition: TGLayout.h:39
@ kLHintsCenterX
Definition: TGLayout.h:32
@ kLHintsTop
Definition: TGLayout.h:34
@ kLHintsExpandX
Definition: TGLayout.h:37
@ kMBCancel
Definition: TGMsgBox.h:48
@ kMBOk
Definition: TGMsgBox.h:44
@ kMBIconExclamation
Definition: TGMsgBox.h:35
static const TGGC & GetDefaultGC()
Return default graphics context.
Definition: TGButton.cxx:422
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:397
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:411
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
Definition: TGClient.cxx:372
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
Definition: TGFrame.cxx:984
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1101
virtual void SetEditable(Bool_t on=kTRUE)
Switch ON/OFF edit mode.
Definition: TGFrame.cxx:932
virtual Bool_t IsLayoutBroken() const
Definition: TGFrame.h:394
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1056
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1148
virtual void ShowFrame(TGFrame *f)
Show sub frame.
Definition: TGFrame.cxx:1188
virtual void SetEditDisabled(UInt_t on=1)
Set edit disable flag for this frame and subframes.
Definition: TGFrame.cxx:1006
virtual void HideFrame(TGFrame *f)
Hide sub frame.
Definition: TGFrame.cxx:1174
virtual void ChangeOptions(UInt_t options)
Change frame options. Options is an OR of the EFrameTypes.
Definition: TGFrame.cxx:305
virtual Bool_t IsLayoutBroken() const
Definition: TGFrame.h:241
virtual void SetForegroundColor(Pixel_t)
Definition: TGFrame.h:221
virtual void MapRaised()
map raised
Definition: TGFrame.h:230
virtual void SetLayoutBroken(Bool_t=kTRUE)
Definition: TGFrame.h:240
virtual void SetBackgroundColor(Pixel_t back)
Set background color (override from TGWindow base class).
Definition: TGFrame.cxx:296
Int_t GetX() const
Definition: TGFrame.h:256
virtual UInt_t GetOptions() const
Definition: TGFrame.h:222
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:589
virtual void SetEditable(Bool_t)
Definition: TGFrame.h:239
UInt_t GetHeight() const
Definition: TGFrame.h:250
Int_t GetY() const
Definition: TGFrame.h:257
virtual void Layout()
Definition: TGFrame.h:224
UInt_t GetWidth() const
Definition: TGFrame.h:249
virtual void UnmapWindow()
unmap window
Definition: TGFrame.h:231
virtual void SetText(TGString *newText)
Set new text in label.
Definition: TGLabel.cxx:178
virtual void SetIntNumber(Long_t val)
TGClient * fClient
Definition: TGObject.h:37
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set radio button state.
Definition: TGButton.cxx:1565
virtual void SetEnabled(Bool_t on=kTRUE)
Definition: TGTab.h:162
Definition: TGTab.h:62
TGTabElement * GetTabTab(Int_t tabIndex) const
Return the tab element of tab with index tabIndex.
Definition: TGTab.cxx:613
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:508
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition: TGTab.cxx:342
static FontStruct_t GetDefaultFontStruct()
Return default font structure.
Definition: TGButton.cxx:821
virtual void SetText(TGHotString *new_label)
Set new button text.
Definition: TGButton.cxx:596
TGVerticalFrame(const TGWindow *p=0, UInt_t w=1, UInt_t h=1, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Definition: TGFrame.h:414
virtual void SetWindowName(const char *name=0)
Set window name.
Definition: TGWindow.cxx:119
virtual UInt_t GetEditDisabled() const
Definition: TGWindow.h:113
@ kEditDisableLayout
Definition: TGWindow.h:61
const TGWindow * GetParent() const
Definition: TGWindow.h:84
void SelectFrame(TGFrame *frame, Bool_t add=kFALSE)
Grab/Select frame.
void SetEditable(Bool_t on=kTRUE)
Grab server.
void ChangeSelected(TGFrame *)
Change selected frame.
TGuiBldHintsEditor * fHintsFrame
Definition: TGuiBldEditor.h:46
TGuiBldNameFrame * fNameFrame
Definition: TGuiBldEditor.h:45
void RemoveFrame(TGFrame *)
Remove a frame.
void Reset()
Reset the editor.
virtual ~TGuiBldEditor()
Destructor.
TGTextButton * fLayoutButton
Definition: TGuiBldEditor.h:55
Bool_t fEmbedded
Definition: TGuiBldEditor.h:51
TGFrame * fSelected
Definition: TGuiBldEditor.h:44
TGNumberEntry * fXpos
Definition: TGuiBldEditor.h:57
TGuiBldGeometryFrame * fGeomFrame
Definition: TGuiBldEditor.h:48
TGLabel * fLayoutLabel
Definition: TGuiBldEditor.h:56
void UpdateSelected(TGFrame *=0)
Update selected frame.
void TabSelected(Int_t id)
Handle selected.
TGNumberEntry * fYpos
Definition: TGuiBldEditor.h:58
void SwitchLayout()
Popup dialog to set layout of editted frame off.
TGuiBldEditor(const TGWindow *p=0)
Constructor.
void Hide()
Hide editor.
void UpdateForeground(Pixel_t col)
Update foreground.
TGCompositeFrame * fTablay
Definition: TGuiBldEditor.h:53
TGGroupFrame * fPositionFrame
Definition: TGuiBldEditor.h:49
void UpdateBorder(Int_t)
Update border of selected frame.
void UpdateBackground(Pixel_t col)
Update background.
TGuiBldBorderFrame * fBorderFrame
Definition: TGuiBldEditor.h:47
void ChangeSelected(TGFrame *frame)
Update number entries when new frame selected.
void ChangeSelected(TGFrame *)
Change selected.
void Reset()
Reset name frame.
void RemoveFrame(TGFrame *frame)
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:443
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:866
Bool_t Disconnect(const char *signal=0, void *receiver=0, const char *slot=0)
Disconnects signal of this object from slot of receiver.
Definition: TQObject.cxx:1024
TGuiBldDragManager * GetManager() const
REAL splitter
Definition: triangle.c:616