7 ClassImp(TPieSliceEditor);
11 kPieSlice_Title = 0, kPieSlice_Value, kPieSlice_Offset
18 TPieSliceEditor::TPieSliceEditor(
const TGWindow *p,
19 Int_t width, Int_t height,
20 UInt_t options, Pixel_t back)
21 : TGedFrame(p, width, height, options | kVerticalFrame, back)
28 fTitle =
new TGTextEntry(
this,
new TGTextBuffer(50), kPieSlice_Title);
29 fTitle->Resize(135, fTitle->GetDefaultHeight());
30 fTitle->SetToolTipText(
"Enter the pie-slice label");
32 AddFrame(fTitle,
new TGLayoutHints(kLHintsLeft, 3, 1, 2, 5));
34 TGCompositeFrame *f1 =
new TGCompositeFrame(
this, 120, 20, kHorizontalFrame);
35 TGLabel *lbl1 =
new TGLabel(f1,
"Value");
36 fValue =
new TGNumberEntry(f1, 2, 2, kPieSlice_Value, TGNumberEntry::kNESReal, TGNumberEntry::kNEANonNegative);
38 fValue->Resize(50, 20);
39 f1->AddFrame(lbl1,
new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
40 f1->AddFrame(fValue,
new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
41 AddFrame(f1,
new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
43 TGCompositeFrame *f2 =
new TGCompositeFrame(
this, 120, 20, kHorizontalFrame);
44 TGLabel *lbl2 =
new TGLabel(f2,
"Rad Offset");
45 fOffset =
new TGNumberEntry(f2, 4, 2, kPieSlice_Offset, TGNumberEntry::kNESRealTwo, TGNumberEntry::kNEANonNegative);
47 fOffset->Resize(50, 20);
48 f2->AddFrame(lbl2,
new TGLayoutHints(kLHintsLeft,1, 1, 1, 1));
49 f2->AddFrame(fOffset,
new TGLayoutHints(kLHintsLeft, 7, 1, 1, 1));
50 AddFrame(f2,
new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
57 TPieSliceEditor::~TPieSliceEditor()
65 void TPieSliceEditor::SetModel(TObject *obj)
67 fPieSlice = (TPieSlice*) (obj);
70 fTitle->SetText(fPieSlice->GetTitle());
71 fValue->SetNumber(fPieSlice->GetValue());
72 fOffset->SetNumber(fPieSlice->GetRadiusOffset());
74 if (fInit) ConnectSignals2Slots();
75 fAvoidSignal = kFALSE;
82 void TPieSliceEditor::ConnectSignals2Slots()
84 fTitle->Connect(
"TextChanged(const char *)",
"TPieSliceEditor",
this,
"DoTitle(const char *)");
85 fValue->Connect(
"ValueSet(Long_t)",
"TPieSliceEditor",
this,
"DoValue()");
86 fOffset->Connect(
"ValueSet(Long_t)",
"TPieSliceEditor",
this,
"DoOffset()");
95 void TPieSliceEditor::DoTitle(
const char *text)
97 if (fAvoidSignal)
return;
98 fPieSlice->SetTitle(text);
106 void TPieSliceEditor::DoValue()
108 if (fAvoidSignal)
return;
110 fPieSlice->SetValue(fValue->GetNumber());
118 void TPieSliceEditor::DoOffset()
120 if (fAvoidSignal)
return;
122 fPieSlice->SetRadiusOffset(fOffset->GetNumber());