Logo ROOT   6.12/07
Reference Guide
TGeoConeEditor.cxx
Go to the documentation of this file.
1 // @(#):$Id$
2 // Author: M.Gheata
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2002, 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 TGeoConeEditor
13 \ingroup Geometry_builder
14 
15 Editor for a TGeoCone.
16 
17 \image html geom_cone_pic.png
18 
19 \image html geom_cone_ed.png
20 
21 */
22 
23 
24 #include "TGeoConeEditor.h"
25 #include "TGeoTabManager.h"
26 #include "TGeoCone.h"
27 #include "TGeoManager.h"
28 #include "TVirtualGeoPainter.h"
29 #include "TPad.h"
30 #include "TView.h"
31 #include "TGTab.h"
32 #include "TGComboBox.h"
33 #include "TGButton.h"
34 #include "TGTextEntry.h"
35 #include "TGNumberEntry.h"
36 #include "TGLabel.h"
37 #include "TGDoubleSlider.h"
38 
40 
44 };
45 
46 ////////////////////////////////////////////////////////////////////////////////
47 /// Constructor for volume editor
48 
50  Int_t height, UInt_t options, Pixel_t back)
51  : TGeoGedFrame(p, width, height, options | kVerticalFrame, back)
52 {
53  fShape = 0;
54  fRmini1 = fRmaxi1 = fRmini2 = fRmaxi2 = fDzi = 0.0;
55  fNamei = "";
58 
59  // TextEntry for shape name
60  MakeTitle("Name");
61  fShapeName = new TGTextEntry(this, new TGTextBuffer(50), kCONE_NAME);
63  fShapeName->SetToolTipText("Enter the cone name");
64  fShapeName->Associate(this);
65  AddFrame(fShapeName, new TGLayoutHints(kLHintsLeft, 3, 1, 2, 5));
66 
67  TGTextEntry *nef;
68  MakeTitle("Cone dimensions");
69  TGCompositeFrame *compxyz = new TGCompositeFrame(this, 118, 30, kVerticalFrame | kRaisedFrame);
70 
71  // Number entry for Rmin1
73  f1->AddFrame(new TGLabel(f1, "Rmin1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
74  fERmin1 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN1);
77  nef->SetToolTipText("Enter the inner radius");
78  fERmin1->Associate(this);
80  f1->AddFrame(fERmin1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
81  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
82 
83  // Number entry for Rmax1
84  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
85  f1->AddFrame(new TGLabel(f1, "Rmax1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
86  fERmax1 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX1);
89  nef->SetToolTipText("Enter the outer radius");
90  fERmax1->Associate(this);
92  f1->AddFrame(fERmax1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
93  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
94 
95  // Number entry for Rmin2
96  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
97  f1->AddFrame(new TGLabel(f1, "Rmin2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
98  fERmin2 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN2);
101  nef->SetToolTipText("Enter the inner radius");
102  fERmin2->Associate(this);
104  f1->AddFrame(fERmin2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
105  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
106 
107  // Number entry for Rmax2
108  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
109  f1->AddFrame(new TGLabel(f1, "Rmax2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
110  fERmax2 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX2);
113  nef->SetToolTipText("Enter the outer radius");
114  fERmax2->Associate(this);
116  f1->AddFrame(fERmax2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
117  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
118 
119  // Number entry for dz
120  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
121  f1->AddFrame(new TGLabel(f1, "DZ"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
122  fEDz = new TGNumberEntry(f1, 0., 5, kCONE_Z);
124  nef = (TGTextEntry*)fEDz->GetNumberEntry();
125  nef->SetToolTipText("Enter the cone half-lenth in Z");
126  fEDz->Associate(this);
127  fEDz->Resize(100, fEDz->GetDefaultHeight());
128  f1->AddFrame(fEDz, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
129  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
130 
131  compxyz->Resize(150,30);
132  AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
133 
134  // Delayed draw
136  fDelayed = new TGCheckButton(fDFrame, "Delayed draw");
137  fDFrame->AddFrame(fDelayed, new TGLayoutHints(kLHintsLeft , 2, 2, 2, 2));
138  AddFrame(fDFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
139 
140  // Buttons
141  fBFrame = new TGCompositeFrame(this, 155, 10, kHorizontalFrame | kFixedWidth);
142  fApply = new TGTextButton(fBFrame, "Apply");
143  fBFrame->AddFrame(fApply, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
144  fApply->Associate(this);
145  fUndo = new TGTextButton(fBFrame, "Undo");
146  fBFrame->AddFrame(fUndo, new TGLayoutHints(kLHintsRight , 2, 2, 4, 4));
147  fUndo->Associate(this);
148  AddFrame(fBFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
150 }
151 
152 ////////////////////////////////////////////////////////////////////////////////
153 /// Destructor
154 
156 {
157  TGFrameElement *el;
158  TIter next(GetList());
159  while ((el = (TGFrameElement *)next())) {
160  if (el->fFrame->IsComposite())
162  }
163  Cleanup();
164 }
165 
166 ////////////////////////////////////////////////////////////////////////////////
167 /// Connect signals to slots.
168 
170 {
171  fApply->Connect("Clicked()", "TGeoConeEditor", this, "DoApply()");
172  fUndo->Connect("Clicked()", "TGeoConeEditor", this, "DoUndo()");
173  fShapeName->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoModified()");
174  fERmin1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin1()");
175  fERmin2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin2()");
176  fERmax1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax1()");
177  fERmax2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax2()");
178  fEDz->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoDz()");
179  fERmin1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin1()");
180  fERmin2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin2()");
181  fERmax1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax1()");
182  fERmax2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax2()");
183  fEDz->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoDz()");
184  fInit = kFALSE;
185 }
186 
187 
188 ////////////////////////////////////////////////////////////////////////////////
189 /// Connect to the selected object.
190 
192 {
193  if (obj == 0 || (obj->IsA()!=TGeoCone::Class())) {
194  SetActive(kFALSE);
195  return;
196  }
197  fShape = (TGeoCone*)obj;
198  fRmini1 = fShape->GetRmin1();
199  fRmini2 = fShape->GetRmin2();
200  fRmaxi1 = fShape->GetRmax1();
201  fRmaxi2 = fShape->GetRmax2();
202  fDzi = fShape->GetDz();
203  fNamei = fShape->GetName();
209  fEDz->SetNumber(fDzi);
212 
214  SetActive();
215 }
216 
217 ////////////////////////////////////////////////////////////////////////////////
218 /// Check if shape drawing is delayed.
219 
221 {
222  return (fDelayed->GetState() == kButtonDown);
223 }
224 
225 ////////////////////////////////////////////////////////////////////////////////
226 /// Slot for name.
227 
229 {
230  DoModified();
231 }
232 
233 ////////////////////////////////////////////////////////////////////////////////
234 ///Slot for applying current parameters.
235 
237 {
239  const char *name = fShapeName->GetText();
240  if (strcmp(name,fShape->GetName())) fShape->SetName(name);
241  Double_t rmin1 = fERmin1->GetNumber();
242  Double_t rmin2 = fERmin2->GetNumber();
243  Double_t rmax1 = fERmax1->GetNumber();
244  Double_t rmax2 = fERmax2->GetNumber();
245  Double_t dz = fEDz->GetNumber();
246  if (rmin1<0 || rmin1>rmax1) return;
247  if (rmin2<0 || rmin2>rmax2) return;
248  if (dz<=0) return;
249  if (rmin1==rmax1 && rmin2==rmax2) return;
250  fShape->SetConeDimensions(dz, rmin1, rmax1, rmin2, rmax2);
251  fShape->ComputeBBox();
252  fUndo->SetEnabled();
253  if (fPad) {
255  fShape->Draw();
256  fPad->GetView()->ShowAxis();
257  } else Update();
258  }
259 }
260 
261 ////////////////////////////////////////////////////////////////////////////////
262 ///Slot for modifying current parameters.
263 
265 {
266  fApply->SetEnabled();
267 }
268 
269 ////////////////////////////////////////////////////////////////////////////////
270 /// Slot for undoing current operation.
271 
273 {
278  fEDz->SetNumber(fDzi);
279  DoApply();
282 }
283 
284 ////////////////////////////////////////////////////////////////////////////////
285 /// Slot for Rmin1
286 
288 {
289  Double_t rmin1 = fERmin1->GetNumber();
290  Double_t rmax1 = fERmax1->GetNumber();
291  if (rmin1<0) {
292  rmin1 = 0;
293  fERmin1->SetNumber(rmin1);
294  }
295  if (rmin1>rmax1) {
296  rmin1 = rmax1;
297  fERmin1->SetNumber(rmin1);
298  }
299  DoModified();
300  if (!IsDelayed()) DoApply();
301 }
302 
303 ////////////////////////////////////////////////////////////////////////////////
304 /// Slot for Rmax1
305 
307 {
308  Double_t rmin1 = fERmin1->GetNumber();
309  Double_t rmax1 = fERmax1->GetNumber();
310  if (rmax1<rmin1) {
311  rmax1 = rmin1;
312  fERmax1->SetNumber(rmax1);
313  }
314  DoModified();
315  if (!IsDelayed()) DoApply();
316 }
317 
318 ////////////////////////////////////////////////////////////////////////////////
319 /// Slot for Rmin2
320 
322 {
323  Double_t rmin2 = fERmin2->GetNumber();
324  Double_t rmax2 = fERmax2->GetNumber();
325  if (rmin2<0) {
326  rmin2 = 0;
327  fERmin2->SetNumber(rmin2);
328  }
329  if (rmin2>rmax2) {
330  rmin2 = rmax2;
331  fERmin2->SetNumber(rmin2);
332  }
333  DoModified();
334  if (!IsDelayed()) DoApply();
335 }
336 
337 ////////////////////////////////////////////////////////////////////////////////
338 /// Slot for Rmax2
339 
341 {
342  Double_t rmin2 = fERmin2->GetNumber();
343  Double_t rmax2 = fERmax2->GetNumber();
344  if (rmax2<rmin2) {
345  rmax2 = rmin2;
346  fERmax2->SetNumber(rmax2);
347  }
348  DoModified();
349  if (!IsDelayed()) DoApply();
350 }
351 
352 ////////////////////////////////////////////////////////////////////////////////
353 /// Slot for Dz
354 
356 {
357  Double_t dz = fEDz->GetNumber();
358  if (dz<=0) {
359  dz = 0.1;
360  fEDz->SetNumber(dz);
361  }
362  DoModified();
363  if (!IsDelayed()) DoApply();
364 }
365 
366 /** \class TGeoConeSegEditor
367 \ingroup Geometry_builder
368 
369 Editor for a cone segment.
370 
371 \image html geom_cons_pic.png
372 
373 \image html geom_cons_ed.png
374 
375 */
376 
378 
381 };
382 
383 ////////////////////////////////////////////////////////////////////////////////
384 /// Constructor for cone segment editor
385 
387  Int_t height, UInt_t options, Pixel_t back)
388  : TGeoConeEditor(p, width, height, options | kVerticalFrame, back)
389 {
390  fLock = kFALSE;
391  MakeTitle("Phi range");
392  TGTextEntry *nef;
394  // Vertical slider
395  fSPhi = new TGDoubleVSlider(compxyz,100);
396  fSPhi->SetRange(0.,720.);
397  fSPhi->Resize(fSPhi->GetDefaultWidth(), 100);
398  compxyz->AddFrame(fSPhi, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
399  TGCompositeFrame *f1 = new TGCompositeFrame(compxyz, 135, 100, kVerticalFrame | kFixedHeight);
400  f1->AddFrame(new TGLabel(f1, "Phi min."), new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 6, 0));
401  fEPhi1 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI1);
404  nef = (TGTextEntry*)fEPhi1->GetNumberEntry();
405  nef->SetToolTipText("Enter the phi1 value");
406  fEPhi1->Associate(this);
407  f1->AddFrame(fEPhi1, new TGLayoutHints(kLHintsTop | kLHintsRight, 2, 2, 2, 2));
408 
409  fEPhi2 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI2);
412  nef = (TGTextEntry*)fEPhi2->GetNumberEntry();
413  nef->SetToolTipText("Enter the phi2 value");
414  fEPhi2->Associate(this);
415  f1->AddFrame(fEPhi2, new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 2, 2));
416  f1->AddFrame(new TGLabel(f1, "Phi max."), new TGLayoutHints(kLHintsBottom, 0, 0, 6, 2));
417  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
418 
419 // compxyz->Resize(150,150);
420  AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
423 }
424 
425 ////////////////////////////////////////////////////////////////////////////////
426 /// Destructor
427 
429 {
430  TGFrameElement *el;
431  TIter next(GetList());
432  while ((el = (TGFrameElement *)next())) {
433  if (el->fFrame->IsComposite())
435  }
436  Cleanup();
437 }
438 
439 ////////////////////////////////////////////////////////////////////////////////
440 /// Connect signals to slots.
441 
443 {
445  Disconnect(fApply, "Clicked()",(TGeoConeEditor*)this, "DoApply()");
446  Disconnect(fUndo, "Clicked()",(TGeoConeEditor*)this, "DoUndo()");
447  fApply->Connect("Clicked()", "TGeoConeSegEditor", this, "DoApply()");
448  fUndo->Connect("Clicked()", "TGeoConeSegEditor", this, "DoUndo()");
449  fEPhi1->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi1()");
450  fEPhi2->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi2()");
451 // fEPhi1->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi1()");
452 // fEPhi2->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi2()");
453  fSPhi->Connect("PositionChanged()","TGeoConeSegEditor", this, "DoPhi()");
454 }
455 
456 ////////////////////////////////////////////////////////////////////////////////
457 /// Connect to the selected object.
458 
460 {
461  if (obj == 0 || (obj->IsA()!=TGeoConeSeg::Class())) {
462  SetActive(kFALSE);
463  return;
464  }
465  fShape = (TGeoCone*)obj;
466  fRmini1 = fShape->GetRmin1();
467  fRmaxi1 = fShape->GetRmax1();
468  fRmini2 = fShape->GetRmin2();
469  fRmaxi2 = fShape->GetRmax2();
470  fDzi = fShape->GetDz();
471  fNamei = fShape->GetName();
472  fPmini = ((TGeoConeSeg*)fShape)->GetPhi1();
473  fPmaxi = ((TGeoConeSeg*)fShape)->GetPhi2();
482  fEDz->SetNumber(fDzi);
485 
487  SetActive();
488 }
489 
490 ////////////////////////////////////////////////////////////////////////////////
491 ///Slot for Phi1
492 
494 {
495  Double_t phi1 = fEPhi1->GetNumber();
496  Double_t phi2 = fEPhi2->GetNumber();
497  if (phi1 > 360-1.e-10) {
498  phi1 = 0.;
499  fEPhi1->SetNumber(phi1);
500  }
501  if (phi2<phi1+1.e-10) {
502  phi1 = phi2 - 0.1;
503  fEPhi1->SetNumber(phi1);
504  }
505  if (!fLock) {
506  DoModified();
507  fLock = kTRUE;
508  fSPhi->SetPosition(phi1,phi2);
509  } else fLock = kFALSE;
510  if (!IsDelayed()) DoApply();
511 }
512 
513 ////////////////////////////////////////////////////////////////////////////////
514 /// Slot for Phi2
515 
517 {
518  Double_t phi1 = fEPhi1->GetNumber();
519  Double_t phi2 = fEPhi2->GetNumber();
520  if (phi2-phi1 > 360.) {
521  phi2 -= 360.;
522  fEPhi2->SetNumber(phi2);
523  }
524  if (phi2<phi1+1.e-10) {
525  phi2 = phi1 + 0.1;
526  fEPhi2->SetNumber(phi2);
527  }
528  if (!fLock) {
529  DoModified();
530  fLock = kTRUE;
531  fSPhi->SetPosition(phi1,phi2);
532  } else fLock = kFALSE;
533  if (!IsDelayed()) DoApply();
534 }
535 
536 ////////////////////////////////////////////////////////////////////////////////
537 /// Slot for Phi
538 
540 {
541  if (!fLock) {
542  DoModified();
543  fLock = kTRUE;
545  fLock = kTRUE;
547  } else fLock = kFALSE;
548  if (!IsDelayed()) DoApply();
549 }
550 
551 ////////////////////////////////////////////////////////////////////////////////
552 /// Slot for applying current parameters.
553 
555 {
557  const char *name = fShapeName->GetText();
558  if (strcmp(name,fShape->GetName())) fShape->SetName(name);
559  Double_t rmin1 = fERmin1->GetNumber();
560  Double_t rmax1 = fERmax1->GetNumber();
561  if (rmin1<0 || rmax1<rmin1) return;
562  Double_t rmin2 = fERmin2->GetNumber();
563  Double_t rmax2 = fERmax2->GetNumber();
564  if (rmin2<0 || rmax2<rmin2) return;
565  Double_t dz = fEDz->GetNumber();
566  Double_t phi1 = fEPhi1->GetNumber();
567  Double_t phi2 = fEPhi2->GetNumber();
568  if ((phi2-phi1) > 360.001) {
569  phi1 = 0.;
570  phi2 = 360.;
571  fEPhi1->SetNumber(phi1);
572  fEPhi2->SetNumber(phi2);
573  fLock = kTRUE;
574  fSPhi->SetPosition(phi1,phi2);
575  fLock = kFALSE;
576  }
577  ((TGeoConeSeg*)fShape)->SetConsDimensions(dz, rmin1, rmax1, rmin2,rmax2, phi1, phi2);
578  fShape->ComputeBBox();
579  fUndo->SetEnabled();
580  if (fPad) {
582  fShape->Draw();
583  fPad->GetView()->ShowAxis();
584  } else Update();
585  }
586 }
587 
588 ////////////////////////////////////////////////////////////////////////////////
589 /// Slot for undoing last operation.
590 
592 {
597  fEDz->SetNumber(fDzi);
601  DoApply();
604 }
605 
606 
607 
608 
virtual Float_t GetMinPosition() const
TGNumberEntry * fEPhi1
TGNumberEntry * fEPhi2
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
Double_t fRmaxi1
TGNumberEntry * fEDz
virtual Float_t GetMaxPosition() const
void DoPhi1()
Slot for Phi1.
virtual void DoUndo()
Slot for undoing last operation.
TGeoConeEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for volume editor.
TVirtualGeoPainter * GetPainter() const
Definition: TGeoManager.h:190
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
virtual void SetName(const char *name)
Set the name of the TNamed.
Definition: TNamed.cxx:140
virtual void SetNumber(Double_t val)
Double_t fRmini2
void DoModified()
Slot for modifying current parameters.
TGNumberEntry * fERmin1
virtual void ComputeBBox()
compute bounding box of the sphere
Definition: TGeoCone.cxx:171
virtual ~TGeoConeEditor()
Destructor.
virtual Bool_t IsPaintingShape() const =0
Bool_t fIsShapeEditable
virtual void DoApply()
Slot for applying current parameters.
ETGeoConeWid
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual Double_t GetRmin2() const
Definition: TGeoCone.h:75
virtual Bool_t IsComposite() const
Definition: TGFrame.h:259
virtual void SetRange(Float_t min, Float_t max)
virtual void SetModel(TObject *obj)
Connect to the selected object.
void DoRmin2()
Slot for Rmin2.
Editor for a cone segment.
TGCheckButton * fDelayed
TGeoCone * fShape
static void Cleanup(TGCompositeFrame *frame)
Static method to cleanup hierarchically all daughters of a composite frame.
virtual void SetModel(TObject *obj)
Connect to the selected object.
Editor for a TGeoCone.
ULong_t Pixel_t
Definition: GuiTypes.h:39
A phi segment of a conical tube.
Definition: TGeoCone.h:98
void Class()
Definition: Class.C:29
TGNumberEntry * fERmin2
TGDoubleVSlider * fSPhi
virtual void SetActive(Bool_t active=kTRUE)
Set active GUI attribute frames related to the selected object.
TGCompositeFrame(const TGCompositeFrame &)
virtual TList * GetList() const
Definition: TGFrame.h:369
virtual EButtonState GetState() const
Definition: TGButton.h:112
ETGeoConeSegWid
virtual TView * GetView() const =0
void DoPhi2()
Slot for Phi2.
virtual Double_t GetDz() const
Definition: TGeoCone.h:68
virtual const char * GetName() const
Get the shape name.
Definition: TGeoShape.cxx:248
void DoRmax1()
Slot for Rmax1.
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:867
virtual void Associate(const TGWindow *w)
Make w the window that will receive the generated messages.
TGNumberEntry * fERmax1
virtual void DoApply()
Slot for applying current parameters.
virtual Double_t GetRmin1() const
Definition: TGeoCone.h:73
virtual void DoUndo()
Slot for undoing current operation.
Double_t fRmaxi2
virtual void SetSize(const TGDimension &s)
Definition: TGFrame.h:299
void DoRmax2()
Slot for Rmax2.
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:84
virtual Double_t GetRmax1() const
Definition: TGeoCone.h:74
TGTextEntry * fShapeName
unsigned int UInt_t
Definition: RtypesCore.h:42
TGFrame * fFrame
Definition: TGLayout.h:119
virtual void ShowAxis()=0
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:237
static void MoveFrame(TGCompositeFrame *fr, TGCompositeFrame *p)
Move frame fr at the end of the list of parent p.
void SetNumAttr(EAttribute attr=kNEAAnyNumber)
const Bool_t kFALSE
Definition: RtypesCore.h:88
TGDimension GetSize() const
Definition: TGFrame.h:277
const char * GetText() const
Definition: TGTextEntry.h:134
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:238
#define ClassImp(name)
Definition: Rtypes.h:359
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:559
void DoPhi()
Slot for Phi.
double Double_t
Definition: RtypesCore.h:55
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:409
virtual void ConnectSignals2Slots()
Connect signals to slots.
virtual ~TGeoConeSegEditor()
Destructor.
virtual Double_t GetNumber() const
Conical tube class.
Definition: TGeoCone.h:17
Double_t fRmini1
void DoRmin1()
Slot for Rmin1.
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:1025
TGeoConeSegEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for cone segment editor.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Definition: TRolke.cxx:630
TGCompositeFrame * fDFrame
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
void DoDz()
Slot for Dz.
virtual Double_t GetRmax2() const
Definition: TGeoCone.h:76
Mother of all ROOT objects.
Definition: TObject.h:37
void SetConeDimensions(Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Set cone dimensions.
Definition: TGeoCone.cxx:936
TGNumberEntry * fERmax2
Bool_t fInit
Definition: TGedFrame.h:53
TGNumberEntryField * GetNumberEntry() const
virtual void ConnectSignals2Slots()
Connect signals to slots.
TF1 * f1
Definition: legend1.C:11
virtual void SetPosition(Float_t min, Float_t max)
virtual void Update()
Override Update from TGedFrame as fGedEditor can be null.
TGCompositeFrame * fBFrame
TGTextButton * fApply
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line...
TVirtualPad * fPad
Definition: TGeoGedFrame.h:18
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
Definition: TGFrame.cxx:949
virtual void Draw(Option_t *option="")
Draw this shape.
Definition: TGeoShape.cxx:721
Bool_t IsDelayed() const
Check if shape drawing is delayed.
const Bool_t kTRUE
Definition: RtypesCore.h:87
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition: TGedFrame.cxx:96
char name[80]
Definition: TGX11.cxx:109
TGTextButton * fUndo
UInt_t GetDefaultHeight() const
Common base class for geombuilder editors.
Definition: TGeoGedFrame.h:13
void DoName()
Slot for name.