| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: spinbutt.h |
| 3 | // Purpose: interface of wxSpinEvent, wxSpinButton |
| 4 | // Author: wxWidgets team |
| 5 | // RCS-ID: $Id$ |
| 6 | // Licence: wxWindows licence |
| 7 | ///////////////////////////////////////////////////////////////////////////// |
| 8 | |
| 9 | /** |
| 10 | @class wxSpinEvent |
| 11 | |
| 12 | This event class is used for the events generated by wxSpinButton and wxSpinCtrl. |
| 13 | |
| 14 | @beginEventTable{wxSpinEvent} |
| 15 | @event{EVT_SPIN(id, func)} |
| 16 | Generated whenever an arrow is pressed. |
| 17 | @event{EVT_SPIN_UP(id, func)} |
| 18 | Generated when left/up arrow is pressed. |
| 19 | @event{EVT_SPIN_DOWN(id, func)} |
| 20 | Generated when right/down arrow is pressed. |
| 21 | @endEventTable |
| 22 | |
| 23 | Note that if you handle both SPIN and UP or DOWN events, you will be notified |
| 24 | about each of them twice: first the UP/DOWN event will be received and then, |
| 25 | if it wasn't vetoed, the SPIN event will be sent. |
| 26 | |
| 27 | @library{wxcore} |
| 28 | @category{events} |
| 29 | |
| 30 | @see wxSpinButton and wxSpinCtrl |
| 31 | */ |
| 32 | class wxSpinEvent : public wxNotifyEvent |
| 33 | { |
| 34 | public: |
| 35 | /** |
| 36 | The constructor is not normally used by the user code. |
| 37 | */ |
| 38 | wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); |
| 39 | |
| 40 | /** |
| 41 | Retrieve the current spin button or control value. |
| 42 | */ |
| 43 | int GetPosition() const; |
| 44 | |
| 45 | /** |
| 46 | Set the value associated with the event. |
| 47 | */ |
| 48 | void SetPosition(int pos); |
| 49 | }; |
| 50 | |
| 51 | |
| 52 | |
| 53 | /** |
| 54 | @class wxSpinButton |
| 55 | |
| 56 | A wxSpinButton has two small up and down (or left and right) arrow buttons. |
| 57 | |
| 58 | It is often used next to a text control for increment and decrementing a value. |
| 59 | Portable programs should try to use wxSpinCtrl instead as wxSpinButton is not |
| 60 | implemented for all platforms but wxSpinCtrl is as it degenerates to a simple |
| 61 | wxTextCtrl on such platforms. |
| 62 | |
| 63 | @note the range supported by this control (and wxSpinCtrl) depends on the |
| 64 | platform but is at least @c -0x8000 to @c 0x7fff. Under GTK and |
| 65 | Win32 with sufficiently new version of @c comctrl32.dll (at least 4.71 |
| 66 | is required, 5.80 is recommended) the full 32 bit range is supported. |
| 67 | |
| 68 | @beginStyleTable |
| 69 | @style{wxSP_HORIZONTAL} |
| 70 | Specifies a horizontal spin button (note that this style is not |
| 71 | supported in wxGTK). |
| 72 | @style{wxSP_VERTICAL} |
| 73 | Specifies a vertical spin button. |
| 74 | @style{wxSP_ARROW_KEYS} |
| 75 | The user can use arrow keys to change the value. |
| 76 | @style{wxSP_WRAP} |
| 77 | The value wraps at the minimum and maximum. |
| 78 | @endStyleTable |
| 79 | |
| 80 | @beginEventEmissionTable{wxSpinEvent} |
| 81 | @event{EVT_SPIN(id, func)} |
| 82 | Generated whenever an arrow is pressed. |
| 83 | @event{EVT_SPIN_UP(id, func)} |
| 84 | Generated when left/up arrow is pressed. |
| 85 | @event{EVT_SPIN_DOWN(id, func)} |
| 86 | Generated when right/down arrow is pressed. |
| 87 | @endEventTable |
| 88 | |
| 89 | Note that if you handle both SPIN and UP or DOWN events, you will be notified |
| 90 | about each of them twice: first the UP/DOWN event will be received and then, |
| 91 | if it wasn't vetoed, the SPIN event will be sent. |
| 92 | |
| 93 | @library{wxcore} |
| 94 | @category{ctrl} |
| 95 | @appearance{spinbutton.png} |
| 96 | |
| 97 | @see wxSpinCtrl |
| 98 | */ |
| 99 | class wxSpinButton : public wxControl |
| 100 | { |
| 101 | public: |
| 102 | /** |
| 103 | Default constructor. |
| 104 | */ |
| 105 | wxSpinButton(); |
| 106 | |
| 107 | /** |
| 108 | Constructor, creating and showing a spin button. |
| 109 | |
| 110 | @param parent |
| 111 | Parent window. Must not be @NULL. |
| 112 | @param id |
| 113 | Window identifier. The value wxID_ANY indicates a default value. |
| 114 | @param pos |
| 115 | Window position. |
| 116 | If ::wxDefaultPosition is specified then a default position is chosen. |
| 117 | @param size |
| 118 | Window size. |
| 119 | If ::wxDefaultSize is specified then a default size is chosen. |
| 120 | @param style |
| 121 | Window style. See wxSpinButton class description. |
| 122 | @param name |
| 123 | Window name. |
| 124 | |
| 125 | @see Create() |
| 126 | */ |
| 127 | wxSpinButton(wxWindow* parent, wxWindowID id = -1, |
| 128 | const wxPoint& pos = wxDefaultPosition, |
| 129 | const wxSize& size = wxDefaultSize, |
| 130 | long style = wxSP_VERTICAL, |
| 131 | const wxString& name = "spinButton"); |
| 132 | |
| 133 | /** |
| 134 | Destructor, destroys the spin button control. |
| 135 | */ |
| 136 | virtual ~wxSpinButton(); |
| 137 | |
| 138 | /** |
| 139 | Scrollbar creation function called by the spin button constructor. |
| 140 | See wxSpinButton() for details. |
| 141 | */ |
| 142 | bool Create(wxWindow* parent, wxWindowID id = -1, |
| 143 | const wxPoint& pos = wxDefaultPosition, |
| 144 | const wxSize& size = wxDefaultSize, |
| 145 | long style = wxSP_VERTICAL, |
| 146 | const wxString& name = "wxSpinButton"); |
| 147 | |
| 148 | /** |
| 149 | Returns the maximum permissible value. |
| 150 | |
| 151 | @see SetRange() |
| 152 | */ |
| 153 | virtual int GetMax() const; |
| 154 | |
| 155 | /** |
| 156 | Returns the minimum permissible value. |
| 157 | |
| 158 | @see SetRange() |
| 159 | */ |
| 160 | virtual int GetMin() const; |
| 161 | |
| 162 | /** |
| 163 | Returns the current spin button value. |
| 164 | |
| 165 | @see SetValue() |
| 166 | */ |
| 167 | virtual int GetValue() const; |
| 168 | |
| 169 | /** |
| 170 | Sets the range of the spin button. |
| 171 | |
| 172 | @param min |
| 173 | The minimum value for the spin button. |
| 174 | @param max |
| 175 | The maximum value for the spin button. |
| 176 | |
| 177 | @see GetMin(), GetMax() |
| 178 | */ |
| 179 | virtual void SetRange(int min, int max); |
| 180 | |
| 181 | /** |
| 182 | Sets the value of the spin button. |
| 183 | |
| 184 | @param value |
| 185 | The value for the spin button. |
| 186 | */ |
| 187 | virtual void SetValue(int value); |
| 188 | }; |
| 189 | |