1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/slider95.h
3 // Purpose: wxSlider class, using the Win95 (and later) trackbar control
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_SLIDER95_H_
13 #define _WX_SLIDER95_H_
15 class WXDLLIMPEXP_FWD_CORE wxSubwindows
;
18 class WXDLLEXPORT 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; }
87 void Command(wxCommandEvent
& event
);
88 virtual bool MSWOnScroll(int orientation
, WXWORD wParam
,
89 WXWORD pos
, WXHWND control
);
91 virtual bool Show(bool show
= true);
92 virtual bool Enable(bool show
= true);
93 virtual bool SetFont(const wxFont
& font
);
95 virtual WXDWORD
MSWGetStyle(long flags
, WXDWORD
*exstyle
= NULL
) const;
98 // common part of all ctors
101 // format an integer value as string
102 static wxString
Format(int n
) { return wxString::Format(_T("%d"), n
); }
104 // get the boundig box for the slider and possible labels
105 wxRect
GetBoundingBox() const;
107 // get the height and, if the pointer is not NULL, width of our labels
108 int GetLabelsSize(int *width
= NULL
) const;
111 // overridden base class virtuals
112 virtual void DoGetPosition(int *x
, int *y
) const;
113 virtual void DoGetSize(int *width
, int *height
) const;
114 virtual void DoMoveWindow(int x
, int y
, int width
, int height
);
115 virtual wxSize
DoGetBestSize() const;
117 virtual wxBorder
GetDefaultBorder() const { return wxBORDER_NONE
; }
120 // the labels windows, if any
121 wxSubwindows
*m_labels
;
129 // flag needed to detect whether we're getting THUMBRELEASE event because
130 // of dragging the thumb or scrolling the mouse wheel
133 DECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider
)
136 #endif // _WX_SLIDER95_H_