Logo ROOT  
Reference Guide
TEveCaloLegoEditor.cxx
Go to the documentation of this file.
1// @(#)root/eve:$Id$
2// Author: Matevz Tadel 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2007, 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#include "TEveCaloLegoEditor.h"
13#include "TEveCalo.h"
14#include "TEveGValuators.h"
15#include "TGComboBox.h"
16
17#include "TColor.h"
18#include "TGColorSelect.h"
19#include "TGLabel.h"
20#include "TG3DLine.h"
21
22/** \class TEveCaloLegoEditor
23\ingroup TEve
24GUI editor for TEveCaloLego.
25*/
26
28
29////////////////////////////////////////////////////////////////////////////////
30/// Constructor.
31
33 UInt_t options, Pixel_t back) :
34 TGedFrame(p, width, height, options | kVerticalFrame, back),
35 fM(0),
36 fGridColor(0),
37 fFontColor(0),
38 fPlaneColor(0),
39 fTransparency(0),
40
41 fProjection(0),
42 f2DMode(0),
43 fBoxMode(0),
44
45 fCell2DTextMin(0),
46
47 fRebinFrame(0),
48 fAutoRebin(0),
49 fPixelsPerBin(0),
50 fNormalizeRebin(0)
51
52{
53 MakeTitle("TEveCaloLego");
54
55 { // grid color
57 TGLabel* lab = new TGLabel(f, "GridColor:");
58 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 10, 1, 1));
59
60 fGridColor = new TGColorSelect(f, 0, -1);
61 f->AddFrame(fGridColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
62 fGridColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoGridColor(Pixel_t)");
63
64 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
65 }
66 // axis
67 {
68 // font color
70 TGLabel* lab = new TGLabel(f, "FontColor:");
71 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 8, 1, 1));
72
73 fFontColor = new TGColorSelect(f, 0, -1);
74 f->AddFrame(fFontColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
75 fFontColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoFontColor(Pixel_t)");
76
77 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
78 }
79 {
80 // plane color
82 TGLabel* lab = new TGLabel(f, "PlaneColor:");
83 f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 1, 1, 1));
84
85 fPlaneColor = new TGColorSelect(f, 0, -1);
86 f->AddFrame(fPlaneColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
87 fPlaneColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoPlaneColor(Pixel_t)");
88
89 fTransparency = new TGNumberEntry(f, 0., 2, -1,
93 fTransparency->GetNumberEntry()->SetToolTipText("Transparency: 0 is opaque, 100 fully transparent.");
94 f->AddFrame(fTransparency, new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
95 fTransparency->Connect("ValueSet(Long_t)","TEveCaloLegoEditor", this, "DoTransparency()");
96
97 AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
98 }
99
100 Int_t lw = 80;
101
102 fProjection = MakeLabeledCombo("Project:", 1);
106 fProjection->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "DoProjection()");
107
108 f2DMode = MakeLabeledCombo("2DMode:", 4);
112 f2DMode->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "Do2DMode()");
113
114 fBoxMode = MakeLabeledCombo("Box:", 4);
118 fBoxMode->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "DoBoxMode()");
119
120 fCell2DTextMin = new TEveGValuator(this, "Cell2DTexMin:", 90, 0);
125 fCell2DTextMin->SetLimits(1, 1000);
126 fCell2DTextMin->SetToolTip("Draw cell values above N pixels.");
127 fCell2DTextMin->Connect("ValueSet(Double_t)", "TEveCaloLegoEditor", this, "DoCell2DTextMin()");
129
131}
132
133////////////////////////////////////////////////////////////////////////////////
134
136{
138
139 fAutoRebin = new TGCheckButton(fRebinFrame, "AutoRebin");
141 fAutoRebin->Connect("Toggled(Bool_t)", "TEveCaloLegoEditor", this, "DoAutoRebin()");
142
143 fNormalizeRebin = new TGCheckButton(fRebinFrame, "NormalizeRebin");
145 fNormalizeRebin->Connect("Toggled(Bool_t)", "TEveCaloLegoEditor", this, "DoNormalize()");
146
147 fPixelsPerBin = new TEveGValuator(fRebinFrame, "PixelsPerBin:", 90, 0);
152 fPixelsPerBin->SetLimits(1, 50);
153 fPixelsPerBin->SetToolTip("Number of labels along the Z axis.");
154 fPixelsPerBin->Connect("ValueSet(Double_t)", "TEveCaloLegoEditor", this, "DoPixelsPerBin()");
156}
157
158////////////////////////////////////////////////////////////////////////////////
159/// Helper function. Creates TGComboBox with fixed size TGLabel.
160
162{
163 UInt_t labelW = 60;
164 UInt_t labelH = 20;
165 TGHorizontalFrame* hf = new TGHorizontalFrame(this);
166 // label
167 TGCompositeFrame *labfr = new TGHorizontalFrame(hf, labelW, labelH, kFixedSize);
168 TGLabel* label = new TGLabel(labfr, name);
169 labfr->AddFrame(label, new TGLayoutHints(kLHintsLeft | kLHintsBottom));
170 hf->AddFrame(labfr, new TGLayoutHints(kLHintsLeft));
171 // combo
172 TGLayoutHints* clh = new TGLayoutHints(kLHintsLeft, 0,0,0,0);
173 TGComboBox* combo = new TGComboBox(hf);
174 combo->Resize(90, 20);
175 hf->AddFrame(combo, clh);
176
177 AddFrame(hf, new TGLayoutHints(kLHintsTop, 1, 1, 1, off));
178 return combo;
179}
180
181////////////////////////////////////////////////////////////////////////////////
182/// Set model object.
183
185{
186 fM = dynamic_cast<TEveCaloLego*>(obj);
187
190
193
195
199
203}
204
205////////////////////////////////////////////////////////////////////////////////
206/// Slot for GridColor.
207
209{
211 Update();
212}
213
214////////////////////////////////////////////////////////////////////////////////
215/// Slot for FontColor.
216
218{
220 Update();
221}
222
223////////////////////////////////////////////////////////////////////////////////
224/// Slot for PlaneColor.
225
227{
229 Update();
230}
231
232////////////////////////////////////////////////////////////////////////////////
233/// Slot for setting limit in pixels in which cell value is rendered.
234
236{
238 Update();
239}
240
241
242////////////////////////////////////////////////////////////////////////////////
243/// Slot for projection.
244
246{
248 Update();
249}
250
251////////////////////////////////////////////////////////////////////////////////
252/// Slot for projection.
253
255{
257 Update();
258}
259
260////////////////////////////////////////////////////////////////////////////////
261/// Slot for projection.
262
264{
266 Update();
267}
268
269////////////////////////////////////////////////////////////////////////////////
270/// Slot for Transparency.
271
273{
275 Update();
276}
277
278////////////////////////////////////////////////////////////////////////////////
279/// Slot for PixelsPerBin.
280
282{
284 Update();
285}
286
287////////////////////////////////////////////////////////////////////////////////
288
290{
292 Update();
293}
294
295////////////////////////////////////////////////////////////////////////////////
296
298{
300 Update();
301}
@ kVerticalFrame
Definition: GuiTypes.h:381
@ kFixedSize
Definition: GuiTypes.h:390
ULong_t Pixel_t
Pixel value.
Definition: GuiTypes.h:40
#define f(i)
Definition: RSha256.hxx:104
int Int_t
Definition: RtypesCore.h:45
char Char_t
Definition: RtypesCore.h:33
unsigned int UInt_t
Definition: RtypesCore.h:46
const Bool_t kFALSE
Definition: RtypesCore.h:101
short Color_t
Definition: RtypesCore.h:92
#define ClassImp(name)
Definition: Rtypes.h:364
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
@ kButtonDown
Definition: TGButton.h:54
@ kButtonUp
Definition: TGButton.h:53
@ kLHintsLeft
Definition: TGLayout.h:24
@ kLHintsBottom
Definition: TGLayout.h:29
@ kLHintsTop
Definition: TGLayout.h:27
char name[80]
Definition: TGX11.cxx:110
static ULong_t Number2Pixel(Int_t ci)
Static method that given a color index number, returns the corresponding pixel value.
Definition: TColor.cxx:2069
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
Definition: TColor.cxx:1822
GUI editor for TEveCaloLego.
TGCheckButton * fAutoRebin
TGVerticalFrame * fRebinFrame
TEveCaloLegoEditor(const TEveCaloLegoEditor &)
TGColorSelect * fPlaneColor
TGNumberEntry * fTransparency
void DoProjection()
Slot for projection.
TEveGValuator * fCell2DTextMin
TGCheckButton * fNormalizeRebin
TGComboBox * fProjection
void DoBoxMode()
Slot for projection.
void DoFontColor(Pixel_t color)
Slot for FontColor.
virtual void SetModel(TObject *obj)
Set model object.
void Do2DMode()
Slot for projection.
void DoTransparency()
Slot for Transparency.
TGColorSelect * fFontColor
void DoCell2DTextMin()
Slot for setting limit in pixels in which cell value is rendered.
TEveGValuator * fPixelsPerBin
void DoGridColor(Pixel_t color)
Slot for GridColor.
void DoPlaneColor(Pixel_t color)
Slot for PlaneColor.
void DoPixelsPerBin()
Slot for PixelsPerBin.
TGColorSelect * fGridColor
TGComboBox * MakeLabeledCombo(const char *name, Int_t off)
Helper function. Creates TGComboBox with fixed size TGLabel.
Visualization of calorimeter data as eta/phi histogram.
Definition: TEveCalo.h:251
Bool_t GetNormalizeRebin() const
Definition: TEveCalo.h:322
void Set2DMode(E2DMode_e p)
Definition: TEveCalo.h:328
Int_t GetPixelsPerBin() const
Definition: TEveCalo.h:316
Color_t GetFontColor() const
Definition: TEveCalo.h:301
void SetProjection(EProjection_e p)
Definition: TEveCalo.h:326
void SetFontColor(Color_t ci)
Definition: TEveCalo.h:302
void SetAutoRebin(Bool_t s)
Definition: TEveCalo.h:320
void SetDrawNumberCellPixels(Int_t x)
Definition: TEveCalo.h:347
void SetPlaneColor(Color_t ci)
Definition: TEveCalo.h:308
@ kValSizeOutline
Definition: TEveCalo.h:257
void SetBoxMode(EBoxMode_e p)
Definition: TEveCalo.h:337
void SetPixelsPerBin(Int_t bw)
Definition: TEveCalo.h:317
void SetNormalizeRebin(Bool_t s)
Definition: TEveCalo.h:323
Color_t GetPlaneColor() const
Definition: TEveCalo.h:307
EProjection_e GetProjection() const
Definition: TEveCalo.h:325
Char_t GetPlaneTransparency() const
Definition: TEveCalo.h:310
Int_t GetDrawNumberCellPixels()
Definition: TEveCalo.h:346
void SetGridColor(Color_t ci)
Definition: TEveCalo.h:305
E2DMode_e Get2DMode()
Definition: TEveCalo.h:329
Bool_t GetAutoRebin() const
Definition: TEveCalo.h:319
Color_t GetGridColor() const
Definition: TEveCalo.h:304
void SetPlaneTransparency(Char_t t)
Definition: TEveCalo.h:311
EBoxMode_e GetBoxMode()
Definition: TEveCalo.h:338
void SetLabelWidth(Int_t w)
void SetShowSlider(Bool_t s=kTRUE)
void SetNELength(Int_t l)
Composite GUI element for single value selection (supports label, number-entry and slider).
void SetToolTip(const char *tip)
Set the tooltip of the number-entry.
void SetLimits(Int_t min, Int_t max)
Set limits of the represented value for integer values.
virtual void Build(Bool_t connect=kTRUE)
Create sub-components (label, number entry, slider).
Float_t GetValue() const
virtual void SetValue(Float_t v, Bool_t emit=kFALSE)
Set value, optionally emit signal.
Selects different options.
Definition: TGButton.h:264
virtual Bool_t IsOn() const
Definition: TGButton.h:311
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set check button state.
Definition: TGButton.cxx:1250
Like a checkbutton but instead of the check mark there is color area with a little down arrow.
void SetColor(Pixel_t color, Bool_t emit=kTRUE)
Set color.
A combobox (also known as a drop down listbox) allows the selection of one item out of a list of item...
Definition: TGComboBox.h:47
virtual Int_t GetSelected() const
Definition: TGComboBox.h:114
virtual void AddEntry(TGString *s, Int_t id)
Definition: TGComboBox.h:86
virtual void Select(Int_t id, Bool_t emit=kTRUE)
Make the selected item visible in the combo box window and emit signals according to the second param...
Definition: TGComboBox.cxx:456
The base class for composite widgets (menu bars, list boxes, etc.).
Definition: TGFrame.h:287
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1117
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:605
virtual void SetHeight(UInt_t h)
Definition: TGFrame.h:247
A composite frame that layout their children in horizontal way.
Definition: TGFrame.h:386
This class handles GUI labels.
Definition: TGLabel.h:24
This class describes layout hints used by the layout classes.
Definition: TGLayout.h:50
TGNumberEntry is a number entry input widget with up/down buttons.
TGNumberEntryField * GetNumberEntry() const
virtual Double_t GetNumber() const
virtual void SetNumber(Double_t val, Bool_t emit=kTRUE)
@ kNEANonNegative
Non-negative number.
Definition: TGNumberEntry.h:42
@ kNESInteger
Style of number entry field.
Definition: TGNumberEntry.h:25
@ kNELLimitMinMax
Both lower and upper limits.
Definition: TGNumberEntry.h:50
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
ROOT GUI Window base class.
Definition: TGWindow.h:23
Base frame for implementing GUI - a service class.
Definition: TGedFrame.h:27
virtual TGVerticalFrame * CreateEditorTabSubFrame(const char *name)
Create a vertical frame to be used by 'owner' in extra tab 'name'.
Definition: TGedFrame.cxx:122
virtual void MakeTitle(const char *title)
Create attribute frame title.
Definition: TGedFrame.cxx:95
virtual void Update()
Update the current pad when an attribute is changed via GUI.
Definition: TGedFrame.cxx:72
Mother of all ROOT objects.
Definition: TObject.h:37
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:869