ROOT  6.06/09
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 //////////////////////////////////////////////////////////////////////////
13 // //
14 // TGeoConeEditor //
15 // //
16 //////////////////////////////////////////////////////////////////////////
17 //Begin_Html
18 /*
19 <img src="gif/cone_pic.gif">
20 */
21 //End_Html
22 //Begin_Html
23 /*
24 <img src="gif/cone_ed.jpg">
25 */
26 //End_Html
27 
28 #include "TGeoConeEditor.h"
29 #include "TGeoTabManager.h"
30 #include "TGeoCone.h"
31 #include "TGeoManager.h"
32 #include "TVirtualGeoPainter.h"
33 #include "TPad.h"
34 #include "TView.h"
35 #include "TGTab.h"
36 #include "TGComboBox.h"
37 #include "TGButton.h"
38 #include "TGTextEntry.h"
39 #include "TGNumberEntry.h"
40 #include "TGLabel.h"
41 #include "TGDoubleSlider.h"
42 
44 
45 enum ETGeoConeWid {
46  kCONE_NAME, kCONE_RMIN1, kCONE_RMIN2, kCONE_RMAX1, kCONE_RMAX2, kCONE_Z,
47  kCONE_APPLY, kCONE_UNDO
48 };
49 
50 ////////////////////////////////////////////////////////////////////////////////
51 /// Constructor for volume editor
52 
54  Int_t height, UInt_t options, Pixel_t back)
55  : TGeoGedFrame(p, width, height, options | kVerticalFrame, back)
56 {
57  fShape = 0;
58  fRmini1 = fRmaxi1 = fRmini2 = fRmaxi2 = fDzi = 0.0;
59  fNamei = "";
62 
63  // TextEntry for shape name
64  MakeTitle("Name");
65  fShapeName = new TGTextEntry(this, new TGTextBuffer(50), kCONE_NAME);
67  fShapeName->SetToolTipText("Enter the cone name");
68  fShapeName->Associate(this);
69  AddFrame(fShapeName, new TGLayoutHints(kLHintsLeft, 3, 1, 2, 5));
70 
71  TGTextEntry *nef;
72  MakeTitle("Cone dimensions");
73  TGCompositeFrame *compxyz = new TGCompositeFrame(this, 118, 30, kVerticalFrame | kRaisedFrame);
74 
75  // Number entry for Rmin1
77  f1->AddFrame(new TGLabel(f1, "Rmin1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
78  fERmin1 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN1);
81  nef->SetToolTipText("Enter the inner radius");
82  fERmin1->Associate(this);
84  f1->AddFrame(fERmin1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
85  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
86 
87  // Number entry for Rmax1
88  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
89  f1->AddFrame(new TGLabel(f1, "Rmax1"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
90  fERmax1 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX1);
93  nef->SetToolTipText("Enter the outer radius");
94  fERmax1->Associate(this);
96  f1->AddFrame(fERmax1, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
97  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
98 
99  // Number entry for Rmin2
100  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
101  f1->AddFrame(new TGLabel(f1, "Rmin2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
102  fERmin2 = new TGNumberEntry(f1, 0., 5, kCONE_RMIN2);
105  nef->SetToolTipText("Enter the inner radius");
106  fERmin2->Associate(this);
108  f1->AddFrame(fERmin2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
109  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
110 
111  // Number entry for Rmax2
112  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
113  f1->AddFrame(new TGLabel(f1, "Rmax2"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
114  fERmax2 = new TGNumberEntry(f1, 0., 5, kCONE_RMAX2);
117  nef->SetToolTipText("Enter the outer radius");
118  fERmax2->Associate(this);
120  f1->AddFrame(fERmax2, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
121  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
122 
123  // Number entry for dz
124  f1 = new TGCompositeFrame(compxyz, 155, 30, kHorizontalFrame | kFixedWidth);
125  f1->AddFrame(new TGLabel(f1, "DZ"), new TGLayoutHints(kLHintsLeft, 1, 1, 6, 0));
126  fEDz = new TGNumberEntry(f1, 0., 5, kCONE_Z);
128  nef = (TGTextEntry*)fEDz->GetNumberEntry();
129  nef->SetToolTipText("Enter the cone half-lenth in Z");
130  fEDz->Associate(this);
131  fEDz->Resize(100, fEDz->GetDefaultHeight());
132  f1->AddFrame(fEDz, new TGLayoutHints(kLHintsRight, 2, 2, 2, 2));
133  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 0, 0));
134 
135  compxyz->Resize(150,30);
136  AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
137 
138  // Delayed draw
140  fDelayed = new TGCheckButton(fDFrame, "Delayed draw");
141  fDFrame->AddFrame(fDelayed, new TGLayoutHints(kLHintsLeft , 2, 2, 2, 2));
142  AddFrame(fDFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
143 
144  // Buttons
145  fBFrame = new TGCompositeFrame(this, 155, 10, kHorizontalFrame | kFixedWidth);
146  fApply = new TGTextButton(fBFrame, "Apply");
147  fBFrame->AddFrame(fApply, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
148  fApply->Associate(this);
149  fUndo = new TGTextButton(fBFrame, "Undo");
150  fBFrame->AddFrame(fUndo, new TGLayoutHints(kLHintsRight , 2, 2, 4, 4));
151  fUndo->Associate(this);
152  AddFrame(fBFrame, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
154 }
155 
156 ////////////////////////////////////////////////////////////////////////////////
157 /// Destructor
158 
160 {
161  TGFrameElement *el;
162  TIter next(GetList());
163  while ((el = (TGFrameElement *)next())) {
164  if (el->fFrame->IsComposite())
166  }
167  Cleanup();
168 }
169 
170 ////////////////////////////////////////////////////////////////////////////////
171 /// Connect signals to slots.
172 
174 {
175  fApply->Connect("Clicked()", "TGeoConeEditor", this, "DoApply()");
176  fUndo->Connect("Clicked()", "TGeoConeEditor", this, "DoUndo()");
177  fShapeName->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoModified()");
178  fERmin1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin1()");
179  fERmin2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmin2()");
180  fERmax1->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax1()");
181  fERmax2->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoRmax2()");
182  fEDz->Connect("ValueSet(Long_t)", "TGeoConeEditor", this, "DoDz()");
183  fERmin1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin1()");
184  fERmin2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmin2()");
185  fERmax1->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax1()");
186  fERmax2->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoRmax2()");
187  fEDz->GetNumberEntry()->Connect("TextChanged(const char *)", "TGeoConeEditor", this, "DoDz()");
188  fInit = kFALSE;
189 }
190 
191 
192 ////////////////////////////////////////////////////////////////////////////////
193 /// Connect to the selected object.
194 
196 {
197  if (obj == 0 || (obj->IsA()!=TGeoCone::Class())) {
198  SetActive(kFALSE);
199  return;
200  }
201  fShape = (TGeoCone*)obj;
202  fRmini1 = fShape->GetRmin1();
203  fRmini2 = fShape->GetRmin2();
204  fRmaxi1 = fShape->GetRmax1();
205  fRmaxi2 = fShape->GetRmax2();
206  fDzi = fShape->GetDz();
207  fNamei = fShape->GetName();
213  fEDz->SetNumber(fDzi);
216 
218  SetActive();
219 }
220 
221 ////////////////////////////////////////////////////////////////////////////////
222 /// Check if shape drawing is delayed.
223 
225 {
226  return (fDelayed->GetState() == kButtonDown);
227 }
228 
229 ////////////////////////////////////////////////////////////////////////////////
230 /// Slot for name.
231 
233 {
234  DoModified();
235 }
236 
237 ////////////////////////////////////////////////////////////////////////////////
238 ///Slot for applying current parameters.
239 
241 {
243  const char *name = fShapeName->GetText();
244  if (strcmp(name,fShape->GetName())) fShape->SetName(name);
245  Double_t rmin1 = fERmin1->GetNumber();
246  Double_t rmin2 = fERmin2->GetNumber();
247  Double_t rmax1 = fERmax1->GetNumber();
248  Double_t rmax2 = fERmax2->GetNumber();
249  Double_t dz = fEDz->GetNumber();
250  if (rmin1<0 || rmin1>rmax1) return;
251  if (rmin2<0 || rmin2>rmax2) return;
252  if (dz<=0) return;
253  if (rmin1==rmax1 && rmin2==rmax2) return;
254  fShape->SetConeDimensions(dz, rmin1, rmax1, rmin2, rmax2);
255  fShape->ComputeBBox();
256  fUndo->SetEnabled();
257  if (fPad) {
259  fShape->Draw();
260  fPad->GetView()->ShowAxis();
261  } else Update();
262  }
263 }
264 
265 ////////////////////////////////////////////////////////////////////////////////
266 ///Slot for modifing current parameters.
267 
269 {
270  fApply->SetEnabled();
271 }
272 
273 ////////////////////////////////////////////////////////////////////////////////
274 /// Slot for undoing current operation.
275 
277 {
282  fEDz->SetNumber(fDzi);
283  DoApply();
286 }
287 
288 ////////////////////////////////////////////////////////////////////////////////
289 /// Slot for Rmin1
290 
292 {
293  Double_t rmin1 = fERmin1->GetNumber();
294  Double_t rmax1 = fERmax1->GetNumber();
295  if (rmin1<0) {
296  rmin1 = 0;
297  fERmin1->SetNumber(rmin1);
298  }
299  if (rmin1>rmax1) {
300  rmin1 = rmax1;
301  fERmin1->SetNumber(rmin1);
302  }
303  DoModified();
304  if (!IsDelayed()) DoApply();
305 }
306 
307 ////////////////////////////////////////////////////////////////////////////////
308 /// Slot for Rmax1
309 
311 {
312  Double_t rmin1 = fERmin1->GetNumber();
313  Double_t rmax1 = fERmax1->GetNumber();
314  if (rmax1<rmin1) {
315  rmax1 = rmin1;
316  fERmax1->SetNumber(rmax1);
317  }
318  DoModified();
319  if (!IsDelayed()) DoApply();
320 }
321 
322 ////////////////////////////////////////////////////////////////////////////////
323 /// Slot for Rmin2
324 
326 {
327  Double_t rmin2 = fERmin2->GetNumber();
328  Double_t rmax2 = fERmax2->GetNumber();
329  if (rmin2<0) {
330  rmin2 = 0;
331  fERmin2->SetNumber(rmin2);
332  }
333  if (rmin2>rmax2) {
334  rmin2 = rmax2;
335  fERmin2->SetNumber(rmin2);
336  }
337  DoModified();
338  if (!IsDelayed()) DoApply();
339 }
340 
341 ////////////////////////////////////////////////////////////////////////////////
342 /// Slot for Rmax2
343 
345 {
346  Double_t rmin2 = fERmin2->GetNumber();
347  Double_t rmax2 = fERmax2->GetNumber();
348  if (rmax2<rmin2) {
349  rmax2 = rmin2;
350  fERmax2->SetNumber(rmax2);
351  }
352  DoModified();
353  if (!IsDelayed()) DoApply();
354 }
355 
356 ////////////////////////////////////////////////////////////////////////////////
357 /// Slot for Dz
358 
360 {
361  Double_t dz = fEDz->GetNumber();
362  if (dz<=0) {
363  dz = 0.1;
364  fEDz->SetNumber(dz);
365  }
366  DoModified();
367  if (!IsDelayed()) DoApply();
368 }
369 
370 //////////////////////////////////////////////////////////////////////////
371 // //
372 // TGeoConeSegEditor //
373 // //
374 //////////////////////////////////////////////////////////////////////////
375 //Begin_Html
376 /*
377 <img src="gif/cons_pic.gif">
378 */
379 //End_Html
380 //Begin_Html
381 /*
382 <img src="gif/cons_ed.jpg">
383 */
384 //End_Html
385 
387 
388 enum ETGeoConeSegWid {
389  kCONESEG_PHI1, kCONESEG_PHI2, kCONESEG_PHI
390 };
391 
392 ////////////////////////////////////////////////////////////////////////////////
393 /// Constructor for cone segment editor
394 
396  Int_t height, UInt_t options, Pixel_t back)
397  : TGeoConeEditor(p, width, height, options | kVerticalFrame, back)
398 {
399  fLock = kFALSE;
400  MakeTitle("Phi range");
401  TGTextEntry *nef;
403  // Vertical slider
404  fSPhi = new TGDoubleVSlider(compxyz,100);
405  fSPhi->SetRange(0.,720.);
406  fSPhi->Resize(fSPhi->GetDefaultWidth(), 100);
407  compxyz->AddFrame(fSPhi, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
408  TGCompositeFrame *f1 = new TGCompositeFrame(compxyz, 135, 100, kVerticalFrame | kFixedHeight);
409  f1->AddFrame(new TGLabel(f1, "Phi min."), new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 6, 0));
410  fEPhi1 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI1);
413  nef = (TGTextEntry*)fEPhi1->GetNumberEntry();
414  nef->SetToolTipText("Enter the phi1 value");
415  fEPhi1->Associate(this);
416  f1->AddFrame(fEPhi1, new TGLayoutHints(kLHintsTop | kLHintsRight, 2, 2, 2, 2));
417 
418  fEPhi2 = new TGNumberEntry(f1, 0., 5, kCONESEG_PHI2);
421  nef = (TGTextEntry*)fEPhi2->GetNumberEntry();
422  nef->SetToolTipText("Enter the phi2 value");
423  fEPhi2->Associate(this);
424  f1->AddFrame(fEPhi2, new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 2, 2));
425  f1->AddFrame(new TGLabel(f1, "Phi max."), new TGLayoutHints(kLHintsBottom, 0, 0, 6, 2));
426  compxyz->AddFrame(f1, new TGLayoutHints(kLHintsLeft, 2, 2, 4, 4));
427 
428 // compxyz->Resize(150,150);
429  AddFrame(compxyz, new TGLayoutHints(kLHintsLeft, 6, 6, 4, 4));
432 }
433 
434 ////////////////////////////////////////////////////////////////////////////////
435 /// Destructor
436 
438 {
439  TGFrameElement *el;
440  TIter next(GetList());
441  while ((el = (TGFrameElement *)next())) {
442  if (el->fFrame->IsComposite())
444  }
445  Cleanup();
446 }
447 
448 ////////////////////////////////////////////////////////////////////////////////
449 /// Connect signals to slots.
450 
452 {
454  Disconnect(fApply, "Clicked()",(TGeoConeEditor*)this, "DoApply()");
455  Disconnect(fUndo, "Clicked()",(TGeoConeEditor*)this, "DoUndo()");
456  fApply->Connect("Clicked()", "TGeoConeSegEditor", this, "DoApply()");
457  fUndo->Connect("Clicked()", "TGeoConeSegEditor", this, "DoUndo()");
458  fEPhi1->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi1()");
459  fEPhi2->Connect("ValueSet(Long_t)", "TGeoConeSegEditor", this, "DoPhi2()");
460 // fEPhi1->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi1()");
461 // fEPhi2->GetNumberEntry()->Connect("TextChanged(const char *)","TGeoConeSegEditor", this, "DoPhi2()");
462  fSPhi->Connect("PositionChanged()","TGeoConeSegEditor", this, "DoPhi()");
463 }
464 
465 ////////////////////////////////////////////////////////////////////////////////
466 /// Connect to the selected object.
467 
469 {
470  if (obj == 0 || (obj->IsA()!=TGeoConeSeg::Class())) {
471  SetActive(kFALSE);
472  return;
473  }
474  fShape = (TGeoCone*)obj;
475  fRmini1 = fShape->GetRmin1();
476  fRmaxi1 = fShape->GetRmax1();
477  fRmini2 = fShape->GetRmin2();
478  fRmaxi2 = fShape->GetRmax2();
479  fDzi = fShape->GetDz();
480  fNamei = fShape->GetName();
481  fPmini = ((TGeoConeSeg*)fShape)->GetPhi1();
482  fPmaxi = ((TGeoConeSeg*)fShape)->GetPhi2();
491  fEDz->SetNumber(fDzi);
494 
496  SetActive();
497 }
498 
499 ////////////////////////////////////////////////////////////////////////////////
500 ///Slot for Phi1
501 
503 {
504  Double_t phi1 = fEPhi1->GetNumber();
505  Double_t phi2 = fEPhi2->GetNumber();
506  if (phi1 > 360-1.e-10) {
507  phi1 = 0.;
508  fEPhi1->SetNumber(phi1);
509  }
510  if (phi2<phi1+1.e-10) {
511  phi1 = phi2 - 0.1;
512  fEPhi1->SetNumber(phi1);
513  }
514  if (!fLock) {
515  DoModified();
516  fLock = kTRUE;
517  fSPhi->SetPosition(phi1,phi2);
518  } else fLock = kFALSE;
519  if (!IsDelayed()) DoApply();
520 }
521 
522 ////////////////////////////////////////////////////////////////////////////////
523 /// Slot for Phi2
524 
526 {
527  Double_t phi1 = fEPhi1->GetNumber();
528  Double_t phi2 = fEPhi2->GetNumber();
529  if (phi2-phi1 > 360.) {
530  phi2 -= 360.;
531  fEPhi2->SetNumber(phi2);
532  }
533  if (phi2<phi1+1.e-10) {
534  phi2 = phi1 + 0.1;
535  fEPhi2->SetNumber(phi2);
536  }
537  if (!fLock) {
538  DoModified();
539  fLock = kTRUE;
540  fSPhi->SetPosition(phi1,phi2);
541  } else fLock = kFALSE;
542  if (!IsDelayed()) DoApply();
543 }
544 
545 ////////////////////////////////////////////////////////////////////////////////
546 /// Slot for Phi
547 
549 {
550  if (!fLock) {
551  DoModified();
552  fLock = kTRUE;
554  fLock = kTRUE;
556  } else fLock = kFALSE;
557  if (!IsDelayed()) DoApply();
558 }
559 
560 ////////////////////////////////////////////////////////////////////////////////
561 /// Slot for applying current parameters.
562 
564 {
566  const char *name = fShapeName->GetText();
567  if (strcmp(name,fShape->GetName())) fShape->SetName(name);
568  Double_t rmin1 = fERmin1->GetNumber();
569  Double_t rmax1 = fERmax1->GetNumber();
570  if (rmin1<0 || rmax1<rmin1) return;
571  Double_t rmin2 = fERmin2->GetNumber();
572  Double_t rmax2 = fERmax2->GetNumber();
573  if (rmin2<0 || rmax2<rmin2) return;
574  Double_t dz = fEDz->GetNumber();
575  Double_t phi1 = fEPhi1->GetNumber();
576  Double_t phi2 = fEPhi2->GetNumber();
577  if ((phi2-phi1) > 360.001) {
578  phi1 = 0.;
579  phi2 = 360.;
580  fEPhi1->SetNumber(phi1);
581  fEPhi2->SetNumber(phi2);
582  fLock = kTRUE;
583  fSPhi->SetPosition(phi1,phi2);
584  fLock = kFALSE;
585  }
586  ((TGeoConeSeg*)fShape)->SetConsDimensions(dz, rmin1, rmax1, rmin2,rmax2, phi1, phi2);
587  fShape->ComputeBBox();
588  fUndo->SetEnabled();
589  if (fPad) {
591  fShape->Draw();
592  fPad->GetView()->ShowAxis();
593  } else Update();
594  }
595 }
596 
597 ////////////////////////////////////////////////////////////////////////////////
598 /// Slot for undoing last operation.
599 
601 {
606  fEDz->SetNumber(fDzi);
610  DoApply();
613 }
614 
615 
616 
617 
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 Double_t GetRmin1() const
Definition: TGeoCone.h:87
void DoPhi1()
Slot for Phi1.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
virtual Double_t GetRmax2() const
Definition: TGeoCone.h:90
virtual Bool_t IsComposite() const
Definition: TGFrame.h:275
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.
ClassImp(TGeoConeEditor) enum ETGeoConeWid
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)
Change (i.e.
Definition: TNamed.cxx:128
virtual void SetNumber(Double_t val)
Double_t fRmini2
void DoModified()
Slot for modifing current parameters.
TGNumberEntry * fERmin1
virtual void ComputeBBox()
compute bounding box of the sphere
Definition: TGeoCone.cxx:165
virtual ~TGeoConeEditor()
Destructor.
virtual Bool_t IsPaintingShape() const =0
Bool_t fIsShapeEditable
virtual TList * GetList() const
Definition: TGFrame.h:385
virtual void DoApply()
Slot for applying current parameters.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual void SetRange(Float_t min, Float_t max)
virtual void SetModel(TObject *obj)
Connect to the selected object.
void DoRmin2()
Slot for Rmin2.
virtual Double_t GetRmax1() const
Definition: TGeoCone.h:88
TGCheckButton * fDelayed
TGeoCone * fShape
static void Cleanup(TGCompositeFrame *frame)
Static method to cleanup hirarchically all daughters of a composite frame.
virtual void SetModel(TObject *obj)
Connect to the selected object.
TGNumberEntryField * GetNumberEntry() const
Bool_t IsDelayed() const
Check if shape drawing is delayed.
ULong_t Pixel_t
Definition: GuiTypes.h:41
void Class()
Definition: Class.C:29
TGNumberEntry * fERmin2
TGDoubleVSlider * fSPhi
const char * GetText() const
Definition: TGTextEntry.h:140
TVirtualGeoPainter * GetPainter() const
Definition: TGeoManager.h:193
virtual void SetActive(Bool_t active=kTRUE)
Set active GUI attribute frames related to the selected object.
TGCompositeFrame(const TGCompositeFrame &)
virtual UInt_t GetDefaultWidth() const
Definition: TGFrame.h:253
virtual TView * GetView() const =0
void DoPhi2()
Slot for Phi2.
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:1135
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 void DoUndo()
Slot for undoing current operation.
Double_t fRmaxi2
virtual void SetSize(const TGDimension &s)
Definition: TGFrame.h:315
virtual Double_t GetRmin2() const
Definition: TGeoCone.h:89
virtual EButtonState GetState() const
Definition: TGButton.h:116
void DoRmax2()
Slot for Rmax2.
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:90
TGTextEntry * fShapeName
unsigned int UInt_t
Definition: RtypesCore.h:42
TGFrame * fFrame
Definition: TGLayout.h:125
virtual void ShowAxis()=0
virtual Double_t GetDz() const
Definition: TGeoCone.h:82
static void MoveFrame(TGCompositeFrame *fr, TGCompositeFrame *p)
Move frame fr at the end of the list of parent p.
virtual const char * GetName() const
Get the shape name.
Definition: TGeoShape.cxx:247
void SetNumAttr(EAttribute attr=kNEAAnyNumber)
R__EXTERN TGeoManager * gGeoManager
Definition: TGeoManager.h:556
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.
TGDimension GetSize() const
Definition: TGFrame.h:293
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:1293
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.
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.
#define name(a, b)
Definition: linkTestLib0.cpp:5
Mother of all ROOT objects.
Definition: TObject.h:58
void SetConeDimensions(Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Set cone dimensions.
Definition: TGeoCone.cxx:925
TGNumberEntry * fERmax2
Bool_t fInit
Definition: TGedFrame.h:55
virtual UInt_t GetDefaultHeight() const
Definition: TGFrame.h:254
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
virtual Float_t GetMinPosition() const
TGTextButton * fApply
virtual Double_t GetNumber() const
virtual Float_t GetMaxPosition() const
UInt_t GetDefaultHeight() const
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:28
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:719
const Bool_t kTRUE
Definition: Rtypes.h:91
TObject * obj
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition: TGedFrame.cxx:96
TGTextButton * fUndo
void DoName()
Slot for name.