1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/slider.h
3 // Purpose: wxSlider class implementation using trackbar control
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
15 class WXDLLIMPEXP_FWD_CORE wxSubwindows
;
18 class WXDLLIMPEXP_CORE wxSlider
: public wxSliderBase
21 wxSlider() { Init(); }
23 wxSlider(wxWindow
*parent
,
28 const wxPoint
& pos
= wxDefaultPosition
,
29 const wxSize
& size
= wxDefaultSize
,
30 long style
= wxSL_HORIZONTAL
,
31 const wxValidator
& validator
= wxDefaultValidator
,
32 const wxString
& name
= wxSliderNameStr
)
36 (void)Create(parent
, id
, value
, minValue
, maxValue
,
37 pos
, size
, style
, validator
, name
);
40 bool Create(wxWindow
*parent
,
43 int minValue
, int maxValue
,
44 const wxPoint
& pos
= wxDefaultPosition
,
45 const wxSize
& size
= wxDefaultSize
,
46 long style
= wxSL_HORIZONTAL
,
47 const wxValidator
& validator
= wxDefaultValidator
,
48 const wxString
& name
= wxSliderNameStr
);
53 virtual int GetValue() const;
54 virtual void SetValue(int);
56 void SetRange(int minValue
, int maxValue
);
58 int GetMin() const { return m_rangeMin
; }
59 int GetMax() const { return m_rangeMax
; }
61 // Win32-specific slider methods
62 void SetTickFreq(int n
, int pos
);
63 int GetTickFreq() const { return m_tickFreq
; }
64 void SetPageSize(int pageSize
);
65 int GetPageSize() const;
68 void SetLineSize(int lineSize
);
69 int GetLineSize() const;
70 int GetSelEnd() const;
71 int GetSelStart() const;
72 void SetSelection(int minPos
, int maxPos
);
73 void SetThumbLength(int len
);
74 int GetThumbLength() const;
75 void SetTick(int tickPos
);
77 // implementation only from now on
78 WXHWND
GetStaticMin() const;
79 WXHWND
GetStaticMax() const;
80 WXHWND
GetEditValue() const;
81 virtual bool ContainsHWND(WXHWND hWnd
) const;
83 // we should let background show through the slider (and its labels)
84 virtual bool HasTransparentBackground() { return true; }
86 // returns true if the platform should explicitly apply a theme border
87 virtual bool CanApplyThemeBorder() const { return false; }
89 void Command(wxCommandEvent
& event
);
90 virtual bool MSWOnScroll(int orientation
, WXWORD wParam
,
91 WXWORD pos
, WXHWND control
);
93 virtual bool Show(bool show
= true);
94 virtual bool Enable(bool show
= true);
95 virtual bool SetFont(const wxFont
& font
);
97 virtual WXDWORD
MSWGetStyle(long flags
, WXDWORD
*exstyle
= NULL
) const;
100 // common part of all ctors
103 // format an integer value as string
104 static wxString
Format(int n
) { return wxString::Format(wxT("%d"), n
); }
106 // get the boundig box for the slider and possible labels
107 wxRect
GetBoundingBox() const;
109 // Get the height and, if the pointers are non NULL, widths of both labels.
110 int GetLabelsSize(int *widthMin
= NULL
, int *widthMax
= NULL
) const;
113 // overridden base class virtuals
114 virtual void DoGetPosition(int *x
, int *y
) const;
115 virtual void DoGetSize(int *width
, int *height
) const;
116 virtual void DoMoveWindow(int x
, int y
, int width
, int height
);
117 virtual wxSize
DoGetBestSize() const;
119 // the labels windows, if any
120 wxSubwindows
*m_labels
;
130 // flag needed to detect whether we're getting THUMBRELEASE event because
131 // of dragging the thumb or scrolling the mouse wheel
134 DECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider
)
137 #endif // _WX_SLIDER_H_