]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/Reve/RGValuators.h
480aac4a2308cd17e6106773b390fe7e45723544
[u/mrichter/AliRoot.git] / EVE / Reve / RGValuators.h
1 // $Header$
2
3 #ifndef REVE_RGValuators_H
4 #define REVE_RGValuators_H
5
6 #include <TGNumberEntry.h>
7
8 class TGLabel;
9 class TGHSlider;
10 class TGDoubleHSlider;
11
12
13 namespace Reve {
14
15 class RGValuatorBase: public TGCompositeFrame
16 {
17 protected:
18   UInt_t      fLabelWidth;
19   Bool_t      fAlignRight;
20   Bool_t      fShowSlider;
21
22   Int_t       fNELength;
23   Int_t       fNEHeight;
24
25   TGLabel*    fLabel;
26
27 public:
28   RGValuatorBase(const TGWindow *p, const char* title, UInt_t w, UInt_t h);
29   virtual ~RGValuatorBase() {}
30
31   virtual void Build() = 0;
32
33   void SetLabelWidth(Int_t w)        { fLabelWidth = w; }
34   void SetAlignRight(Bool_t a)       { fAlignRight = a; }
35   void SetShowSlider(Bool_t s=kTRUE) { fShowSlider = s; }
36
37   void SetNELength(Int_t l)          { fNELength = l; }
38   void SetNEGeight(Int_t h)          { fNEHeight = h; }
39
40   ClassDef(RGValuatorBase, 0);
41 }; // endclass RGValuatorBase
42
43 /**************************************************************************/
44
45 class RGValuator: public RGValuatorBase
46 {
47 protected:
48   Float_t        fValue;
49   Float_t        fMin;
50   Float_t        fMax;
51
52   Bool_t         fSliderNewLine;
53   Int_t          fSliderDivs;
54   TGNumberEntry* fEntry;
55   TGHSlider*     fSlider;
56
57   Int_t CalcSliderPos(Float_t v);
58   
59 public:
60   RGValuator(const TGWindow *p, const char* title, UInt_t w, UInt_t h);
61   virtual ~RGValuator() {}
62
63   virtual void Build();
64   
65   Float_t GetValue() const { return fValue; }
66   virtual void SetValue(Float_t v, Bool_t emit=kFALSE);
67
68   void SliderCallback();
69   void EntryCallback();
70   void ValueSet(Double_t); //*SIGNAL* 
71
72   TGHSlider*     GetSlider() { return fSlider; }
73   TGNumberEntry* GetEntry()  { return fEntry; }
74
75   void SetSliderNewLine(Bool_t nl) { fSliderNewLine = nl; }
76
77   void SetLimits(Int_t min, Int_t max);
78   void SetLimits(Float_t min, Float_t max, Int_t npos,
79                  TGNumberFormat::EStyle nef=TGNumberFormat::kNESRealTwo);
80
81   void SetToolTip(const Text_t* tip);
82   void SetEnabled(Bool_t state);
83
84   ClassDef(RGValuator, 0);
85 }; // endclass RGValuator
86
87 /**************************************************************************/
88
89 class RGDoubleValuator: public RGValuatorBase
90 {
91 protected:
92   TGNumberEntry*    fMinEntry;
93   TGNumberEntry*    fMaxEntry;
94   TGDoubleHSlider*  fSlider;
95   
96 public:
97   RGDoubleValuator(const TGWindow *p, const char* title, UInt_t w, UInt_t h);
98   virtual ~RGDoubleValuator() {}
99
100   virtual void Build();
101  
102   void MinEntryCallback();
103   void MaxEntryCallback();
104   void SliderCallback();
105   void ValueSet(); //*SIGNAL* 
106
107   TGDoubleHSlider* GetSlider()   { return fSlider; }
108   TGNumberEntry*   GetMinEntry() { return fMinEntry; }
109   TGNumberEntry*   GetMaxEntry() { return fMaxEntry; }
110
111   void SetLimits(Float_t min, Float_t max, TGNumberFormat::EStyle nef=TGNumberFormat::kNESRealTwo);
112   void SetValues(Float_t min, Float_t max, Bool_t emit=kFALSE);
113
114   void GetValues(Float_t& min, Float_t& max) const
115   { min = fMinEntry->GetNumber(); max = fMaxEntry->GetNumber(); }
116   Float_t GetMin() const { return fMinEntry->GetNumber(); }
117   Float_t GetMax() const { return fMaxEntry->GetNumber(); }
118
119   ClassDef(RGDoubleValuator, 0);
120 }; // endclass RGDoubleValuator
121
122 }
123
124 #endif