Logo ROOT   6.10/09
Reference Guide
TH1Editor.h
Go to the documentation of this file.
1 // @(#)root/ged:$Id$
2 // Author: Carsten Hof 16/08/04
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, 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 #ifndef ROOT_TH1Editor
13 #define ROOT_TH1Editor
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TH1Editor //
18 // //
19 // Editor changing histogram attributes (Type, Coords, Error, Style) //
20 // //
21 //////////////////////////////////////////////////////////////////////////
22 
23 #include "TGedFrame.h"
24 
25 
26 class TH1;
27 class TGComboBox;
28 class TGNumberEntry;
29 class TGCheckButton;
30 class TGButtonGroup;
31 class TGHButtonGroup;
32 class TString;
33 class TGRadioButton;
34 class TGDoubleHSlider;
35 class TGHSlider;
36 class TGTextEntry;
37 class TGNumberEntryField;
38 class TGTextButton;
39 
40 class TH1Editor : public TGedFrame {
41 
42 protected:
43  TH1 *fHist; // histogram object
44  Bool_t fSameOpt; // flag for option "same"
45  TGCompositeFrame *fBin; // Contains the Binning Widgets
46  Int_t fTitlePrec; // font precision level
47  TGTextEntry *fTitle; // histogram title input field
48  TGHButtonGroup *fDimGroup; // Radiobuttongroup to change 2D <-> 3D-Plot
49  TGRadioButton *fDim; // 2D-Plot RadioButton
50  TGRadioButton *fDim0; // 3D-Plot RadioButton
51  TGLayoutHints *fDimlh; // layout hints for 2D-Plot RadioButton
52  TGLayoutHints *fDim0lh; // layout hints for 3D-Plot RadioButton
53  TGComboBox *fTypeCombo; // histogram type combo box
54  TGComboBox *fCoordsCombo; // Coordinate System combo box
55  TGComboBox *fErrorCombo; // Error combo box
56  TGCheckButton *fHistOnOff; // Draw a simple histogram with default options
57  TGCheckButton *fAddMarker; // Draw a Marker on top of each bin
58  TGCheckButton *fAddB; // Draw a Bar Chart
59  TGCheckButton *fAddBar; // Bar Option
60  TGCheckButton *fAdd; // Activate more Options
61  TGCheckButton *fMakeHBar; // Draw Horizontal Bar Chart
62  TGCheckButton *fAddSimple; // Draw a simple histogram (==HIST draw option)
63  TGNumberEntry *fBarWidth; // Change the Bar Width
64  TGNumberEntry *fBarOffset; // Change the Bar Offset
65  TGComboBox *fAddCombo; // Add Lines, Bars, Fill
66  TGComboBox *fPercentCombo; // Percentage of the Bar which is drawn in a different color
67  TGCompositeFrame *f3; // Contains Histogram Type
68  TGCompositeFrame *f6; // Contains the Add-ComboBox (Style)
69  TGCompositeFrame *f7; // Contains the Marker OnOff CheckBox
70  TGCompositeFrame *f8; // Contains the Bar Chart CheckBox
71  TGCompositeFrame *f9; // Contains the Bar Option CheckBox
72  TGCompositeFrame *f10; // Contains the Bar Option Title
73  TGCompositeFrame *f11; // Contains the Bar Width/Offset NumberEntries
74  TGCompositeFrame *f12; // Contains fPercentCombo, fMakeHBar
75  TGCompositeFrame *f15; // Contains outer line CheckBox
76  TGCompositeFrame *fBinCont; // Contains the Rebin Widgets for case 1
77  TGCompositeFrame *fBinCont1; // Contains the Rebin Widgets for case 2
78  TGHSlider *fBinSlider; // Slider to set rebinning integer value
79  TGHSlider *fBinSlider1; // Slider to set rebinning integer value for ntuple histogram
80  TGNumberEntryField *fBinNumberEntry; // Label which shows the rebinned bin number
81  TGNumberEntryField *fBinNumberEntry1; // Label which shows the rebinned bin number for ntuple histogram
82  TGHSlider *fBinOffsetSld; // Add an offset to the origin of the histogram
83  TGNumberEntryField *fOffsetNumberEntry;// Shows the offset to the origin of the histogram
84  TGDoubleHSlider *fSlider; // Slider to set x-axis range
85  TGNumberEntryField *fSldMin; // Contains the minimum value of the x-Axis
86  TGNumberEntryField *fSldMax; // Contains the maximum value of the x-Axis
87  TGCheckButton *fDelaydraw; // Delayed drawing of the new axis range
88  TGTextButton *fApply; // Apply-Button to accept the rebinned histogram
89  TGTextButton *fCancel; // Cancel-Button to reprobate the rebinned histogram
90 
91  static TGComboBox *BuildHistTypeComboBox(TGFrame *parent, Int_t id); // builts the Type ComboBox
92  static TGComboBox *BuildHistCoordsComboBox(TGFrame *parent, Int_t id); // builts the Coordinate ComboBox
93  static TGComboBox *BuildHistErrorComboBox(TGFrame *parent, Int_t id); // builts the Error ComboBox
94  static TGComboBox *BuildHistAddComboBox(TGFrame *parent, Int_t id); // builts the Add ComboBox
95  static TGComboBox *BuildPercentComboBox(TGFrame *parent, Int_t id); // builts the ComboBox for setting the Bar options bar1,..., bar4
96 
97  virtual void ConnectSignals2Slots(); // connect the signals to the slots
98  void CreateBinTab(); // Creates the Bin Tab (part of the SetGedEditor)
99 
100 
101 private:
102  Bool_t fMake; // Veto Variable
103  Bool_t fMakeB; // avoid execution of Bar Slots
104  Int_t fPx1old, // save the coordinates of the "virtual box" in delay draw mode (2D Plot)
105  fPy1old,
106  fPx2old,
107  fPy2old;
108  Float_t fP1NDCold[3], // save the coordinates of the "virtual box" in delay draw mode
109  fP2NDCold[3],
110  fP3NDCold[3],
111  fP4NDCold[3];
112  Float_t fP1old[3], // save the coordinates of the "virtual box" in delay draw mode (3D plot)
113  fP2old[3],
114  fP3old[3],
115  fP4old[3],
116  fP5old[3],
117  fP6old[3],
118  fP7old[3],
119  fP8old[3];
120  TH1 *fBinHist; // Cloned histogram for rebin
121  Double_t fOldOffset; // save the old offset of the histogram
122 
123  TString GetHistTypeLabel(); // Get the Histogram Type = String which contains the Histogram Draw Option
124  TString GetHistCoordsLabel(); // Get the histogram coordinate system (CYL, SPH, PSR, ..)
125  TString GetHistErrorLabel(); // Get the histogram Error type (E1, .., E4)
126  TString GetHistAddLabel(); // Get the histogram addon (smooth line, simple line, ..)
127  void ChangeErrorCombo(Int_t i);
128 
129 
130 public:
131  TH1Editor(const TGWindow *p = 0,
132  Int_t width = 140, Int_t height = 30,
133  UInt_t options = kChildFrame,
135  virtual ~TH1Editor();
136 
137  virtual Bool_t AcceptModel(TObject* model);
138  virtual void SetModel(TObject* obj);
139 
140  virtual void DoTitle(const char *text);
141  virtual void DoAddMarker(Bool_t on);
142  virtual void DoAddBar(Bool_t);
143  virtual void DoAddB(Bool_t);
144  virtual void DoAddSimple(Bool_t on);
145  virtual void DoHistSimple();
146  virtual void DoHistComplex();
147  virtual void DoHistChanges();
148  virtual void DoHistView();
149  virtual void DoBarOffset();
150  virtual void DoBarWidth();
151  virtual void DoPercent();
152  virtual void DoHBar(Bool_t on);
153  virtual void DoSliderMoved();
154  virtual void DoSliderPressed();
155  virtual void DoSliderReleased();
156  virtual void DoAxisRange();
157  virtual void DoBinMoved(Int_t number);
158  virtual void DoBinReleased();
159  virtual void DoBinPressed();
160  virtual void DoBinLabel();
161  virtual void DoBinReleased1();
162  virtual void DoBinMoved1();
163  virtual void DoBinLabel1();
164  virtual void DoOffsetMoved(Int_t num);
165  virtual void DoOffsetReleased();
166  virtual void DoOffsetPressed();
167  virtual void DoBinOffset();
168  virtual void DoApply();
169  virtual void DoCancel();
170  virtual void PaintBox3D(Float_t *p1, Float_t *p2,Float_t *p3, Float_t *p4);
171  Int_t* Dividers(Int_t n);
172  virtual void RecursiveRemove(TObject* obj);
173 
174 
175  ClassDef(TH1Editor,0) // TH1 editor
176 };
177 
178 #endif
TGNumberEntry * fBarOffset
Definition: TH1Editor.h:64
TString GetHistTypeLabel()
Returns the selected histogram type (HIST, LEGO1-2, SURF1-5).
Definition: TH1Editor.cxx:2213
TGCompositeFrame * fBinCont
Definition: TH1Editor.h:76
Float_t fP2NDCold[3]
Definition: TH1Editor.h:108
Float_t fP2old[3]
Definition: TH1Editor.h:112
virtual void ConnectSignals2Slots()
Connect signals to slots.
Definition: TH1Editor.cxx:556
virtual void DoPercent()
Slot connected to the bar percentage settings.
Definition: TH1Editor.cxx:1439
static double p3(double t, double a, double b, double c, double d)
virtual void DoHistComplex()
Slot connected to the 3D radio button.
Definition: TH1Editor.cxx:1259
float Float_t
Definition: RtypesCore.h:53
static TGComboBox * BuildHistCoordsComboBox(TGFrame *parent, Int_t id)
Create coordinate system type combo box.
Definition: TH1Editor.cxx:2327
static TGComboBox * BuildHistAddComboBox(TGFrame *parent, Int_t id)
Create Line/Bar combo box.
Definition: TH1Editor.cxx:2362
TGCheckButton * fAddMarker
Definition: TH1Editor.h:57
virtual void DoBinOffset()
Slot connected to the OffSetNumberEntry which is related to the OffSetSlider changes the origin of th...
Definition: TH1Editor.cxx:2113
virtual void DoCancel()
Slot connected to the Cancel button of the Binning tab.
Definition: TH1Editor.cxx:2184
TGNumberEntry * fBarWidth
Definition: TH1Editor.h:63
Basic string class.
Definition: TString.h:129
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual void DoAddBar(Bool_t)
Slot connected to the bar Add check box.
Definition: TH1Editor.cxx:1015
Float_t fP4NDCold[3]
Definition: TH1Editor.h:108
virtual void DoBarOffset()
Slot connected to the Bar Offset of the Bar Charts.
Definition: TH1Editor.cxx:1428
TGCheckButton * fAddBar
Definition: TH1Editor.h:59
TString GetHistAddLabel()
Return the selected shape of the histogram (C, L, LF2).
Definition: TH1Editor.cxx:2277
TGComboBox * fPercentCombo
Definition: TH1Editor.h:66
TGNumberEntryField * fOffsetNumberEntry
Definition: TH1Editor.h:83
TH1 * fBinHist
Definition: TH1Editor.h:120
TGTextButton * fCancel
Definition: TH1Editor.h:89
void ChangeErrorCombo(Int_t i)
Change the error combo box entry.
Definition: TH1Editor.cxx:2396
TGCheckButton * fDelaydraw
Definition: TH1Editor.h:87
virtual void DoBinPressed()
Slot connected to the rebin slider in case of a not ntuple histogram.
Definition: TH1Editor.cxx:1822
TGCompositeFrame * f12
Definition: TH1Editor.h:74
Int_t fPx1old
Definition: TH1Editor.h:104
TH1 * fHist
Definition: TH1Editor.h:43
Bool_t fMake
Definition: TH1Editor.h:102
TGNumberEntryField * fSldMin
Definition: TH1Editor.h:85
Float_t fP7old[3]
Definition: TH1Editor.h:112
TGCheckButton * fHistOnOff
Definition: TH1Editor.h:56
virtual void PaintBox3D(Float_t *p1, Float_t *p2, Float_t *p3, Float_t *p4)
Paint a 3D box.
Definition: TH1Editor.cxx:2425
Int_t fPy1old
Definition: TH1Editor.h:104
TGCompositeFrame * f3
Definition: TH1Editor.h:67
#define ClassDef(name, id)
Definition: Rtypes.h:297
ULong_t Pixel_t
Definition: GuiTypes.h:39
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition: TGFrame.cxx:665
void CreateBinTab()
Create binning tab.
Definition: TH1Editor.cxx:364
virtual void DoBinMoved(Int_t number)
Slot connected to the rebin slider in case of a not ntuple histogram (does the Rebinning of the histo...
Definition: TH1Editor.cxx:1761
TGComboBox * fAddCombo
Definition: TH1Editor.h:65
Bool_t fSameOpt
Definition: TH1Editor.h:44
virtual void DoSliderMoved()
Slot connected to the x-Slider for redrawing of the histogram according to the new Slider range...
Definition: TH1Editor.cxx:1505
TGTextEntry * fTitle
Definition: TH1Editor.h:47
static double p2(double t, double a, double b, double c)
Int_t fPy2old
Definition: TH1Editor.h:104
virtual void DoApply()
Slot connected to the Apply button of the Binning tab.
Definition: TH1Editor.cxx:2153
Int_t fTitlePrec
Definition: TH1Editor.h:46
virtual void SetModel(TObject *obj)
Pick up current values of histogram attributes.
Definition: TH1Editor.cxx:626
TGCheckButton * fAdd
Definition: TH1Editor.h:60
virtual void DoBinMoved1()
Slot connected to the rebin slider in case of an ntuple histogram.
Definition: TH1Editor.cxx:1902
virtual void DoBarWidth()
Slot connected to the Bar Width of the Bar Charts.
Definition: TH1Editor.cxx:1418
TGCheckButton * fAddSimple
Definition: TH1Editor.h:62
TGCompositeFrame * f11
Definition: TH1Editor.h:73
virtual void RecursiveRemove(TObject *obj)
If the contained histogram obj is deleted we must set its pointer to zero.
Definition: TH1Editor.cxx:2474
virtual void DoAddSimple(Bool_t on)
Slot connected to fAddSimple check box for drawing a simple histogram without errors (== HIST draw op...
Definition: TH1Editor.cxx:1116
Float_t fP3old[3]
Definition: TH1Editor.h:112
TGHButtonGroup * fDimGroup
Definition: TH1Editor.h:48
TString GetHistCoordsLabel()
Return the selected coordinate system of the histogram (POL,CYL,SPH,PSR).
Definition: TH1Editor.cxx:2236
virtual void DoSliderPressed()
Slot connected to the x-axis Range slider for initialising the values of the slider movement...
Definition: TH1Editor.cxx:1604
Double_t fOldOffset
Definition: TH1Editor.h:121
TGComboBox * fTypeCombo
Definition: TH1Editor.h:53
TGNumberEntryField * fBinNumberEntry1
Definition: TH1Editor.h:81
Int_t * Dividers(Int_t n)
Return an array of dividers of n (without the trivial divider n).
Definition: TH1Editor.cxx:2442
virtual Bool_t AcceptModel(TObject *model)
Check if object is able to configure with this editor.
Definition: TH1Editor.cxx:612
TGRadioButton * fDim
Definition: TH1Editor.h:49
unsigned int UInt_t
Definition: RtypesCore.h:42
TGCheckButton * fAddB
Definition: TH1Editor.h:58
Float_t fP6old[3]
Definition: TH1Editor.h:112
TGCompositeFrame * f7
Definition: TH1Editor.h:69
static double p1(double t, double a, double b)
virtual void DoOffsetMoved(Int_t num)
Slot connected to the OffSetSlider.
Definition: TH1Editor.cxx:2065
Bool_t fMakeB
Definition: TH1Editor.h:103
TGCompositeFrame * fBinCont1
Definition: TH1Editor.h:77
TGTextButton * fApply
Definition: TH1Editor.h:88
virtual void DoBinLabel1()
Slot connected to the Bin number entry of the Rebinning tab.
Definition: TH1Editor.cxx:1955
virtual void DoBinReleased()
Slot connected to the rebin slider in case of a not ntuple histogram Updates some other widgets which...
Definition: TH1Editor.cxx:1706
static TGComboBox * BuildHistTypeComboBox(TGFrame *parent, Int_t id)
Create histogram type combo box.
Definition: TH1Editor.cxx:2307
virtual void DoBinReleased1()
Slot connected to the BinNumber Slider in case of a ntuple histogram (does the Rebinning of the histo...
Definition: TH1Editor.cxx:1840
virtual void DoHistView()
Slot connected to the &#39;Plot&#39; button group.
Definition: TH1Editor.cxx:1150
virtual void DoAxisRange()
Slot connected to the number entry fields containing the Max/Min value of the x-axis.
Definition: TH1Editor.cxx:1682
virtual void DoBinLabel()
Slot connected to the Bin number entry of the Rebinning tab.
Definition: TH1Editor.cxx:1925
TGNumberEntryField * fSldMax
Definition: TH1Editor.h:86
TGLayoutHints * fDim0lh
Definition: TH1Editor.h:52
Int_t fPx2old
Definition: TH1Editor.h:104
TGHSlider * fBinSlider1
Definition: TH1Editor.h:79
double Double_t
Definition: RtypesCore.h:55
TText * text
TGCheckButton * fMakeHBar
Definition: TH1Editor.h:61
TString GetHistErrorLabel()
Return the selected error type (E,E1-5).
Definition: TH1Editor.cxx:2257
static TGComboBox * BuildHistErrorComboBox(TGFrame *parent, Int_t id)
Create error type combo box.
Definition: TH1Editor.cxx:2345
Float_t fP3NDCold[3]
Definition: TH1Editor.h:108
virtual void DoHBar(Bool_t on)
Slot connected to the Horizontal Bar check button.
Definition: TH1Editor.cxx:1479
The TH1 histogram class.
Definition: TH1.h:56
TGCompositeFrame * f8
Definition: TH1Editor.h:70
Mother of all ROOT objects.
Definition: TObject.h:37
TGHSlider * fBinOffsetSld
Definition: TH1Editor.h:82
Float_t fP5old[3]
Definition: TH1Editor.h:112
TGCompositeFrame * f15
Definition: TH1Editor.h:75
virtual void DoTitle(const char *text)
Slot connected to the histogram title setting.
Definition: TH1Editor.cxx:916
TGCompositeFrame * f6
Definition: TH1Editor.h:68
Float_t fP1old[3]
Definition: TH1Editor.h:112
Float_t fP8old[3]
Definition: TH1Editor.h:112
virtual void DoHistChanges()
Slot connected to the histogram type, the coordinate type, the error type and the Add combo box...
Definition: TH1Editor.cxx:1307
Float_t fP4old[3]
Definition: TH1Editor.h:112
TGCompositeFrame * f9
Definition: TH1Editor.h:71
TGComboBox * fErrorCombo
Definition: TH1Editor.h:55
TGHSlider * fBinSlider
Definition: TH1Editor.h:78
Float_t fP1NDCold[3]
Definition: TH1Editor.h:108
virtual void DoAddB(Bool_t)
Slot connected to the bar Add check box.
Definition: TH1Editor.cxx:972
TGLayoutHints * fDimlh
Definition: TH1Editor.h:51
TGComboBox * fCoordsCombo
Definition: TH1Editor.h:54
static TGComboBox * BuildPercentComboBox(TGFrame *parent, Int_t id)
Create Percentage combo box for bar option.
Definition: TH1Editor.cxx:2378
virtual void DoAddMarker(Bool_t on)
Slot connected to the show markers check box.
Definition: TH1Editor.cxx:926
TH1Editor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor of histogram attribute GUI.
Definition: TH1Editor.cxx:174
virtual void DoSliderReleased()
Slot connected to the x-axis Range slider for finalizing the values of the slider movement...
Definition: TH1Editor.cxx:1659
TGDoubleHSlider * fSlider
Definition: TH1Editor.h:84
TGRadioButton * fDim0
Definition: TH1Editor.h:50
virtual void DoHistSimple()
Slot connected to the 2D radio button.
Definition: TH1Editor.cxx:1169
TGCompositeFrame * fBin
Definition: TH1Editor.h:45
const Int_t n
Definition: legend1.C:16
virtual void DoOffsetReleased()
Slot connected to the OffSetSlider.
Definition: TH1Editor.cxx:2017
virtual void DoOffsetPressed()
Slot connected to the OffSetSlider that saves the OldBinOffset (nessesary for delay draw mode)...
Definition: TH1Editor.cxx:2006
virtual ~TH1Editor()
Destructor of TH1 editor.
Definition: TH1Editor.cxx:538
TGNumberEntryField * fBinNumberEntry
Definition: TH1Editor.h:80
TGCompositeFrame * f10
Definition: TH1Editor.h:72