1 | // $Id: EFocalSurfacePainterEditor.cc 2782 2007-07-16 09:25:45Z thea $ |
---|
2 | // Author: Alessandro Thea 2005/02/20 |
---|
3 | |
---|
4 | /***************************************************************************** |
---|
5 | * ESAF: Euso Simulation and Analysis Framework * |
---|
6 | * * |
---|
7 | * Id: EFocalSurfacePainterEditor * |
---|
8 | * Package: <packagename> * |
---|
9 | * Coordinator: <coordinator> * |
---|
10 | * * |
---|
11 | *****************************************************************************/ |
---|
12 | |
---|
13 | //_____________________________________________________________________________ |
---|
14 | // |
---|
15 | // EFocalSurfacePainterEditor |
---|
16 | // |
---|
17 | // <extensive class description> |
---|
18 | // |
---|
19 | // Config file parameters |
---|
20 | // ====================== |
---|
21 | // |
---|
22 | // <parameter name>: <parameter description> |
---|
23 | // -Valid options: <available options> |
---|
24 | // |
---|
25 | |
---|
26 | #include "EFocalSurfacePainterEditor.hh" |
---|
27 | #include "ERunParameters.hh" |
---|
28 | |
---|
29 | #include "TGComboBox.h" |
---|
30 | #include "TGSlider.h" |
---|
31 | #include "TGLabel.h" |
---|
32 | #include "TGButton.h" |
---|
33 | #include "TGButtonGroup.h" |
---|
34 | #include "TGColorSelect.h" |
---|
35 | #include "TGTab.h" |
---|
36 | #include "TG3DLine.h" |
---|
37 | #include "TColor.h" |
---|
38 | #include "TGLabel.h" |
---|
39 | #include "TGNumberEntry.h" |
---|
40 | #include "TGedEditor.h" |
---|
41 | #include "Riostream.h" |
---|
42 | |
---|
43 | enum { |
---|
44 | kPMTCOLOR, |
---|
45 | kPMTOFFCOLOR, |
---|
46 | kPATTERN, |
---|
47 | kMAPID, |
---|
48 | kINTEGRAL, |
---|
49 | kTRIGGER, |
---|
50 | kTIME_INTEGRAL, |
---|
51 | kTHRES_SLIDER, |
---|
52 | kTHRES_NUMENTRY, |
---|
53 | kABS_THRESH, |
---|
54 | kGTU_COUNTER, |
---|
55 | kGTU_NUMENTRY, |
---|
56 | kCOUNTS_SLIDER, |
---|
57 | kCOUNTS_NUMENTRY, |
---|
58 | kEMPTY_PIXELS, |
---|
59 | kOFF_PIXELS, |
---|
60 | kPAINT_NG, |
---|
61 | kPAINT_NCNT |
---|
62 | }; |
---|
63 | |
---|
64 | |
---|
65 | ClassImp(TGedFrame) |
---|
66 | ClassImp(EFocalSurfacePainterEditor) |
---|
67 | |
---|
68 | //_____________________________________________________________________________ |
---|
69 | EFocalSurfacePainterEditor::EFocalSurfacePainterEditor( const TGWindow* p, Int_t width, |
---|
70 | Int_t height, UInt_t options, Pixel_t back ) |
---|
71 | : TGedFrame(p, width, height, options | kVerticalFrame, back), fPainter(0) { |
---|
72 | // |
---|
73 | // Constructor |
---|
74 | // |
---|
75 | |
---|
76 | fGarbage = new TList; |
---|
77 | TGCompositeFrame *h, *h1, *h2,*v; |
---|
78 | TGLayoutHints* lay; |
---|
79 | |
---|
80 | MakeTitle("Maps"); |
---|
81 | |
---|
82 | TGCompositeFrame *f2 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame); |
---|
83 | |
---|
84 | fMapIDCombo = BuildMapIDCombo(f2, kMAPID); |
---|
85 | f2->AddFrame(fMapIDCombo, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 1)); |
---|
86 | fMapIDCombo->Resize(145, 20); |
---|
87 | fMapIDCombo->Associate(this); |
---|
88 | AddFrame(f2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
89 | |
---|
90 | MakeTitle("Integral"); |
---|
91 | |
---|
92 | TGCompositeFrame *f15 = new TGCompositeFrame(this, 80, 20, kHorizontalFrame); |
---|
93 | |
---|
94 | fIntegralCombo = BuildIntegralCombo(f15, kINTEGRAL); |
---|
95 | f15->AddFrame(fIntegralCombo, new TGLayoutHints(kLHintsLeft, 3, 1, 1, 1)); |
---|
96 | fIntegralCombo->Resize(145, 20); |
---|
97 | fIntegralCombo->Associate(this); |
---|
98 | AddFrame(f15, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
99 | |
---|
100 | |
---|
101 | // View ////////////////////////////// |
---|
102 | MakeTitle("View"); |
---|
103 | |
---|
104 | v = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
105 | fGarbage->Add(v); |
---|
106 | h1 = new TGCompositeFrame(v, 80, 20, kHorizontalFrame); |
---|
107 | fGarbage->Add(h1); |
---|
108 | |
---|
109 | fViewRangeSlider = new TGHSlider(h1, 100, kSlider1 | kScaleBoth); |
---|
110 | fViewRangeSlider->Resize(120,20); |
---|
111 | fViewRangeSlider->SetRange(10,1250); |
---|
112 | fViewRangeSlider->SetScale(20); |
---|
113 | // fViewRangeSlider->SetPosition(5); |
---|
114 | // h1->AddFrame(fViewRangeSlider, new TGLayoutHints(kLHintsLeft, 3,0,0,3)); |
---|
115 | h1->AddFrame(fViewRangeSlider, new TGLayoutHints(kLHintsLeft, 0,0,0,0)); |
---|
116 | // v->AddFrame(h1, new TGLayoutHints(kLHintsTop, 15, 7, 5, 0)); |
---|
117 | v->AddFrame(h1, new TGLayoutHints(kLHintsTop, 3, 7, 4, 1)); |
---|
118 | |
---|
119 | // lettering of the Rebin Slider |
---|
120 | h2 = new TGCompositeFrame(v, 80, 20, kHorizontalFrame); |
---|
121 | fGarbage->Add(h2); |
---|
122 | |
---|
123 | fViewRMinLabel = new TGLabel(h2, "10 mm"); |
---|
124 | h2->AddFrame(fViewRMinLabel, new TGLayoutHints(kLHintsLeft, 8, 1, -1, 0)); |
---|
125 | fViewRMaxLabel = new TGLabel(h2, "1250 mm"); |
---|
126 | h2->AddFrame(fViewRMaxLabel, new TGLayoutHints(kLHintsLeft, 50, 3, -1, 0)); |
---|
127 | v->AddFrame(h2, new TGLayoutHints(kLHintsTop, 0, 0, 0, 0)); |
---|
128 | |
---|
129 | lay = new TGLayoutHints(kLHintsTop); |
---|
130 | fGarbage->Add(lay); |
---|
131 | |
---|
132 | AddFrame(v, lay); |
---|
133 | |
---|
134 | |
---|
135 | // GTU /////////////////////////////// |
---|
136 | MakeTitle("GTU"); |
---|
137 | |
---|
138 | v = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
139 | fGarbage->Add(v); |
---|
140 | |
---|
141 | h1 = new TGCompositeFrame(v, 80, 20, kHorizontalFrame); |
---|
142 | fGarbage->Add(h1); |
---|
143 | // Slider |
---|
144 | fGtuSlider = new TGHSlider(h1, 1, 2); |
---|
145 | fGtuSlider->Resize(90,20); |
---|
146 | fGarbage->Add(lay = new TGLayoutHints(kLHintsLeft)); |
---|
147 | h1->AddFrame(fGtuSlider,lay); |
---|
148 | |
---|
149 | fGtuEntry = new TGNumberEntry(h1, -1, 5, kGTU_NUMENTRY, |
---|
150 | TGNumberFormat::kNESInteger, |
---|
151 | TGNumberFormat::kNEAAnyNumber, |
---|
152 | TGNumberFormat::kNELLimitMinMax, -1., 1.); |
---|
153 | |
---|
154 | // numerical entry |
---|
155 | fGtuEntry->Resize(40,20); |
---|
156 | |
---|
157 | fGarbage->Add(lay = new TGLayoutHints(kLHintsRight)); |
---|
158 | h1->AddFrame(fGtuEntry, lay); |
---|
159 | |
---|
160 | |
---|
161 | fGarbage->Add(lay = new TGLayoutHints(kLHintsTop, 3, 7, 4, 1)); |
---|
162 | v->AddFrame(h1, lay); |
---|
163 | |
---|
164 | // labels |
---|
165 | h2 = new TGCompositeFrame(v, 80, 20, kHorizontalFrame); |
---|
166 | fGarbage->Add(h2); |
---|
167 | |
---|
168 | fGtuMinLabel = new TGLabel(h2, "-1"); |
---|
169 | fGarbage->Add(lay = new TGLayoutHints(kLHintsLeft, 0, 1, -1, 0)); |
---|
170 | h2->AddFrame(fGtuMinLabel, lay); |
---|
171 | |
---|
172 | fGtuMaxLabel = new TGLabel(h2, "+1"); |
---|
173 | fGarbage->Add(lay = new TGLayoutHints(kLHintsLeft, 80, 3, -1, 0)); |
---|
174 | h2->AddFrame(fGtuMaxLabel, lay); |
---|
175 | |
---|
176 | fGarbage->Add( lay = new TGLayoutHints(kLHintsTop, 0, 0, 0, 0)); |
---|
177 | v->AddFrame(h2,lay); |
---|
178 | |
---|
179 | lay = new TGLayoutHints(kLHintsTop); |
---|
180 | fGarbage->Add(lay); |
---|
181 | |
---|
182 | AddFrame(v, lay); |
---|
183 | |
---|
184 | // Counts /////////////////////////////// |
---|
185 | MakeTitle("Counts"); |
---|
186 | |
---|
187 | h = new TGCompositeFrame(this, 80, 20, kHorizontalFrame); |
---|
188 | fCountsSlider = new TGHSlider(h, 1, 2, kCOUNTS_SLIDER); |
---|
189 | fCountsSlider->Resize(90,20); |
---|
190 | |
---|
191 | lay = new TGLayoutHints(kLHintsLeft); |
---|
192 | fGarbage->Add(lay); |
---|
193 | h->AddFrame(fCountsSlider, lay); |
---|
194 | |
---|
195 | fCountsEntry = new TGNumberEntry(h, 30, 5, kCOUNTS_NUMENTRY, |
---|
196 | TGNumberFormat::kNESInteger, |
---|
197 | TGNumberFormat::kNEAPositive, |
---|
198 | TGNumberFormat::kNELLimitMinMax, 0., 50.); |
---|
199 | |
---|
200 | fCountsEntry->Resize(40,20); |
---|
201 | lay = new TGLayoutHints(kLHintsRight); |
---|
202 | h->AddFrame(fCountsEntry, lay); |
---|
203 | |
---|
204 | lay = new TGLayoutHints(kLHintsTop, 3, 7, 4, 1); |
---|
205 | fGarbage->Add(lay); |
---|
206 | AddFrame(h, lay); |
---|
207 | fGarbage->Add(h); |
---|
208 | |
---|
209 | MakeTitle("Various"); |
---|
210 | // option related to HIST: some changes needed here! because of inconsistencies |
---|
211 | // f15 = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
212 | // fMakeTimeInt = new TGCheckButton(f15, "Time Integral", kTIME_INTEGRAL); |
---|
213 | // fMakeTimeInt ->SetToolTipText("Draw the sum of all counts from gtu 0 to the current"); |
---|
214 | // f15->AddFrame(fMakeTimeInt, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
215 | // AddFrame(f15, new TGLayoutHints(kLHintsTop, 1, 1, 0, -1)); |
---|
216 | |
---|
217 | TGCompositeFrame* frame; |
---|
218 | // Show Marker Checkbox: draw marker (or not) |
---|
219 | frame = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
220 | fAddGtuCount = new TGCheckButton(frame, "Gtu Counter", kGTU_COUNTER); |
---|
221 | fAddGtuCount ->SetToolTipText("Show/Hide the Gtu counter"); |
---|
222 | frame->AddFrame(fAddGtuCount, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
223 | AddFrame(frame, new TGLayoutHints(kLHintsTop, 1, 1, 2, 0)); |
---|
224 | fGarbage->Add(frame); |
---|
225 | |
---|
226 | |
---|
227 | // Show Marker Checkbox: draw marker (or not) |
---|
228 | frame = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
229 | fAddEmptyPixels = new TGCheckButton(frame, "Empty Pixels", kEMPTY_PIXELS); |
---|
230 | fAddEmptyPixels ->SetToolTipText("Show/Hide empty pixels"); |
---|
231 | frame->AddFrame(fAddEmptyPixels, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
232 | AddFrame(frame, new TGLayoutHints(kLHintsTop, 1, 1, 2, 0)); |
---|
233 | fGarbage->Add(frame); |
---|
234 | |
---|
235 | // Show Marker Checkbox: draw marker (or not) |
---|
236 | frame = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
237 | fAddOffPixels = new TGCheckButton(frame, "Off Pixels", kOFF_PIXELS); |
---|
238 | fAddOffPixels ->SetToolTipText("Show/Hide off pixels"); |
---|
239 | frame->AddFrame(fAddOffPixels, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
240 | AddFrame(frame, new TGLayoutHints(kLHintsTop, 1, 1, 2, 0)); |
---|
241 | fGarbage->Add(frame); |
---|
242 | |
---|
243 | // Paint Night Glow rate on the fs |
---|
244 | frame = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
245 | fDrawNightRate = new TGCheckButton(frame, "NightGlow rate", kPAINT_NG); |
---|
246 | fDrawNightRate->SetToolTipText("Paint NightGlow rate on the focal surface"); |
---|
247 | frame->AddFrame(fDrawNightRate, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
248 | AddFrame(frame, new TGLayoutHints(kLHintsTop, 1, 1, 2, 0)); |
---|
249 | fGarbage->Add(frame); |
---|
250 | |
---|
251 | // Paint Night Glow rate on the fs |
---|
252 | frame = new TGCompositeFrame(this, 80, 20, kVerticalFrame); |
---|
253 | fDrawNightCounts = new TGCheckButton(frame, "NightGlow counts", kPAINT_NCNT); |
---|
254 | fDrawNightCounts->SetToolTipText("Paint NightGlow counts on the focal surface"); |
---|
255 | frame->AddFrame(fDrawNightCounts, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
256 | AddFrame(frame, new TGLayoutHints(kLHintsTop, 1, 1, 2, 0)); |
---|
257 | fGarbage->Add(frame); |
---|
258 | /* |
---|
259 | fPatternSelect = new TGedPatternSelect(f2, 1, kPATTERN); |
---|
260 | f2->AddFrame(fPatternSelect, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1)); |
---|
261 | fPatternSelect->Associate(this); |
---|
262 | AddFrame(f2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
263 | */ |
---|
264 | |
---|
265 | // fTab = (TGTab *)(p->GetParent()->GetParent()); |
---|
266 | |
---|
267 | CreateThresholdTab(); |
---|
268 | CreateColorTab(); |
---|
269 | |
---|
270 | //ConnectSignals2Slots(); |
---|
271 | |
---|
272 | // fTab->MapSubwindows(); |
---|
273 | // fTab->Layout(); |
---|
274 | // fTab->MapWindow(); |
---|
275 | |
---|
276 | // TClass *cl = EFocalSurfacePainter::Class(); |
---|
277 | // TGedElement *ge = new TGedElement; |
---|
278 | // ge->fGedFrame = this; |
---|
279 | // ge->fCanvas = 0; |
---|
280 | // cl->GetEditorList()->Add(ge); |
---|
281 | } |
---|
282 | |
---|
283 | //_____________________________________________________________________________ |
---|
284 | EFocalSurfacePainterEditor::~EFocalSurfacePainterEditor() { |
---|
285 | // |
---|
286 | // Destructor |
---|
287 | // |
---|
288 | TGFrameElement *el; |
---|
289 | TIter next(GetList()); |
---|
290 | |
---|
291 | while ((el = (TGFrameElement *)next())) { |
---|
292 | if (!strcmp(el->fFrame->ClassName(), "TGCompositeFrame")) |
---|
293 | ((TGCompositeFrame *)el->fFrame)->Cleanup(); |
---|
294 | } |
---|
295 | Cleanup(); |
---|
296 | } |
---|
297 | |
---|
298 | //______________________________________________________________________________ |
---|
299 | void EFocalSurfacePainterEditor::SetModel(TObject* obj) { |
---|
300 | // Pick up the used fill attributes. |
---|
301 | |
---|
302 | // fModel = 0; |
---|
303 | // fPad = 0; |
---|
304 | |
---|
305 | // if (obj == 0 || !obj->InheritsFrom("EFocalSurfacePainter")) { |
---|
306 | // SetActive(kFALSE); |
---|
307 | // for (Int_t i=0; i < fTab->GetNumberOfTabs(); i++){ |
---|
308 | // if (fTab->GetTabContainer(i)==fColorContainer || fTab->GetTabContainer(i)==fThresholdContainer) { |
---|
309 | // fTab->GetTabContainer(i)->UnmapWindow(); // Hide the color tab if obj is not inherited from TH1 or |
---|
310 | // fTab->GetTabTab(i)->UnmapWindow(); // if a TH2, TH3 is drawn |
---|
311 | // fTab->SetEnabled(i,kFALSE); // also disable is, then the current tab will be changed |
---|
312 | // } |
---|
313 | // } |
---|
314 | // return; |
---|
315 | // } |
---|
316 | |
---|
317 | fAvoidSignal = kTRUE; |
---|
318 | TGFrameElement *el; |
---|
319 | |
---|
320 | // calling the SetModel(initialization) of all editors in the BinTab |
---|
321 | TIter nextCol(fColor->GetList()); |
---|
322 | while ((el = (TGFrameElement *) nextCol())) { |
---|
323 | if ((el->fFrame)->InheritsFrom("TGedFrame")) |
---|
324 | ((TGedFrame *)(el->fFrame))->SetModel(obj); |
---|
325 | } |
---|
326 | |
---|
327 | // calling the SetModel(initialization) of all editors in the BinTab |
---|
328 | TIter nextTrig(fThreshold->GetList()); |
---|
329 | while ((el = (TGFrameElement *) nextTrig())) { |
---|
330 | if ((el->fFrame)->InheritsFrom("TGedFrame")) |
---|
331 | ((TGedFrame *)(el->fFrame))->SetModel(obj); |
---|
332 | } |
---|
333 | |
---|
334 | // fModel = obj; |
---|
335 | // fPad = pad; |
---|
336 | |
---|
337 | fPainter = dynamic_cast<EFocalSurfacePainter *>(obj); |
---|
338 | |
---|
339 | fCurrentMapID = fPainter->GetCurrentMapID(); |
---|
340 | fCurrentIntegral = fPainter->GetIntegral(); |
---|
341 | fCurrentTrigger = fPainter->GetCurrentTrigger(); |
---|
342 | |
---|
343 | if ( fTriggerCombo->GetNumberOfEntries() > 1 ) |
---|
344 | fTriggerCombo->RemoveEntries(1,fTriggerCombo->GetNumberOfEntries()-1); |
---|
345 | if (fPainter->IsTriggerEnabled(kChipTrackingTrigger)) |
---|
346 | fTriggerCombo->AddEntry("ChipTracking", (Int_t)kChipTrackingTrigger); |
---|
347 | if (fPainter->IsTriggerEnabled(kChipTrackingTrigger0)) |
---|
348 | fTriggerCombo->AddEntry("ChipTracking1", (Int_t)kChipTrackingTrigger0); |
---|
349 | if (fPainter->IsTriggerEnabled(kChipTrackingTrigger1)) |
---|
350 | fTriggerCombo->AddEntry("ChipTracking1", (Int_t)kChipTrackingTrigger1); |
---|
351 | if (fPainter->IsTriggerEnabled(kChipTrackingTrigger2)) |
---|
352 | fTriggerCombo->AddEntry("ChipTracking2", (Int_t)kChipTrackingTrigger2); |
---|
353 | if (fPainter->IsTriggerEnabled(kChipTrackingTrigger3)) |
---|
354 | fTriggerCombo->AddEntry("ChipTracking3", (Int_t)kChipTrackingTrigger3); |
---|
355 | if (fPainter->IsTriggerEnabled(kChipTrackingTrigger4)) |
---|
356 | fTriggerCombo->AddEntry("ChipTracking4", (Int_t)kChipTrackingTrigger4); |
---|
357 | if (fPainter->IsTriggerEnabled(kSignalChipTrackingTrigger)) |
---|
358 | fTriggerCombo->AddEntry("SignalChipTracking", (Int_t)kSignalChipTrackingTrigger); |
---|
359 | |
---|
360 | ERunParameters *runpars = fPainter->GetRunPars(); |
---|
361 | |
---|
362 | Int_t rmin = (Int_t)runpars->GetPmtData().GetPmtSide(); |
---|
363 | fViewRMinLabel->SetText(Form("%d mm", rmin)); |
---|
364 | fViewRangeSlider->SetRange(rmin,1250); |
---|
365 | fViewRangeSlider->SetPosition((Int_t)fPainter->GetViewRange()); |
---|
366 | |
---|
367 | fMapIDCombo->Select(fCurrentMapID); |
---|
368 | fIntegralCombo->Select(fCurrentIntegral); |
---|
369 | fTriggerCombo->Select(fCurrentTrigger); |
---|
370 | |
---|
371 | fThresholdSlider->SetRange(0,70); |
---|
372 | fThresholdSlider->SetPosition((Int_t)fPainter->GetAlpha()); |
---|
373 | fAlphaEntry->SetLimits(TGNumberFormat::kNELLimitMinMax,0.,70.); |
---|
374 | fAlphaEntry->SetIntNumber((Int_t)fPainter->GetAlpha()); |
---|
375 | |
---|
376 | fGtuSlider->SetRange(fPainter->GetFirstGtu(),fPainter->GetLastGtu()); |
---|
377 | fGtuSlider->SetPosition(fPainter->GetGtu()); |
---|
378 | fGtuEntry->SetLimits(TGNumberFormat::kNELLimitMinMax,-1,fPainter->GetLastGtu()); |
---|
379 | fGtuEntry->SetIntNumber(fPainter->GetGtu()); |
---|
380 | fGtuMinLabel->SetText(Form("%d",fPainter->GetFirstGtu())); |
---|
381 | fGtuMaxLabel->SetText(Form("%d",fPainter->GetLastGtu())); |
---|
382 | |
---|
383 | fCountsSlider->SetRange(1,100); |
---|
384 | fCountsSlider->SetPosition(fPainter->GetMaxCounts()); |
---|
385 | fCountsEntry->SetLimits(TGNumberFormat::kNELLimitMinMax,1,50); |
---|
386 | fCountsEntry->SetIntNumber(fPainter->GetMaxCounts()); |
---|
387 | |
---|
388 | if ( !fPainter->IsApplyThreshold() ) { |
---|
389 | fThresholdType->SetButton(kNONE); |
---|
390 | } else if ( fPainter->IsApplyThreshold() && fPainter->IsAbsoluteThreshold() ) { |
---|
391 | fThresholdType->SetButton(kABSOLUTE); |
---|
392 | } else if ( fPainter->IsApplyThreshold() && !fPainter->IsAbsoluteThreshold() ){ |
---|
393 | fThresholdType->SetButton(kRELATIVE); |
---|
394 | } |
---|
395 | |
---|
396 | // fMakeTimeInt->SetState( fPainter->IsShowTimeIntegral() ? kButtonDown : kButtonUp ); |
---|
397 | fAddGtuCount->SetState( fPainter->IsShowGtuCounter() ? kButtonDown : kButtonUp ); |
---|
398 | fAddEmptyPixels->SetState( fPainter->IsShowEmptyPixels() ? kButtonDown : kButtonUp ); |
---|
399 | fAddOffPixels->SetState( fPainter->IsShowOffPixels() ? kButtonDown : kButtonUp ); |
---|
400 | |
---|
401 | TString str = GetDrawOption(); |
---|
402 | fDrawNightRate->SetState( str.Contains("ng") ? kButtonDown : kButtonUp ); |
---|
403 | fDrawNightCounts->SetState( str.Contains("ng") ? kButtonDown : kButtonUp ); |
---|
404 | |
---|
405 | Color_t c = fPainter->GetPmtColorHit(); |
---|
406 | Pixel_t p = TColor::Number2Pixel(c); |
---|
407 | fPmtColorSelect->SetColor(p); |
---|
408 | |
---|
409 | c = fPainter->GetPmtColorEmpty(); |
---|
410 | p = TColor::Number2Pixel(c); |
---|
411 | fEmptyPmtColorSelect->SetColor(p); |
---|
412 | |
---|
413 | /* |
---|
414 | Style_t s = fAttFill->GetFillStyle(); |
---|
415 | fPatternSelect->SetPattern(s); |
---|
416 | */ |
---|
417 | // for (Int_t i=1; i < fTab->GetNumberOfTabs(); i++) { |
---|
418 | // if (fTab->GetTabContainer(i)==fColorContainer || fTab->GetTabContainer(i)==fThresholdContainer ) { |
---|
419 | // fTab->GetTabContainer(i)->MapWindow(); |
---|
420 | // fTab->GetTabTab(i)->MapWindow(); |
---|
421 | // fTab->SetEnabled(i, kTRUE); |
---|
422 | // } else fTab->SetEnabled(i,kFALSE); |
---|
423 | // } |
---|
424 | // if (!fTab->IsEnabled(fTab->GetCurrent())) fTab->SetTab(0); |
---|
425 | // |
---|
426 | // fTab->Layout(); |
---|
427 | |
---|
428 | if (fInit) ConnectSignals2Slots(); |
---|
429 | // fTab->SetEnabled(1, kTRUE); |
---|
430 | fGedEditor->GetTab()->SetEnabled(1, kTRUE); |
---|
431 | |
---|
432 | // SetActive(kTRUE); |
---|
433 | fAvoidSignal = kTRUE; |
---|
434 | } |
---|
435 | //______________________________________________________________________________ |
---|
436 | void EFocalSurfacePainterEditor::ConnectSignals2Slots() { |
---|
437 | |
---|
438 | fMapIDCombo->Connect("Selected(Int_t)", "EFocalSurfacePainterEditor", this, "DoMapID(Int_t)"); |
---|
439 | fIntegralCombo->Connect("Selected(Int_t)", "EFocalSurfacePainterEditor", this, "DoIntegral(Int_t)"); |
---|
440 | fTriggerCombo->Connect("Selected(Int_t)", "EFocalSurfacePainterEditor", this, "DoTrigger(Int_t)"); |
---|
441 | fGtuSlider->Connect("PositionChanged(Int_t)","EFocalSurfacePainterEditor", this,"DoGtuSliderMoved(Int_t)"); |
---|
442 | fGtuEntry->Connect("ValueSet(Long_t)","EFocalSurfacePainterEditor", this,"DoGtuEntrySet()"); |
---|
443 | (fGtuEntry->GetNumberEntry())->Connect("ReturnPressed()","EFocalSurfacePainterEditor", this,"DoGtuEntrySet()"); |
---|
444 | fViewRangeSlider->Connect("PositionChanged(Int_t)","EFocalSurfacePainterEditor", this,"DoViewRangeSliderMoved(Int_t)"); |
---|
445 | fCountsSlider->Connect("PositionChanged(Int_t)","EFocalSurfacePainterEditor", this,"DoCountsSliderMoved(Int_t)"); |
---|
446 | fCountsEntry->Connect("ValueSet(Long_t)","EFocalSurfacePainterEditor", this,"DoCountsEntrySet()"); |
---|
447 | (fCountsEntry->GetNumberEntry())->Connect("ReturnPressed()","EFocalSurfacePainterEditor", this,"DoCountsEntrySet()"); |
---|
448 | fThresholdSlider->Connect("PositionChanged(Int_t)","EFocalSurfacePainterEditor", this,"DoThresholdSliderMoved(Int_t)"); |
---|
449 | fAlphaEntry->Connect("ValueSet(Long_t)","EFocalSurfacePainterEditor", this,"DoAlphaEntrySet()"); |
---|
450 | (fAlphaEntry->GetNumberEntry())->Connect("ReturnPressed()","EFocalSurfacePainterEditor", this,"DoAlphaEntrySet()"); |
---|
451 | |
---|
452 | fViewRangeSlider->Connect("Released()","EFocalSurfacePainterEditor", this,"Update()"); |
---|
453 | fAddGtuCount->Connect("Toggled(Bool_t)", "EFocalSurfacePainterEditor", this, "DoAddGtuCount(Bool_t)"); |
---|
454 | fAddEmptyPixels->Connect("Toggled(Bool_t)", "EFocalSurfacePainterEditor", this, "DoAddEmptyPixels(Bool_t)"); |
---|
455 | fAddOffPixels->Connect("Toggled(Bool_t)", "EFocalSurfacePainterEditor", this, "DoAddOffPixels(Bool_t)"); |
---|
456 | fDrawNightRate->Connect("Toggled(Bool_t)", "EFocalSurfacePainterEditor", this, "DoDrawNightRate(Bool_t)"); |
---|
457 | fDrawNightCounts->Connect("Toggled(Bool_t)", "EFocalSurfacePainterEditor", this, "DoDrawNightCounts(Bool_t)"); |
---|
458 | fThresholdType->Connect("Clicked(Int_t)", "EFocalSurfacePainterEditor", this, "DoThreshold(Threshold_t)"); |
---|
459 | fPmtColorSelect->Connect("ColorSelected(Pixel_t)","EFocalSurfacePainterEditor",this,"DoPmtFillColor(Pixel_t)"); |
---|
460 | fEmptyPmtColorSelect->Connect("ColorSelected(Pixel_t)","EFocalSurfacePainterEditor",this,"DoEmptyPmtFillColor(Pixel_t)"); |
---|
461 | fInit = kFALSE; |
---|
462 | } |
---|
463 | |
---|
464 | |
---|
465 | //______________________________________________________________________________ |
---|
466 | TGComboBox* EFocalSurfacePainterEditor::BuildMapIDCombo(TGFrame* parent, Int_t id) { |
---|
467 | // Marker size combobox. |
---|
468 | |
---|
469 | char a[][100] = {"kFeeHits","kFeeSignals","kCellHits"}; |
---|
470 | TGComboBox *c = new TGComboBox(parent, id); |
---|
471 | |
---|
472 | for (int i = 1; i <= 3; i++) { |
---|
473 | c->AddEntry(a[i-1], i); |
---|
474 | } |
---|
475 | |
---|
476 | return c; |
---|
477 | } |
---|
478 | |
---|
479 | //______________________________________________________________________________ |
---|
480 | TGComboBox* EFocalSurfacePainterEditor::BuildIntegralCombo(TGFrame* parent, Int_t id) { |
---|
481 | // Marker size combobox. |
---|
482 | |
---|
483 | char a[][100] = {"kNone","kSum","kMax"}; |
---|
484 | TGComboBox *c = new TGComboBox(parent, id); |
---|
485 | |
---|
486 | for (int i = 1; i <= 3; i++) { |
---|
487 | c->AddEntry(a[i-1], i); |
---|
488 | } |
---|
489 | |
---|
490 | return c; |
---|
491 | } |
---|
492 | |
---|
493 | //______________________________________________________________________________ |
---|
494 | TGComboBox* EFocalSurfacePainterEditor::BuildChipTriggerCombo(TGFrame* parent, Int_t id) { |
---|
495 | // Marker size combobox. |
---|
496 | |
---|
497 | TGComboBox *c = new TGComboBox(parent, id); |
---|
498 | c->AddEntry("No Trigger", 0); |
---|
499 | |
---|
500 | return c; |
---|
501 | } |
---|
502 | |
---|
503 | //______________________________________________________________________________ |
---|
504 | void EFocalSurfacePainterEditor::DoMapID( Int_t id ) { |
---|
505 | // |
---|
506 | // Set map to paint |
---|
507 | // |
---|
508 | |
---|
509 | fPainter->SetCurrentMapID( id ); |
---|
510 | Update(); |
---|
511 | } |
---|
512 | |
---|
513 | //______________________________________________________________________________ |
---|
514 | void EFocalSurfacePainterEditor::DoIntegral(Int_t id) { |
---|
515 | |
---|
516 | fPainter->SetIntegral(id); |
---|
517 | Update(); |
---|
518 | } |
---|
519 | |
---|
520 | //______________________________________________________________________________ |
---|
521 | void EFocalSurfacePainterEditor::DoTrigger(Int_t id) { |
---|
522 | fPainter->ApplyTriggerThreshold((ETriggerTypeIdentifier)id); |
---|
523 | Float_t val = fPainter->GetAlpha(); |
---|
524 | fPainter->IsAbsoluteThreshold() ? fThresholdType->SetButton(kABSOLUTE) : fThresholdType->SetButton(kRELATIVE); |
---|
525 | if (id==0 ) fThresholdType->SetButton(kNONE); |
---|
526 | fThresholdSlider->SetPosition( (Int_t)val*10 ); |
---|
527 | fAlphaEntry->SetIntNumber( (Int_t)val*10 ); |
---|
528 | Update(); |
---|
529 | } |
---|
530 | |
---|
531 | //______________________________________________________________________________ |
---|
532 | void EFocalSurfacePainterEditor::DoThresholdSliderMoved(Int_t pos) { |
---|
533 | fPainter->SetAlpha( pos/10 ); |
---|
534 | fAlphaEntry->SetIntNumber( pos ); |
---|
535 | fPainter->IsAbsoluteThreshold() ? fThresholdType->SetButton(kABSOLUTE) : fThresholdType->SetButton(kRELATIVE); |
---|
536 | fTriggerCombo->Select(0); |
---|
537 | Update(); |
---|
538 | } |
---|
539 | |
---|
540 | //______________________________________________________________________________ |
---|
541 | void EFocalSurfacePainterEditor::DoAlphaEntrySet() { |
---|
542 | Float_t val = fAlphaEntry->GetNumberEntry()->GetIntNumber(); |
---|
543 | fPainter->SetAlpha( val/10 ); |
---|
544 | fThresholdSlider->SetPosition( (Int_t)val ); |
---|
545 | fPainter->IsAbsoluteThreshold() ? fThresholdType->SetButton(kABSOLUTE) : fThresholdType->SetButton(kRELATIVE); |
---|
546 | fTriggerCombo->Select(0); |
---|
547 | Update(); |
---|
548 | } |
---|
549 | |
---|
550 | //______________________________________________________________________________ |
---|
551 | void EFocalSurfacePainterEditor::DoGtuSliderMoved( Int_t pos ) { |
---|
552 | // |
---|
553 | // |
---|
554 | // |
---|
555 | |
---|
556 | fPainter->SetGtu( pos ); |
---|
557 | fGtuEntry->SetIntNumber( pos ); |
---|
558 | Update(); |
---|
559 | } |
---|
560 | |
---|
561 | //______________________________________________________________________________ |
---|
562 | void EFocalSurfacePainterEditor::DoGtuEntrySet() { |
---|
563 | // |
---|
564 | // |
---|
565 | // |
---|
566 | |
---|
567 | Int_t val = fGtuEntry->GetNumberEntry()->GetIntNumber(); |
---|
568 | fPainter->SetGtu( val ); |
---|
569 | fGtuSlider->SetPosition( val ); |
---|
570 | Update(); |
---|
571 | } |
---|
572 | |
---|
573 | //______________________________________________________________________________ |
---|
574 | void EFocalSurfacePainterEditor::DoCountsSliderMoved( Int_t pos ) { |
---|
575 | // |
---|
576 | // |
---|
577 | // |
---|
578 | |
---|
579 | fPainter->SetMaxCounts( pos ); |
---|
580 | fCountsEntry->SetIntNumber( pos ); |
---|
581 | Update(); |
---|
582 | } |
---|
583 | |
---|
584 | //______________________________________________________________________________ |
---|
585 | void EFocalSurfacePainterEditor::DoCountsEntrySet() { |
---|
586 | // |
---|
587 | // |
---|
588 | // |
---|
589 | |
---|
590 | Int_t val = fCountsEntry->GetNumberEntry()->GetIntNumber(); |
---|
591 | fPainter->SetMaxCounts( val ); |
---|
592 | fCountsSlider->SetPosition( val ); |
---|
593 | Update(); |
---|
594 | } |
---|
595 | |
---|
596 | //______________________________________________________________________________ |
---|
597 | void EFocalSurfacePainterEditor::DoViewRangeSliderMoved( Int_t pos ) { |
---|
598 | // |
---|
599 | // |
---|
600 | // |
---|
601 | |
---|
602 | fPainter->SetViewRange( (Float_t)pos ); |
---|
603 | // Update(); |
---|
604 | } |
---|
605 | |
---|
606 | //______________________________________________________________________________ |
---|
607 | void EFocalSurfacePainterEditor::DoAddGtuCount(Bool_t on) { |
---|
608 | |
---|
609 | fPainter->SetShowGtuCounter(on); |
---|
610 | Update(); |
---|
611 | } |
---|
612 | |
---|
613 | //______________________________________________________________________________ |
---|
614 | void EFocalSurfacePainterEditor::DoAddEmptyPixels(Bool_t on) { |
---|
615 | |
---|
616 | fPainter->SetShowEmptyPixels(on); |
---|
617 | Update(); |
---|
618 | } |
---|
619 | |
---|
620 | //______________________________________________________________________________ |
---|
621 | void EFocalSurfacePainterEditor::DoAddOffPixels(Bool_t on) { |
---|
622 | |
---|
623 | fPainter->SetShowOffPixels(on); |
---|
624 | Update(); |
---|
625 | } |
---|
626 | |
---|
627 | //______________________________________________________________________________ |
---|
628 | void EFocalSurfacePainterEditor::DoDrawNightRate(Bool_t on) { |
---|
629 | |
---|
630 | TString str = GetDrawOption(); |
---|
631 | |
---|
632 | if ( on ) { |
---|
633 | if ( str.Contains("ncnt") ) |
---|
634 | str.Remove(str.Index("ncnt"),4); |
---|
635 | str.Append("ng"); |
---|
636 | fDrawNightCounts->SetState( kButtonUp ); |
---|
637 | } else { |
---|
638 | if ( str.Contains("ng") ) |
---|
639 | str.Remove(str.Index("ng"),2); |
---|
640 | } |
---|
641 | |
---|
642 | SetDrawOption(str); |
---|
643 | Update(); |
---|
644 | } |
---|
645 | |
---|
646 | //______________________________________________________________________________ |
---|
647 | void EFocalSurfacePainterEditor::DoDrawNightCounts(Bool_t on) { |
---|
648 | |
---|
649 | TString str = GetDrawOption(); |
---|
650 | |
---|
651 | if ( on ) { |
---|
652 | if ( str.Contains("ng") ) |
---|
653 | str.Remove(str.Index("ng"),2); |
---|
654 | str.Append("ncnt"); |
---|
655 | fDrawNightRate->SetState( kButtonUp ); |
---|
656 | } else { |
---|
657 | if ( str.Contains("ncnt") ) |
---|
658 | str.Remove(str.Index("ncnt"),4); |
---|
659 | } |
---|
660 | |
---|
661 | SetDrawOption(str); |
---|
662 | Update(); |
---|
663 | } |
---|
664 | |
---|
665 | |
---|
666 | //______________________________________________________________________________ |
---|
667 | void EFocalSurfacePainterEditor::DoThreshold(Threshold_t th) { |
---|
668 | |
---|
669 | if ( th==kNONE ) { |
---|
670 | fPainter->SetApplyThreshold(kFALSE); |
---|
671 | fThresholdSlider->SetPosition(0); |
---|
672 | fAlphaEntry->SetIntNumber(0); |
---|
673 | } else if ( th==kABSOLUTE ) { |
---|
674 | fPainter->SetApplyThreshold(kTRUE); |
---|
675 | fPainter->SetAbsoluteThreshold(kTRUE); |
---|
676 | } else if ( th==kRELATIVE ) { |
---|
677 | fPainter->SetApplyThreshold(kTRUE); |
---|
678 | fPainter->SetAbsoluteThreshold(kFALSE); |
---|
679 | } |
---|
680 | fTriggerCombo->Select(0); |
---|
681 | Update(); |
---|
682 | } |
---|
683 | |
---|
684 | //______________________________________________________________________________ |
---|
685 | void EFocalSurfacePainterEditor::DoPmtFillColor(Pixel_t color) { |
---|
686 | fPainter->SetPmtColorHit(TColor::GetColor(color)); |
---|
687 | Update(); |
---|
688 | } |
---|
689 | |
---|
690 | //______________________________________________________________________________ |
---|
691 | void EFocalSurfacePainterEditor::DoEmptyPmtFillColor(Pixel_t color) { |
---|
692 | fPainter->SetPmtColorEmpty(TColor::GetColor(color)); |
---|
693 | Update(); |
---|
694 | } |
---|
695 | |
---|
696 | //______________________________________________________________________________ |
---|
697 | void EFocalSurfacePainterEditor::CreateColorTab() { |
---|
698 | // Creates the BinTab |
---|
699 | |
---|
700 | fColorContainer = CreateEditorTabSubFrame("Color"); |
---|
701 | fColor = new TGCompositeFrame(fColorContainer, 80, 20, kVerticalFrame); |
---|
702 | fColor->AddFrame(new TGedNameFrame(fColor, 1000), new TGLayoutHints(kLHintsTop | kLHintsExpandX,0, 0, 2, 2)); |
---|
703 | |
---|
704 | TGCompositeFrame *title1 = new TGCompositeFrame(fColor, 145, 10, kHorizontalFrame | |
---|
705 | kLHintsExpandX | kFixedWidth | kOwnBackground); |
---|
706 | title1->AddFrame(new TGLabel(title1, "Pmts colors"), new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0)); |
---|
707 | title1->AddFrame(new TGHorizontal3DLine(title1), |
---|
708 | new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7)); |
---|
709 | fColor->AddFrame(title1, new TGLayoutHints(kLHintsTop, 0, 0, 2, 0)); |
---|
710 | |
---|
711 | // pmt color selector |
---|
712 | TGCompositeFrame *f3 = new TGCompositeFrame(fColor, 80, 20, kHorizontalFrame); |
---|
713 | fPmtColorSelect = new TGColorSelect(f3, 0, kPMTCOLOR); |
---|
714 | f3->AddFrame(fPmtColorSelect, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1)); |
---|
715 | // fColor->AddFrame(f3, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
716 | |
---|
717 | // pmt color selector |
---|
718 | fEmptyPmtColorSelect = new TGColorSelect(f3, 0, kPMTOFFCOLOR); |
---|
719 | f3->AddFrame(fEmptyPmtColorSelect, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1)); |
---|
720 | fColor->AddFrame(f3, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
721 | |
---|
722 | fColorContainer->AddFrame(fColor, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 0, 0, 2, 2)); |
---|
723 | } |
---|
724 | |
---|
725 | //_______________________________________________________________________________ |
---|
726 | void EFocalSurfacePainterEditor::CreateThresholdTab() { |
---|
727 | // |
---|
728 | // Create the threshold tab in the editor |
---|
729 | // |
---|
730 | TGCompositeFrame *h1, *h2, *f3, *f8, *title1, *title2; |
---|
731 | fThresholdContainer = CreateEditorTabSubFrame("Threshold"); |
---|
732 | |
---|
733 | fThreshold = new TGCompositeFrame(fThresholdContainer, 80, 20, kVerticalFrame); |
---|
734 | fThreshold->AddFrame(new TGedNameFrame(fThreshold, 1000), new TGLayoutHints(kLHintsTop | kLHintsExpandX | kLHintsExpandY, 0, 0, 2, 2)); |
---|
735 | title1 = new TGCompositeFrame(fThreshold, 145, 10, kHorizontalFrame | kLHintsExpandX | kFixedWidth | kOwnBackground); |
---|
736 | title1->AddFrame(new TGLabel(title1, "Alpha"), new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0)); |
---|
737 | title1->AddFrame(new TGHorizontal3DLine(title1), new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7)); |
---|
738 | fThreshold->AddFrame(title1, new TGLayoutHints(kLHintsTop, 0, 0, 2, 0)); |
---|
739 | |
---|
740 | h1 = new TGCompositeFrame(fThreshold, 80, 20, kHorizontalFrame); |
---|
741 | fThresholdSlider = new TGHSlider(h1, 1, 2, kTHRES_SLIDER); |
---|
742 | fThresholdSlider->Resize(90,20); |
---|
743 | |
---|
744 | h1->AddFrame(fThresholdSlider, new TGLayoutHints(kLHintsLeft, 1, 1, 2, 0)); |
---|
745 | // fThreshold->AddFrame(h1, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
746 | |
---|
747 | fAlphaEntry = new TGNumberEntry(h1, -1, 5, kTHRES_NUMENTRY, |
---|
748 | TGNumberFormat::kNESRealOne, |
---|
749 | TGNumberFormat::kNEAPositive, |
---|
750 | TGNumberFormat::kNELLimitMinMax, 0., 70.); |
---|
751 | |
---|
752 | fAlphaEntry->Resize(50,20); |
---|
753 | h1->AddFrame(fAlphaEntry, new TGLayoutHints(kLHintsRight)); |
---|
754 | |
---|
755 | fThreshold->AddFrame(h1, new TGLayoutHints(kLHintsTop, 3, 7, 4, 1)); |
---|
756 | |
---|
757 | h2 = new TGCompositeFrame(fThreshold, 80, 20, kHorizontalFrame); |
---|
758 | |
---|
759 | fAlphaMinLabel = new TGLabel(h2, "0"); |
---|
760 | h2->AddFrame(fAlphaMinLabel, new TGLayoutHints(kLHintsLeft, 10, 1, -1, 0)); |
---|
761 | |
---|
762 | fAlphaMaxLabel = new TGLabel(h2, "7"); |
---|
763 | h2->AddFrame(fAlphaMaxLabel, new TGLayoutHints(kLHintsLeft, 90, 3, -1, 0)); |
---|
764 | |
---|
765 | fThreshold->AddFrame(h2, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
766 | |
---|
767 | f8 = new TGCompositeFrame(fThreshold, 80, 20, kVerticalFrame); |
---|
768 | fThresholdType = new TGButtonGroup(f8,"Threshold type", kVerticalFrame); |
---|
769 | fThNone = new TGRadioButton(fThresholdType, new TGHotString("&None"),kNONE); |
---|
770 | fThAbs = new TGRadioButton(fThresholdType, new TGHotString("&Absolute"),kABSOLUTE); |
---|
771 | fThRel = new TGRadioButton(fThresholdType, new TGHotString("R&elative"),kRELATIVE); |
---|
772 | fThresholdType->Show(); |
---|
773 | f8->AddFrame(fThresholdType, new TGLayoutHints(kLHintsLeft, 6, 1, 1, 0)); |
---|
774 | fThreshold->AddFrame(f8, new TGLayoutHints(kLHintsTop, 1, 1, 0, 0)); |
---|
775 | |
---|
776 | title2 = new TGCompositeFrame(fThreshold, 145, 10, kHorizontalFrame | kLHintsExpandX | kFixedWidth | kOwnBackground); |
---|
777 | title2->AddFrame(new TGLabel(title2, "Trigger"), new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0)); |
---|
778 | title2->AddFrame(new TGHorizontal3DLine(title2), new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7)); |
---|
779 | fThreshold->AddFrame(title2, new TGLayoutHints(kLHintsTop, 0, 0, 2, 0)); |
---|
780 | |
---|
781 | f3 = new TGCompositeFrame(fThresholdContainer, 80, 20, kHorizontalFrame); |
---|
782 | fTriggerCombo = BuildChipTriggerCombo(f3, kTRIGGER); |
---|
783 | f3->AddFrame(fTriggerCombo, new TGLayoutHints(kLHintsLeft, 3, 1, 0, 0)); |
---|
784 | fTriggerCombo->Resize(145, 20); |
---|
785 | fTriggerCombo->Associate(fThreshold); |
---|
786 | fThreshold->AddFrame(f3, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0)); |
---|
787 | |
---|
788 | fThresholdContainer->AddFrame(fThreshold, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 0, 0, 2, 2)); |
---|
789 | |
---|
790 | |
---|
791 | |
---|
792 | } |
---|