]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/spinbutt.h
hack to allow icons in wxStaticBitmap as well as bitmaps
[wxWidgets.git] / include / wx / msw / spinbutt.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: spinbutt.h
3 // Purpose: wxSpinButton class
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_SPINBUTT_H_
13 #define _WX_SPINBUTT_H_
14
15 #ifdef __GNUG__
16 #pragma interface "spinbutt.h"
17 #endif
18
19 #include "wx/control.h"
20 #include "wx/event.h"
21
22 #if defined(__WIN95__)
23
24 /*
25 The wxSpinButton is like a small scrollbar than is often placed next
26 to a text control.
27
28 wxSP_HORIZONTAL: horizontal spin button
29 wxSP_VERTICAL: vertical spin button (the default)
30 wxSP_ARROW_KEYS: arrow keys increment/decrement value
31 wxSP_WRAP: value wraps at either end
32 */
33
34 class WXDLLEXPORT wxSpinButton : public wxControl
35 {
36 DECLARE_DYNAMIC_CLASS(wxSpinButton)
37
38 public:
39 /*
40 * Public interface
41 */
42 wxSpinButton();
43
44 wxSpinButton(wxWindow *parent,
45 wxWindowID id = -1,
46 const wxPoint& pos = wxDefaultPosition,
47 const wxSize& size = wxDefaultSize,
48 long style = wxSP_VERTICAL | wxSP_ARROW_KEYS,
49 const wxString& name = "wxSpinButton")
50 {
51 Create(parent, id, pos, size, style, name);
52 }
53
54 virtual ~wxSpinButton();
55
56 bool Create(wxWindow *parent,
57 wxWindowID id = -1,
58 const wxPoint& pos = wxDefaultPosition,
59 const wxSize& size = wxDefaultSize,
60 long style = wxSP_VERTICAL | wxSP_ARROW_KEYS,
61 const wxString& name = "wxSpinButton");
62
63
64 // Attributes
65 ////////////////////////////////////////////////////////////////////////////
66
67 int GetValue() const ;
68 void SetValue(int val) ;
69 void SetRange(int minVal, int maxVal);
70 int GetMin() const { return m_min; }
71 int GetMax() const { return m_max; }
72
73 // Operations
74 ////////////////////////////////////////////////////////////////////////////
75
76 void Command(wxCommandEvent& event) { ProcessCommand(event); };
77
78 // IMPLEMENTATION
79 virtual bool MSWCommand(WXUINT param, WXWORD id);
80 virtual bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam, WXLPARAM *result);
81 virtual void MSWOnVScroll(WXWORD wParam, WXWORD pos, WXHWND control);
82 virtual void MSWOnHScroll(WXWORD wParam, WXWORD pos, WXHWND control);
83
84 protected:
85 int m_min;
86 int m_max;
87 };
88
89 class WXDLLEXPORT wxSpinEvent: public wxScrollEvent
90 {
91 DECLARE_DYNAMIC_CLASS(wxSpinEvent)
92
93 public:
94 wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
95 };
96
97 typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&);
98
99 // Spin events
100
101 #define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }
102 #define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }
103
104 #define EVT_SPIN(id, func) \
105 { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
106 { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
107 { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
108 { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
109 { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
110 { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\
111 { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },
112
113 #endif
114 // _WX_WIN95__
115 #endif
116 // _WX_SPINBUTT_H_