TGSlider+¶
Slider widgets allow easy selection of a range.Sliders can be either horizontal or vertical oriented and there isa choice of two different slider types and three different typesof tick marks.
TGSlider is an abstract base class. Use the concrete TGVSlider and TGHSlider.
Dragging the slider will generate the event:
kC_VSLIDER, kSL_POS, slider id, position (for vertical slider)
kC_HSLIDER, kSL_POS, slider id, position (for horizontal slider)
Pressing the mouse will generate the event:
kC_VSLIDER, kSL_PRESS, slider id, 0 (for vertical slider)
kC_HSLIDER, kSL_PRESS, slider id, 0 (for horizontal slider)
Releasing the mouse will generate the event:
kC_VSLIDER, kSL_RELEASE, slider id, 0 (for vertical slider)
kC_HSLIDER, kSL_RELEASE, slider id, 0 (for horizontal slider)
TGSlider 继承 TGFrame, TGWidget
TGVSlider 继承 TGSliderVertical slider widget
TGHSlider 继承 TGSliderHorizontal slider widget
class¶
//--- sizes for vert. and horz. sliders
enum ESliderSize {
kSliderWidth = 24,
kSliderHeight = kSliderWidth
};
enum ESliderType {
//--- slider types (type of slider picture)
kSlider1 = BIT(0),
kSlider2 = BIT(1),
//--- scaling of slider
kScaleNo = BIT(2),
kScaleDownRight = BIT(3),
kScaleBoth = BIT(4)
};
TGSlider
TGSlider(const TGWindow *p = 0, UInt_t w = 1, UInt_t h = 1,
UInt_t type = kSlider1 | kScaleBoth, Int_t id = -1,
UInt_t options = kChildFrame,
Pixel_t back = GetDefaultFrameBackground());
virtual ~TGSlider() { }
virtual Bool_t HandleButton(Event_t *event) = 0;
virtual Bool_t HandleConfigureNotify(Event_t* event) = 0;
virtual Bool_t HandleMotion(Event_t *event) = 0;
virtual void SetEnabled(Bool_t flag = kTRUE) { SetState( flag ); } //*TOGGLE* *GETTER=IsEnabled
virtual void SetState(Bool_t state);
virtual void SetScale(Int_t scale) { fScale = scale; } //*MENU*
virtual void SetRange(Int_t min, Int_t max) { fVmin = min; fVmax = max; } //*MENU*
virtual void SetPosition(Int_t pos) { fPos = pos; fClient->NeedRedraw(this); } //*MENU*
virtual Int_t GetPosition() const { return fPos; }
virtual Int_t GetMinPosition() const { return fVmin; }
virtual Int_t GetMaxPosition() const { return fVmax; }
virtual Int_t GetScale() const { return fScale; }
virtual void MapSubwindows() { TGWindow::MapSubwindows(); }
virtual void ChangeSliderPic(const char *name) {
if (fSliderPic) fClient->FreePicture(fSliderPic);
fSliderPic = fClient->GetPicture(name);
}
virtual void PositionChanged(Int_t pos) { Emit("PositionChanged(Int_t)", pos); } // *SIGNAL*
virtual void Pressed() { Emit("Pressed()"); } // *SIGNAL*
virtual void Released() { Emit("Released()"); } // *SIGNAL*
TGVSlider
TGVSlider(const TGWindow *p = 0, UInt_t h = 40,
UInt_t type = kSlider1 | kScaleBoth, Int_t id = -1,
UInt_t options = kVerticalFrame,
Pixel_t back = GetDefaultFrameBackground());
virtual ~TGVSlider();
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleConfigureNotify(Event_t* event);
virtual Bool_t HandleMotion(Event_t *event);
virtual TGDimension GetDefaultSize() const
{ return TGDimension(kSliderWidth, fHeight); }
virtual void Resize(UInt_t w, UInt_t h) { TGFrame::Resize(w, h ? h+16 : fHeight + 16); }
virtual void Resize(TGDimension size) { Resize(size.fWidth, size.fHeight); }
virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
TGHSlider
TGHSlider(const TGWindow *p = 0, UInt_t w = 40,
UInt_t type = kSlider1 | kScaleBoth, Int_t id = -1,
UInt_t options = kHorizontalFrame,
Pixel_t back = GetDefaultFrameBackground());
virtual ~TGHSlider();
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleConfigureNotify(Event_t* event);
virtual Bool_t HandleMotion(Event_t *event);
virtual TGDimension GetDefaultSize() const
{ return TGDimension(fWidth, kSliderHeight); }
virtual void Resize(UInt_t w, UInt_t h) { TGFrame::Resize(w ? w+16 : fWidth + 16, h); }
virtual void Resize(TGDimension size) { Resize(size.fWidth, size.fHeight); }
virtual void SavePrimitive(std::ostream &out, Option_t *option = "");