12 #ifndef ROOT_TGScrollBar
13 #define ROOT_TGScrollBar
48 class TGScrollBarElement :
public TGFrame {
51 TGScrollBarElement(
const TGScrollBarElement&);
52 TGScrollBarElement& operator=(
const TGScrollBarElement&);
56 const TGPicture *fPic;
57 const TGPicture *fPicN;
58 const TGPicture *fPicD;
64 TGScrollBarElement(
const TGWindow *p = 0,
const TGPicture *pic = 0,
65 UInt_t w = 1, UInt_t h = 1,
66 UInt_t options = kRaisedFrame | kDoubleBorder,
67 Pixel_t back = GetDefaultFrameBackground());
68 virtual ~TGScrollBarElement();
70 virtual void SetState(Int_t state);
71 virtual void DrawBorder();
72 virtual void SetEnabled(Bool_t on = kTRUE);
73 virtual Bool_t IsEnabled()
const {
return !(fState & kButtonDisabled); }
74 virtual Bool_t HandleCrossing(Event_t *event);
76 ClassDef(TGScrollBarElement,0)
80 class TGScrollBar :
public TGFrame,
public TGWidget {
83 TGScrollBar(
const TGScrollBar&);
84 TGScrollBar& operator=(
const TGScrollBar&);
97 TGScrollBarElement *fHead;
98 TGScrollBarElement *fTail;
99 TGScrollBarElement *fSlider;
100 const TGPicture *fHeadPic;
101 const TGPicture *fTailPic;
108 static Pixmap_t fgBckgndPixmap;
109 static Int_t fgScrollBarWidth;
112 static Pixmap_t GetBckgndPixmap();
113 static Int_t GetScrollBarWidth();
115 TGScrollBar(
const TGWindow *p = 0, UInt_t w = 1, UInt_t h = 1,
116 UInt_t options = kChildFrame,
117 Pixel_t back = GetDefaultFrameBackground());
118 virtual ~TGScrollBar();
120 void GrabPointer(Bool_t grab) { fGrabPointer = grab; }
122 virtual void DrawBorder() { }
123 virtual Bool_t HandleButton(Event_t *event) = 0;
124 virtual Bool_t HandleCrossing(Event_t *event);
125 virtual Bool_t HandleMotion(Event_t *event) = 0;
126 virtual Bool_t HandleTimer(TTimer *t);
127 virtual void Layout() = 0;
129 virtual void SetDragging(Bool_t drag) { fDragging = drag; }
130 virtual void SetRange(Int_t range, Int_t page_size) = 0;
131 virtual void SetPosition(Int_t pos) = 0;
132 virtual Int_t GetPosition()
const {
return fPos; }
133 virtual Int_t GetPageSize()
const {
return fPsize; }
134 virtual Int_t GetRange()
const {
return fRange; }
135 virtual void Resize(UInt_t w = 0, UInt_t h = 0) { TGFrame::Resize(w, h); SetRange(fRange, fPsize); }
136 virtual void MoveResize(Int_t x, Int_t y, UInt_t w = 0, UInt_t h = 0)
137 { TGFrame::MoveResize(x, y, w, h); SetRange(fRange, fPsize); }
138 virtual void Resize(TGDimension size) { Resize(size.fWidth, size.fHeight); }
139 virtual void ChangeBackground(Pixel_t back);
140 virtual void SetAccelerated(Bool_t m = kTRUE) { fAccelerated = m; }
141 Bool_t IsAccelerated()
const {
return fAccelerated; }
143 virtual void MapSubwindows() { TGWindow::MapSubwindows(); }
144 TGScrollBarElement *GetHead()
const {
return fHead; }
145 TGScrollBarElement *GetTail()
const {
return fTail; }
146 TGScrollBarElement *GetSlider()
const {
return fSlider; }
148 virtual void PositionChanged(Int_t pos) { Emit(
"PositionChanged(Int_t)", pos); }
149 virtual void RangeChanged(Int_t range) { Emit(
"RangeChanged(Int_t)", range); }
150 virtual void PageSizeChanged(Int_t range) { Emit(
"PageSizeChanged(Int_t)", range); }
152 virtual Int_t GetSmallIncrement() {
return fSmallInc; }
153 virtual void SetSmallIncrement(Int_t increment) { fSmallInc = increment; }
155 ClassDef(TGScrollBar,0)
160 class TGHScrollBar :
public TGScrollBar {
163 TGHScrollBar(
const TGWindow *p = 0, UInt_t w = 4, UInt_t h = 2,
164 UInt_t options = kHorizontalFrame,
165 Pixel_t back = GetDefaultFrameBackground());
166 virtual ~TGHScrollBar() { }
168 virtual Bool_t HandleButton(Event_t *event);
169 virtual Bool_t HandleMotion(Event_t *event);
170 virtual TGDimension GetDefaultSize()
const
171 {
return TGDimension(fWidth, GetScrollBarWidth()); }
172 virtual void Layout();
174 virtual void SetRange(Int_t range, Int_t page_size);
175 virtual void SetPosition(Int_t pos);
176 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
178 ClassDef(TGHScrollBar,0)
183 class TGVScrollBar :
public TGScrollBar {
186 TGVScrollBar(
const TGWindow *p = 0, UInt_t w = 2, UInt_t h = 4,
187 UInt_t options = kVerticalFrame,
188 Pixel_t back = GetDefaultFrameBackground());
189 virtual ~TGVScrollBar() { }
191 virtual Bool_t HandleButton(Event_t *event);
192 virtual Bool_t HandleMotion(Event_t *event);
193 virtual TGDimension GetDefaultSize()
const
194 {
return TGDimension(GetScrollBarWidth(), fHeight); }
195 virtual void Layout();
197 virtual void SetRange(Int_t range, Int_t page_size);
198 virtual void SetPosition(Int_t pos);
199 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
201 ClassDef(TGVScrollBar,0)