00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TH1Editor
00013 #define ROOT_TH1Editor
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef ROOT_TGedFrame
00024 #include "TGedFrame.h"
00025 #endif
00026
00027
00028 class TH1;
00029 class TGComboBox;
00030 class TGNumberEntry;
00031 class TGCheckButton;
00032 class TGButtonGroup;
00033 class TGHButtonGroup;
00034 class TString;
00035 class TGRadioButton;
00036 class TGDoubleHSlider;
00037 class TGHSlider;
00038 class TGTextEntry;
00039 class TGNumberEntryField;
00040 class TGTextButton;
00041
00042 class TH1Editor : public TGedFrame {
00043
00044 protected:
00045 TH1 *fHist;
00046 Bool_t fSameOpt;
00047 TGCompositeFrame *fBin;
00048 Int_t fTitlePrec;
00049 TGTextEntry *fTitle;
00050 TGHButtonGroup *fDimGroup;
00051 TGRadioButton *fDim;
00052 TGRadioButton *fDim0;
00053 TGLayoutHints *fDimlh;
00054 TGLayoutHints *fDim0lh;
00055 TGComboBox *fTypeCombo;
00056 TGComboBox *fCoordsCombo;
00057 TGComboBox *fErrorCombo;
00058 TGCheckButton *fHistOnOff;
00059 TGCheckButton *fAddMarker;
00060 TGCheckButton *fAddB;
00061 TGCheckButton *fAddBar;
00062 TGCheckButton *fAdd;
00063 TGCheckButton *fMakeHBar;
00064 TGCheckButton *fAddSimple;
00065 TGNumberEntry *fBarWidth;
00066 TGNumberEntry *fBarOffset;
00067 TGComboBox *fAddCombo;
00068 TGComboBox *fPercentCombo;
00069 TGCompositeFrame *f3;
00070 TGCompositeFrame *f6;
00071 TGCompositeFrame *f7;
00072 TGCompositeFrame *f8;
00073 TGCompositeFrame *f9;
00074 TGCompositeFrame *f10;
00075 TGCompositeFrame *f11;
00076 TGCompositeFrame *f12;
00077 TGCompositeFrame *f15;
00078 TGCompositeFrame *fBinCont;
00079 TGCompositeFrame *fBinCont1;
00080 TGHSlider *fBinSlider;
00081 TGHSlider *fBinSlider1;
00082 TGNumberEntryField *fBinNumberEntry;
00083 TGNumberEntryField *fBinNumberEntry1;
00084 TGHSlider *fBinOffsetSld;
00085 TGNumberEntryField *fOffsetNumberEntry;
00086 TGDoubleHSlider *fSlider;
00087 TGNumberEntryField *fSldMin;
00088 TGNumberEntryField *fSldMax;
00089 TGCheckButton *fDelaydraw;
00090 TGTextButton *fApply;
00091 TGTextButton *fCancel;
00092
00093 static TGComboBox *BuildHistTypeComboBox(TGFrame *parent, Int_t id);
00094 static TGComboBox *BuildHistCoordsComboBox(TGFrame *parent, Int_t id);
00095 static TGComboBox *BuildHistErrorComboBox(TGFrame *parent, Int_t id);
00096 static TGComboBox *BuildHistAddComboBox(TGFrame *parent, Int_t id);
00097 static TGComboBox *BuildPercentComboBox(TGFrame *parent, Int_t id);
00098
00099 virtual void ConnectSignals2Slots();
00100 void CreateBinTab();
00101
00102
00103 private:
00104 Bool_t fMake;
00105 Bool_t fMakeB;
00106 Int_t fPx1old,
00107 fPy1old,
00108 fPx2old,
00109 fPy2old;
00110 Float_t fP1NDCold[3],
00111 fP2NDCold[3],
00112 fP3NDCold[3],
00113 fP4NDCold[3];
00114 Float_t fP1old[3],
00115 fP2old[3],
00116 fP3old[3],
00117 fP4old[3],
00118 fP5old[3],
00119 fP6old[3],
00120 fP7old[3],
00121 fP8old[3];
00122 TH1 *fBinHist;
00123 Double_t fOldOffset;
00124
00125 TString GetHistTypeLabel();
00126 TString GetHistCoordsLabel();
00127 TString GetHistErrorLabel();
00128 TString GetHistAddLabel();
00129 void ChangeErrorCombo(Int_t i);
00130
00131
00132 public:
00133 TH1Editor(const TGWindow *p = 0,
00134 Int_t width = 140, Int_t height = 30,
00135 UInt_t options = kChildFrame,
00136 Pixel_t back = GetDefaultFrameBackground());
00137 virtual ~TH1Editor();
00138
00139 virtual Bool_t AcceptModel(TObject* model);
00140 virtual void SetModel(TObject* obj);
00141
00142 virtual void DoTitle(const char *text);
00143 virtual void DoAddMarker(Bool_t on);
00144 virtual void DoAddBar(Bool_t);
00145 virtual void DoAddB(Bool_t);
00146 virtual void DoAddSimple(Bool_t on);
00147 virtual void DoHistSimple();
00148 virtual void DoHistComplex();
00149 virtual void DoHistChanges();
00150 virtual void DoHistView();
00151 virtual void DoBarOffset();
00152 virtual void DoBarWidth();
00153 virtual void DoPercent();
00154 virtual void DoHBar(Bool_t on);
00155 virtual void DoSliderMoved();
00156 virtual void DoSliderPressed();
00157 virtual void DoSliderReleased();
00158 virtual void DoAxisRange();
00159 virtual void DoBinMoved(Int_t number);
00160 virtual void DoBinReleased();
00161 virtual void DoBinPressed();
00162 virtual void DoBinLabel();
00163 virtual void DoBinReleased1();
00164 virtual void DoBinMoved1();
00165 virtual void DoBinLabel1();
00166 virtual void DoOffsetMoved(Int_t num);
00167 virtual void DoOffsetReleased();
00168 virtual void DoOffsetPressed();
00169 virtual void DoBinOffset();
00170 virtual void DoApply();
00171 virtual void DoCancel();
00172 virtual void PaintBox3D(Float_t *p1, Float_t *p2,Float_t *p3, Float_t *p4);
00173 Int_t* Dividers(Int_t n);
00174
00175 ClassDef(TH1Editor,0)
00176 };
00177
00178 #endif