ROOT  6.06/09
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"
22 #include "TGuiBldGeometryFrame.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 "TMethod.h"
35 #include "TGMsgBox.h"
36 #include "TGIcon.h"
37 #include "TGFrame.h"
38 #include "TGSplitter.h"
39 #include "TGTableLayout.h"
40 
42 
43 
44 ////////////////////////////////////////////////////////////////////////////////
45 class TGuiBldBorderFrame : public TGVerticalFrame {
46 
47 private:
48  enum EBldBorderFrameMode {
49  kBldBorderNone, kBldBorderSunken,
50  kBldBorderPlain, kBldBorderRaised,
51  kBldBorderDouble };
52 
53 private:
58 
59 public:
60  TGuiBldBorderFrame(const TGWindow *p, TGuiBldEditor *editor);
61  virtual ~TGuiBldBorderFrame() { }
62 
63  void ChangeSelected(TGFrame*);
64 };
65 
66 ////////////////////////////////////////////////////////////////////////////////
67 /// Constructor.
68 
70  TGVerticalFrame(p, 1, 1)
71 {
72  fEditor = editor;
73  fEditDisabled = 1;
74  fBgndFrame = 0;
75 
77 
78  fBtnGroup = new TGButtonGroup(this, "Border Mode");
79 
80  TGRadioButton *frame299 = new TGRadioButton(fBtnGroup," Sunken",kBldBorderSunken);
81  frame299->SetToolTipText("Set a sunken border of the frame");
82  TGRadioButton *frame302 = new TGRadioButton(fBtnGroup," None",kBldBorderPlain);
83  frame302->SetToolTipText("Set no border of the frame");
84  TGRadioButton *frame305 = new TGRadioButton(fBtnGroup," Raised",kBldBorderRaised);
85  frame305->SetToolTipText("Set a raised border of the frame");
86  frame305->SetState(kButtonDown);
87  TGCheckButton *check = new TGCheckButton(fBtnGroup," Double",kBldBorderDouble);
88  check->SetToolTipText("Set double border of the frame");
89  //TQObject::Disconnect(check);
90 
93  fBtnGroup->Connect("Pressed(Int_t)", "TGuiBldEditor", fEditor, "UpdateBorder(Int_t)");
94  check->Connect("Pressed()", "TGuiBldEditor", fEditor, "UpdateBorder(=4)");
95  check->Connect("Released()", "TGuiBldEditor", fEditor, "UpdateBorder(=5)");
96 
97  TGCompositeFrame *f = new TGGroupFrame(this, "Palette");
98  TGHorizontalFrame *hf = new TGHorizontalFrame(f ,1, 1);
99  fBgndFrame = new TGColorSelect(hf, 0, 1);
102  fBgndFrame->Connect("ColorSelected(Pixel_t)", "TGuiBldEditor", fEditor,
103  "UpdateBackground(Pixel_t)");
104  hf->AddFrame(fBgndFrame, new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2));
105  hf->AddFrame(new TGLabel(hf, "Backgrnd"), new TGLayoutHints(kLHintsTop |
106  kLHintsLeft, 2, 2, 2, 2));
107  f->AddFrame(hf, new TGLayoutHints(kLHintsCenterX | kLHintsTop, 2, 2, 2, 2));
108  AddFrame(f, new TGLayoutHints(kLHintsCenterX | kLHintsTop));
109 }
110 
111 ////////////////////////////////////////////////////////////////////////////////
112 /// Perform actions when selected frame was changed.
113 
115 {
116  fSelected = frame;
117 
118  if (!frame) {
119  return;
120  }
121 
122  UInt_t opt = fSelected->GetOptions();
123 
124  fBtnGroup->SetButton(kBldBorderDouble, opt & kDoubleBorder);
125  fBtnGroup->SetButton(kBldBorderSunken, opt & kSunkenFrame);
126  fBtnGroup->SetButton(kBldBorderRaised, opt & kRaisedFrame);
127  fBtnGroup->SetButton(kBldBorderPlain, !(opt & kRaisedFrame) && !(opt & kSunkenFrame));
128 
129  if (fBgndFrame) {
132  fBgndFrame->Connect("ColorSelected(Pixel_t)", "TGuiBldEditor", fEditor, "UpdateBackground(Pixel_t)");
133  }
134 }
135 
136 ////////////////////////////////////////////////////////////////////////////////
137 ////////////////////////////////////////////////////////////////////////////////
138 /// Constructor.
139 
141 {
142  TGHorizontalFrame *hf;
143  TGVerticalFrame *vf;
144  fSelected = 0;
146 
147  fNameFrame = new TGuiBldNameFrame(this, this);
149 
150  TGHSplitter *splitter = new TGHSplitter(this,100,5);
151  AddFrame(splitter, new TGLayoutHints(kLHintsTop | kLHintsExpandX,0,0,5,5));
152  splitter->SetFrame(fNameFrame, kTRUE);
153 
154  //------------frame with layout switch
155  hf = new TGHorizontalFrame(this);
156  hf->AddFrame(new TGLabel(hf, "Composite Frame Layout"),
157  new TGLayoutHints(kLHintsLeft | kLHintsTop, 2, 2, 2, 2));
159  kLHintsExpandX, 2, 2, 2, 2));
160  AddFrame(hf, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 2));
161 
162  vf = new TGVerticalFrame(this);
163  fLayoutLabel = new TGLabel(vf, "Automatic Layout Disabled");
165  2, 2, 2, 2));
166 
167  fLayoutButton = new TGTextButton(vf," Enable layout ");
170  2, 2, 2, 2));
171 
172  AddFrame(vf, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 2, 2, 2));
173 
175  kLHintsExpandX, 2, 2, 2, 2));
176 
177  fLayoutButton->Connect("Clicked()", "TGuiBldEditor", this, "SwitchLayout()");
178  fLayoutButton->SetToolTipText("If layout is on, all the frame \nelements get layouted automatically.");
179 
180  //-----------------------------
181 
182  fTab = new TGTab(this, 80, 40);
184  fTablay = fTab->AddTab("Layout");
185  TGCompositeFrame *tabcont = fTab->AddTab("Style");
186  fLayoutId = 1; // 2nd tab
187  fTab->Connect("Selected(Int_t)", "TGuiBldEditor", this, "TabSelected(Int_t)");
188 
191  2, 2, 2, 2));
192 
195  2, 2, 2, 2));
196 
197  //----------------Position X,Y boxes---------------
198 
199  fPositionFrame = new TGGroupFrame(fTablay, "Position");
200 
202 
203  vf = new TGVerticalFrame(hf);
204  vf->SetLayoutManager(new TGTableLayout(vf, 2, 2));
205 
206  vf->AddFrame(new TGLabel(vf, " X "), new TGTableLayoutHints(0, 1, 0, 1,
207  kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
208  fXpos = new TGNumberEntry(vf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
209  vf->AddFrame(fXpos, new TGTableLayoutHints(1, 2, 0, 1, kLHintsCenterY |
210  kLHintsLeft, 2, 2, 2, 2));
211 
212  vf->AddFrame(new TGLabel(vf, " Y "), new TGTableLayoutHints(0, 1, 1, 2,
213  kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2));
214  fYpos = new TGNumberEntry(vf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
215  vf->AddFrame(fYpos, new TGTableLayoutHints(1, 2, 1, 2, kLHintsCenterY |
216  kLHintsLeft, 2, 2, 2, 2));
217 
219 
220  vf = new TGVerticalFrame(hf);
221  vf->SetLayoutManager(new TGTableLayout(vf, 3, 3));
222 
223  TGTextButton *fTextButton6366 = new TGTextButton(vf, "^", -1,
226  kRaisedFrame | kDoubleBorder | kFixedSize);
227  fTextButton6366->Resize(20,20);
228  vf->AddFrame(fTextButton6366, new TGTableLayoutHints(1, 2, 0, 1,
229  kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
230 
231  TGTextButton *fTextButton6367 = new TGTextButton(vf, "v", -1,
234  kRaisedFrame | kDoubleBorder | kFixedSize);
235  fTextButton6367->Resize(20,20);
236  vf->AddFrame(fTextButton6367, new TGTableLayoutHints(1, 2, 2, 3,
237  kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
238 
239  TGTextButton *fTextButton6364 = new TGTextButton(vf, "<", -1,
242  kRaisedFrame | kDoubleBorder | kFixedSize);
243  fTextButton6364->Resize(20,20);
244  vf->AddFrame(fTextButton6364, new TGTableLayoutHints(0, 1, 1, 2,
245  kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
246 
247  TGTextButton *fTextButton6365 = new TGTextButton(vf, ">", -1,
250  kRaisedFrame | kDoubleBorder | kFixedSize);
251  fTextButton6365->Resize(20,20);
252  vf->AddFrame(fTextButton6365, new TGTableLayoutHints(2, 3, 1, 2,
253  kLHintsLeft | kLHintsTop, 1, 1, 1, 1));
254 
256 
258 
260 
261  fXpos->Connect("ValueSet(Long_t)", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
262  fYpos->Connect("ValueSet(Long_t)", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
263 
264  fTextButton6364->Connect("Clicked()", "TGNumberEntry", fXpos, "IncreaseNumber(TGNumberFormat::EStepSize=0,-1)");
265  fTextButton6364->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
266  fTextButton6365->Connect("Clicked()", "TGNumberEntry", fXpos, "IncreaseNumber()");
267  fTextButton6365->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
268  fTextButton6366->Connect("Clicked()", "TGNumberEntry", fYpos, "IncreaseNumber(TGNumberFormat::EStepSize=0,-1)");
269  fTextButton6366->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
270  fTextButton6367->Connect("Clicked()", "TGNumberEntry", fYpos, "IncreaseNumber()");
271  fTextButton6367->Connect("Clicked()", "TGuiBldHintsEditor", fHintsFrame, "SetPosition()");
272 
273  //----------------------------------------------------
274 
275  fBorderFrame = new TGuiBldBorderFrame(tabcont, this);
276  tabcont->AddFrame(fBorderFrame, new TGLayoutHints(kLHintsExpandX, 2, 2, 2, 2));
277 
278  MapSubwindows();
279  SetWindowName("Frame Property Editor");
280  SetEditDisabled(1);
281 
282  fEmbedded = kFALSE;
283 }
284 
285 ////////////////////////////////////////////////////////////////////////////////
286 /// Destructor.
287 
289 {
290 }
291 
292 ////////////////////////////////////////////////////////////////////////////////
293 /// Remove a frame.
294 
296 {
297  fNameFrame->RemoveFrame(frame);
298 }
299 
300 ////////////////////////////////////////////////////////////////////////////////
301 /// Handle selected.
302 
304 {
305  if (id == fLayoutId) {
306  //printf("%d\n", fSelected);
307  }
308 }
309 
310 ////////////////////////////////////////////////////////////////////////////////
311 /// Hide editor.
312 
314 {
315  UnmapWindow();
316 }
317 
318 ////////////////////////////////////////////////////////////////////////////////
319 /// Change selected frame.
320 
322 {
324 
325  if (!frame) {
327  //fTab->SetTab(0);
328  if (tab) {
329  tab->SetEnabled(kFALSE);
330  fClient->NeedRedraw(tab);
331  }
332  return;
333  }
334 
335  fSelected = frame;
336  TGWindow *parent = (TGWindow*)fSelected->GetParent();
337 
339 
340  Bool_t enable_layout = kFALSE;
341  enable_layout |= parent && !(parent->GetEditDisabled() & kEditDisableLayout);
342  enable_layout |= !(fSelected->GetEditDisabled() & kEditDisableLayout);
343  enable_layout |= parent && (parent->InheritsFrom(TGCompositeFrame::Class()) &&
344  !((TGCompositeFrame*)parent)->IsLayoutBroken());
345  enable_layout |= (fSelected->InheritsFrom(TGCompositeFrame::Class()) &&
346  !((TGCompositeFrame*)fSelected)->IsLayoutBroken());
347 
348  if (enable_layout) {
350 
351  if (tab) {
352  tab->SetEnabled(kTRUE);
353  fClient->NeedRedraw(tab);
354  }
355  } else {
357 
358  if (tab) {
359  fTab->SetTab(0);
360  tab->SetEnabled(kFALSE);
361  fClient->NeedRedraw(tab);
362  }
363  }
364 
365  if ((frame->InheritsFrom(TGHorizontalFrame::Class())) ||
366  (frame->InheritsFrom(TGVerticalFrame::Class())) ||
367  (frame->InheritsFrom(TGGroupFrame::Class())) ) {
368 
370  if (fSelected->IsLayoutBroken()) {
371  fLayoutButton->SetText(" Enable layout ");
372  fLayoutLabel->SetText("Automatic layout disabled");
373  if (fTablay) {
377  }
378  } else {
379  fLayoutButton->SetText(" Disable layout ");
380  fLayoutLabel->SetText("Automatic layout enabled");
381  if (fTablay) {
385  }
386  }
387  }
388  else {
390  TGFrame *parentf = (TGFrame*)frame->GetParent();
391  if (parentf->IsLayoutBroken()) {
392  fLayoutButton->SetText(" Enable layout ");
393  fLayoutLabel->SetText("Automatic layout disabled");
397  } else {
398  fLayoutButton->SetText(" Disable layout ");
399  fLayoutLabel->SetText("Automatic layout enabled");
403  }
404  }
405 
406  fYpos->SetIntNumber(frame->GetY());
407  fXpos->SetIntNumber(frame->GetX());
408 
409  if (fBorderFrame) fBorderFrame->ChangeSelected(fSelected);
411 
412  Emit("ChangeSelected(TGFrame*)", (long)fSelected);
413 
414  MapRaised();
415 }
416 
417 ////////////////////////////////////////////////////////////////////////////////
418 /// Update selected frame.
419 
421 {
422  Emit("UpdateSelected(TGFrame*)", (long)frame);
423 }
424 
425 ////////////////////////////////////////////////////////////////////////////////
426 /// Update border of selected frame.
427 
429 {
430  if (!fSelected) return;
431 
432  UInt_t opt = fSelected->GetOptions();
433 
434  switch (b) {
435  case 1:
436  opt &= ~kRaisedFrame;
437  opt |= kSunkenFrame;
438  break;
439  case 2:
440  opt &= ~kSunkenFrame;
441  opt &= ~kRaisedFrame;
442  break;
443  case 3:
444  opt &= ~kSunkenFrame;
445  opt |= kRaisedFrame;
446  break;
447  case 4:
448  opt |= kDoubleBorder;
449  break;
450  case 5:
451  opt &= ~kDoubleBorder;
452  break;
453  default:
454  return;
455  }
456  fSelected->ChangeOptions(opt);
458 }
459 
460 ////////////////////////////////////////////////////////////////////////////////
461 /// Update background.
462 
464 {
465  if (!fSelected) return;
466 
469 }
470 
471 ////////////////////////////////////////////////////////////////////////////////
472 /// Update foreground.
473 
475 {
476  if (!fSelected) return;
477 
480 }
481 
482 ////////////////////////////////////////////////////////////////////////////////
483 /// Reset the editor.
484 
486 {
487  fSelected = 0;
488  fNameFrame->Reset();
490  if (tab) {
491  fTab->SetTab(0);
492  tab->SetEnabled(kFALSE);
493  }
494 }
495 
496 ////////////////////////////////////////////////////////////////////////////////
497 /// Popup dialog to set layout of editted frame off. If layout is on, all
498 /// the elements in the frame get layouted automatically.
499 
501 {
502  if (!fSelected) {
503  fLayoutButton->SetText(" Enable layout ");
505  fLayoutLabel->SetText("Automatic layout disabled");
506  if (fTablay) {
510  }
511  return;
512  }
513 
515  TGFrame *frame = fSelected;
516  TGCompositeFrame *cf = fNameFrame->GetMdi(frame);
517  if (cf == 0)
518  return;
519  if (frame->IsLayoutBroken()) {
520  Int_t retval;
521  builder->GetManager()->SetEditable(kFALSE);
522  new TGMsgBox(gClient->GetDefaultRoot(), builder, "Layout change",
523  "Enabling layout will automatically align and resize all the icons. \n Do you really want to layout them?",
524  kMBIconExclamation, kMBOk | kMBCancel, &retval);
525 
526  cf->SetEditable(kTRUE);
527  // hack against selecting the message box itself
528  builder->GetManager()->SelectFrame(frame);
529  frame->SetEditable(kTRUE);
530 
531  if (retval == kMBOk) {
532  frame->SetLayoutBroken(kFALSE);
533  frame->Layout();
534  fLayoutButton->SetText(" Disable layout ");
535  fLayoutLabel->SetText("Automatic layout enabled");
536  if (fTablay) {
541  }
542  }
543  } else {
544  //set layout off - without dialog, because nothing "bad" can happen
545  frame->SetLayoutBroken(kTRUE);
546  fLayoutButton->SetText(" Enable layout ");
547  fLayoutLabel->SetText("Automatic layout disabled");
548  if (fTablay) {
552  }
553  }
554  fClient->NeedRedraw(frame, kTRUE);
556 }
557 
558 
559 
virtual void HideFrame(TGFrame *f)
Hide sub frame.
Definition: TGFrame.cxx:1172
TGuiBldEditor * fEditor
TGTextButton * fLayoutButton
Definition: TGuiBldEditor.h:59
TGNumberEntry * fXpos
Definition: TGuiBldEditor.h:61
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
static FontStruct_t GetDefaultFontStruct()
Return default font structure.
Definition: TGButton.cxx:819
void SelectFrame(TGFrame *frame, Bool_t add=kFALSE)
Grab/Select frame.
void UpdateBorder(Int_t)
Update border of selected frame.
void ChangeSelected(TGFrame *)
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition: TObject.cxx:487
const TGWindow * GetParent() const
Definition: TGWindow.h:87
void TabSelected(Int_t id)
Handle selected.
Definition: TGTab.h:66
void Reset()
Reset name frame.
void ChangeSelected(TGFrame *)
Change selected.
REAL splitter
Definition: triangle.c:616
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...
UInt_t GetWidth() const
Definition: TGFrame.h:287
virtual void SetForegroundColor(Pixel_t)
Definition: TGFrame.h:259
void SetColor(Pixel_t color, Bool_t emit=kTRUE)
Set color.
#define gClient
Definition: TGClient.h:174
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
Definition: TGFrame.cxx:982
virtual void ShowFrame(TGFrame *f)
Show sub frame.
Definition: TGFrame.cxx:1186
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
static const TGGC & GetDefaultGC()
Return default graphics context.
Definition: TGButton.cxx:420
const Bool_t kFALSE
Definition: Rtypes.h:92
TGuiBldDragManager * GetManager() const
Int_t GetY() const
Definition: TGFrame.h:295
UInt_t GetHeight() const
Definition: TGFrame.h:288
void UpdateForeground(Pixel_t col)
Update foreground.
virtual void MapRaised()
Definition: TGFrame.h:268
TGLabel * fLayoutLabel
Definition: TGuiBldEditor.h:60
TGCompositeFrame * GetMdi(TGFrame *frame)
Find the parent mdi frame.
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set radio button state.
Definition: TGButton.cxx:1563
TGGroupFrame * fPositionFrame
Definition: TGuiBldEditor.h:53
void ChangeSelected(TGFrame *frame)
Update number entries when new frame selected.
void ChangeSelected(TGFrame *)
Change selected frame.
void RemoveFrame(TGFrame *)
Remove a frame.
TGNumberEntry * fYpos
Definition: TGuiBldEditor.h:62
ULong_t Pixel_t
Definition: GuiTypes.h:41
TGuiBldBorderFrame * fBorderFrame
Definition: TGuiBldEditor.h:51
void Class()
Definition: Class.C:29
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition: TGFrame.cxx:665
virtual UInt_t GetOptions() const
Definition: TGFrame.h:260
virtual void SetText(TGString *newText)
Set new text in label.
Definition: TGLabel.cxx:177
virtual void SetRadioButtonExclusive(Bool_t flag=kTRUE)
If enable is kTRUE, this button group will treat radio buttons as mutually exclusive, and other buttons according to IsExclusive().
virtual void Layout()
Definition: TGFrame.h:262
void RemoveFrame(TGFrame *frame)
Remove a frame.
virtual void SetBackgroundColor(Pixel_t back)
Set background color (override from TGWindow base class).
Definition: TGFrame.cxx:294
virtual ~TGuiBldEditor()
Destructor.
TGuiBldHintsEditor * fHintsFrame
Definition: TGuiBldEditor.h:50
void Emit(const char *signal)
Acitvate signal without args.
Definition: TQObject.cxx:559
void Reset()
Reset the editor.
void Hide()
Hide editor.
Bool_t fEmbedded
Definition: TGuiBldEditor.h:55
virtual UInt_t GetEditDisabled() const
Definition: TGWindow.h:118
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:1135
TGTabElement * GetTabTab(Int_t tabIndex) const
Return the tab element of tab with index tabIndex.
Definition: TGTab.cxx:612
TGuiBldEditor(const TGWindow *p=0)
Constructor.
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition: TGTab.cxx:341
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:507
unsigned int UInt_t
Definition: RtypesCore.h:42
void SetEditable(Bool_t on=kTRUE)
Grab server.
virtual void SetFrame(TGFrame *frame, Bool_t above)
Set frame to be resized.
Definition: TGSplitter.cxx:339
TGVerticalFrame(const TGWindow *p=0, UInt_t w=1, UInt_t h=1, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Definition: TGFrame.h:452
virtual void SetIntNumber(Long_t val)
TGButtonGroup * fBtnGroup
virtual void SetText(TGHotString *new_label)
Set new button text.
Definition: TGButton.cxx:594
TGFrame * fSelected
TGuiBldBorderFrame(const TGWindow *p, TGuiBldEditor *editor)
Constructor.
#define ClassImp(name)
Definition: Rtypes.h:279
double f(double x)
virtual void SetEditDisabled(UInt_t on=1)
Set edit disable flag for this frame and subframes.
Definition: TGFrame.cxx:1004
void SwitchLayout()
Popup dialog to set layout of editted frame off.
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1054
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:409
virtual void SetEditable(Bool_t)
Definition: TGFrame.h:277
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:1293
virtual void SetCleanup(Int_t=kLocalCleanup)
Definition: TGFrame.h:280
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
Int_t GetX() const
Definition: TGFrame.h:294
TGuiBldGeometryFrame * fGeomFrame
Definition: TGuiBldEditor.h:52
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1146
TGCompositeFrame * fTablay
Definition: TGuiBldEditor.h:57
virtual Pixel_t GetBackground() const
Definition: TGFrame.h:255
void UpdateSelected(TGFrame *=0)
Update selected frame.
virtual void UnmapWindow()
Definition: TGFrame.h:269
virtual void SetEditDisabled(UInt_t on=kEditDisable)
Definition: TGWindow.h:119
static TGuiBuilder * Instance()
return an instance of TGuiBuilder object
friend class TGuiBldGeometryFrame
virtual void SetLayoutBroken(Bool_t=kTRUE)
Definition: TGFrame.h:278
TGClient * fClient
Definition: TGObject.h:41
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
Definition: TGClient.cxx:370
UInt_t fEditDisabled
Definition: TGWindow.h:47
TGuiBldNameFrame * fNameFrame
Definition: TGuiBldEditor.h:49
virtual Bool_t IsLayoutBroken() const
Definition: TGFrame.h:279
void ChangeSelected(TGFrame *frame)
Change selected frame.
void UpdateBackground(Pixel_t col)
Update background.
TGColorSelect * fBgndFrame
virtual void SetEditable(Bool_t on=kTRUE)
Switch ON/OFF edit mode.
Definition: TGFrame.cxx:930
const Bool_t kTRUE
Definition: Rtypes.h:91
virtual void SetEnabled(Bool_t on=kTRUE)
Definition: TGTab.h:166
virtual void ChangeOptions(UInt_t options)
Change frame options. Options is an OR of the EFrameTypes.
Definition: TGFrame.cxx:303
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:395
virtual ~TGuiBldBorderFrame()
virtual void SetWindowName(const char *name=0)
Set window name.
Definition: TGWindow.cxx:118
Definition: TGMsgBox.h:52
TGFrame * fSelected
Definition: TGuiBldEditor.h:48