]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/slider95.h
Allow forward declaration of wxSlider in wxMSW (bug 1157614). Remove unused header...
[wxWidgets.git] / include / wx / msw / slider95.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/slider95.h
3 // Purpose: wxSlider class, using the Win95 (and later) trackbar control
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 01/02/97
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_SLIDER95_H_
13 #define _WX_SLIDER95_H_
14
15 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16 #pragma interface "slider95.h"
17 #endif
18
19 class WXDLLEXPORT wxSubwindows;
20
21 // Slider
22 class WXDLLEXPORT wxSlider : public wxSliderBase
23 {
24 public:
25 wxSlider() { Init(); }
26
27 wxSlider(wxWindow *parent,
28 wxWindowID id,
29 int value,
30 int minValue,
31 int maxValue,
32 const wxPoint& pos = wxDefaultPosition,
33 const wxSize& size = wxDefaultSize,
34 long style = wxSL_HORIZONTAL,
35 const wxValidator& validator = wxDefaultValidator,
36 const wxString& name = wxSliderNameStr)
37 {
38 Init();
39
40 (void)Create(parent, id, value, minValue, maxValue,
41 pos, size, style, validator, name);
42 }
43
44 bool Create(wxWindow *parent,
45 wxWindowID id,
46 int value,
47 int minValue, int maxValue,
48 const wxPoint& pos = wxDefaultPosition,
49 const wxSize& size = wxDefaultSize,
50 long style = wxSL_HORIZONTAL,
51 const wxValidator& validator = wxDefaultValidator,
52 const wxString& name = wxSliderNameStr);
53
54 virtual ~wxSlider();
55
56 // slider methods
57 virtual int GetValue() const;
58 virtual void SetValue(int);
59
60 void SetRange(int minValue, int maxValue);
61
62 int GetMin() const { return m_rangeMin; }
63 int GetMax() const { return m_rangeMax; }
64
65 // Win32-specific slider methods
66 void SetTickFreq(int n, int pos);
67 int GetTickFreq() const { return m_tickFreq; }
68 void SetPageSize(int pageSize);
69 int GetPageSize() const;
70 void ClearSel();
71 void ClearTicks();
72 void SetLineSize(int lineSize);
73 int GetLineSize() const;
74 int GetSelEnd() const;
75 int GetSelStart() const;
76 void SetSelection(int minPos, int maxPos);
77 void SetThumbLength(int len);
78 int GetThumbLength() const;
79 void SetTick(int tickPos);
80
81 // implementation only from now on
82 WXHWND GetStaticMin() const;
83 WXHWND GetStaticMax() const;
84 WXHWND GetEditValue() const;
85 virtual bool ContainsHWND(WXHWND hWnd) const;
86
87 void Command(wxCommandEvent& event);
88 virtual bool MSWOnScroll(int orientation, WXWORD wParam,
89 WXWORD pos, WXHWND control);
90
91 virtual bool Show(bool show = true);
92 virtual bool Enable(bool show = true);
93 virtual bool SetFont(const wxFont& font);
94
95 protected:
96 // common part of all ctors
97 void Init();
98
99 // format an integer value as string
100 static wxString Format(int n) { return wxString::Format(_T("%d"), n); }
101
102 // get the boundig box for the slider and possible labels
103 wxRect GetBoundingBox() const;
104
105 // get the height and, if the pointer is not NULL, width of our labels
106 int GetLabelsSize(int *width = NULL) const;
107
108
109 // overridden base class virtuals
110 virtual void DoGetPosition(int *x, int *y) const;
111 virtual void DoGetSize(int *width, int *height) const;
112 virtual void DoMoveWindow(int x, int y, int width, int height);
113 virtual wxSize DoGetBestSize() const;
114
115 virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
116
117 virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
118
119
120 // the labels windows, if any
121 wxSubwindows *m_labels;
122
123 int m_rangeMin;
124 int m_rangeMax;
125 int m_pageSize;
126 int m_lineSize;
127 int m_tickFreq;
128
129
130 DECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider)
131 };
132
133 #endif // _WX_SLIDER95_H_
134