]>
Commit | Line | Data |
---|---|---|
23324ae1 FM |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: bmpbuttn.h | |
e54c96f1 | 3 | // Purpose: interface of wxBitmapButton |
23324ae1 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | @class wxBitmapButton | |
7c913512 | 11 | |
23324ae1 | 12 | A bitmap button is a control that contains a bitmap. |
8024723d FM |
13 | It may be placed on a wxDialog or a wxPanel, or indeed almost any other window. |
14 | ||
15 | @remarks | |
16 | A bitmap button can be supplied with a single bitmap, and wxWidgets will draw | |
17 | all button states using this bitmap. If the application needs more control, | |
18 | additional bitmaps for the selected state, unpressed focused state, and greyed-out | |
19 | state may be supplied. | |
20 | ||
3a74a290 | 21 | @section bitmapbutton_states Button states |
8024723d | 22 | |
3a74a290 | 23 | This class supports bitmaps for several different states: |
8024723d FM |
24 | @li @b normal: this is the bitmap shown in the default state, it must be always |
25 | valid while all the other bitmaps are optional and don't have to be set. | |
26 | @li @b disabled: bitmap shown when the button is disabled. | |
27 | @li @b selected: bitmap shown when the button is pushed (e.g. while the user | |
28 | keeps the mouse button pressed on it) | |
29 | @li @b focus: bitmap shown when the button has keyboard focus but is not pressed. | |
30 | @li @b hover: bitmap shown when the mouse is over the button (but it is not pressed). | |
31 | Notice that if hover bitmap is not specified but the current platform UI uses | |
32 | hover images for the buttons (such as Windows XP or GTK+), then the focus bitmap | |
33 | is used for hover state as well. This makes it possible to set focus bitmap only | |
34 | to get reasonably good behaviour on all platforms. | |
7c913512 | 35 | |
23324ae1 | 36 | @beginStyleTable |
8c6791e4 | 37 | @style{wxBU_AUTODRAW} |
23324ae1 FM |
38 | If this is specified, the button will be drawn automatically using |
39 | the label bitmap only, providing a 3D-look border. If this style is | |
40 | not specified, the button will be drawn without borders and using | |
8024723d | 41 | all provided bitmaps. Has effect only under MS Windows. |
8c6791e4 | 42 | @style{wxBU_LEFT} |
8024723d | 43 | Left-justifies the bitmap label. Has effect only under MS Windows. |
8c6791e4 | 44 | @style{wxBU_TOP} |
8024723d FM |
45 | Aligns the bitmap label to the top of the button. |
46 | Has effect only under MS Windows. | |
8c6791e4 | 47 | @style{wxBU_RIGHT} |
8024723d | 48 | Right-justifies the bitmap label. Has effect only under MS Windows. |
8c6791e4 | 49 | @style{wxBU_BOTTOM} |
8024723d FM |
50 | Aligns the bitmap label to the bottom of the button. |
51 | Has effect only under MS Windows. | |
23324ae1 | 52 | @endStyleTable |
7c913512 | 53 | |
8024723d FM |
54 | Note that the wxBU_EXACTFIT style supported by wxButton is not used by this |
55 | class as bitmap buttons don't have any minimal standard size by default. | |
56 | ||
3051a44a | 57 | @beginEventEmissionTable{wxCommandEvent} |
8c6791e4 | 58 | @event{EVT_BUTTON(id, func)} |
8024723d | 59 | Process a wxEVT_COMMAND_BUTTON_CLICKED event, when the button is clicked. |
23324ae1 | 60 | @endEventTable |
7c913512 | 61 | |
23324ae1 FM |
62 | @library{wxcore} |
63 | @category{ctrl} | |
7e59b885 | 64 | @appearance{bitmapbutton.png} |
7c913512 | 65 | |
e54c96f1 | 66 | @see wxButton |
23324ae1 FM |
67 | */ |
68 | class wxBitmapButton : public wxButton | |
69 | { | |
70 | public: | |
8024723d FM |
71 | /** |
72 | Default ctor. | |
73 | */ | |
74 | wxBitmapButton(); | |
75 | ||
23324ae1 FM |
76 | /** |
77 | Constructor, creating and showing a button. | |
8024723d | 78 | |
7c913512 | 79 | @param parent |
4cc4bfaf | 80 | Parent window. Must not be @NULL. |
7c913512 | 81 | @param id |
4cc4bfaf | 82 | Button identifier. The value wxID_ANY indicates a default value. |
7c913512 | 83 | @param bitmap |
4cc4bfaf | 84 | Bitmap to be displayed. |
7c913512 | 85 | @param pos |
4cc4bfaf | 86 | Button position. |
dc1b07fd | 87 | If ::wxDefaultPosition is specified then a default position is chosen. |
7c913512 | 88 | @param size |
dc1b07fd FM |
89 | Button size. |
90 | If ::wxDefaultSize is specified then the button is sized appropriately | |
91 | for the bitmap. | |
7c913512 | 92 | @param style |
4cc4bfaf | 93 | Window style. See wxBitmapButton. |
7c913512 | 94 | @param validator |
4cc4bfaf | 95 | Window validator. |
7c913512 | 96 | @param name |
4cc4bfaf | 97 | Window name. |
8024723d FM |
98 | |
99 | @remarks The bitmap parameter is normally the only bitmap you need to provide, | |
100 | and wxWidgets will draw the button correctly in its different states. | |
101 | If you want more control, call any of the functions SetBitmapSelected(), | |
102 | SetBitmapFocus(), SetBitmapDisabled(). | |
103 | ||
4cc4bfaf | 104 | @see Create(), wxValidator |
23324ae1 | 105 | */ |
7c913512 FM |
106 | wxBitmapButton(wxWindow* parent, wxWindowID id, |
107 | const wxBitmap& bitmap, | |
108 | const wxPoint& pos = wxDefaultPosition, | |
109 | const wxSize& size = wxDefaultSize, | |
110 | long style = wxBU_AUTODRAW, | |
111 | const wxValidator& validator = wxDefaultValidator, | |
a6052817 | 112 | const wxString& name = wxButtonNameStr); |
23324ae1 FM |
113 | |
114 | /** | |
115 | Destructor, destroying the button. | |
116 | */ | |
d2aa927a | 117 | virtual ~wxBitmapButton(); |
23324ae1 FM |
118 | |
119 | /** | |
8024723d FM |
120 | Button creation function for two-step creation. |
121 | For more details, see wxBitmapButton(). | |
23324ae1 FM |
122 | */ |
123 | bool Create(wxWindow* parent, wxWindowID id, | |
124 | const wxBitmap& bitmap, | |
a6052817 | 125 | const wxPoint& pos = wxDefaultPosition, |
23324ae1 | 126 | const wxSize& size = wxDefaultSize, |
a6052817 FM |
127 | long style = wxBU_AUTODRAW, |
128 | const wxValidator& validator = wxDefaultValidator, | |
129 | const wxString& name = wxButtonNameStr); | |
23324ae1 FM |
130 | |
131 | //@{ | |
132 | /** | |
8024723d FM |
133 | Returns the bitmap for the disabled state, which may be invalid. |
134 | ||
d29a9a8a | 135 | @return A reference to the disabled state bitmap. |
8024723d | 136 | |
4cc4bfaf | 137 | @see SetBitmapDisabled() |
23324ae1 | 138 | */ |
8024723d FM |
139 | const wxBitmap& GetBitmapDisabled() const; |
140 | wxBitmap& GetBitmapDisabled(); | |
23324ae1 FM |
141 | //@} |
142 | ||
143 | //@{ | |
144 | /** | |
8024723d FM |
145 | Returns the bitmap for the focused state, which may be invalid. |
146 | ||
d29a9a8a | 147 | @return A reference to the focused state bitmap. |
8024723d | 148 | |
4cc4bfaf | 149 | @see SetBitmapFocus() |
23324ae1 | 150 | */ |
8024723d | 151 | const wxBitmap& GetBitmapFocus() const; |
882678eb | 152 | wxBitmap& GetBitmapFocus(); |
23324ae1 FM |
153 | //@} |
154 | ||
155 | //@{ | |
156 | /** | |
8024723d FM |
157 | Returns the bitmap used when the mouse is over the button, which may be invalid. |
158 | ||
4cc4bfaf | 159 | @see SetBitmapHover() |
23324ae1 | 160 | */ |
882678eb FM |
161 | const wxBitmap& GetBitmapHover() const; |
162 | wxBitmap& GetBitmapHover(); | |
23324ae1 FM |
163 | //@} |
164 | ||
165 | //@{ | |
166 | /** | |
167 | Returns the label bitmap (the one passed to the constructor), always valid. | |
8024723d | 168 | |
d29a9a8a | 169 | @return A reference to the button's label bitmap. |
8024723d | 170 | |
4cc4bfaf | 171 | @see SetBitmapLabel() |
23324ae1 | 172 | */ |
882678eb FM |
173 | const wxBitmap& GetBitmapLabel() const; |
174 | wxBitmap& GetBitmapLabel(); | |
23324ae1 FM |
175 | //@} |
176 | ||
177 | /** | |
178 | Returns the bitmap for the selected state. | |
8024723d | 179 | |
d29a9a8a | 180 | @return A reference to the selected state bitmap. |
8024723d | 181 | |
4cc4bfaf | 182 | @see SetBitmapSelected() |
23324ae1 | 183 | */ |
1413ac04 | 184 | const wxBitmap& GetBitmapSelected() const; |
23324ae1 FM |
185 | |
186 | /** | |
187 | Sets the bitmap for the disabled button appearance. | |
8024723d | 188 | |
7c913512 | 189 | @param bitmap |
4cc4bfaf | 190 | The bitmap to set. |
8024723d | 191 | |
4cc4bfaf FM |
192 | @see GetBitmapDisabled(), SetBitmapLabel(), |
193 | SetBitmapSelected(), SetBitmapFocus() | |
23324ae1 | 194 | */ |
d2aa927a | 195 | virtual void SetBitmapDisabled(const wxBitmap& bitmap); |
23324ae1 FM |
196 | |
197 | /** | |
198 | Sets the bitmap for the button appearance when it has the keyboard focus. | |
8024723d | 199 | |
7c913512 | 200 | @param bitmap |
4cc4bfaf | 201 | The bitmap to set. |
8024723d | 202 | |
4cc4bfaf FM |
203 | @see GetBitmapFocus(), SetBitmapLabel(), |
204 | SetBitmapSelected(), SetBitmapDisabled() | |
23324ae1 | 205 | */ |
d2aa927a | 206 | virtual void SetBitmapFocus(const wxBitmap& bitmap); |
23324ae1 FM |
207 | |
208 | /** | |
209 | Sets the bitmap to be shown when the mouse is over the button. | |
8024723d | 210 | |
1e24c2af | 211 | @since 2.7.0 |
8024723d FM |
212 | |
213 | The hover bitmap is currently only supported in wxMSW. | |
214 | ||
4cc4bfaf | 215 | @see GetBitmapHover() |
23324ae1 | 216 | */ |
d2aa927a | 217 | virtual void SetBitmapHover(const wxBitmap& bitmap); |
23324ae1 FM |
218 | |
219 | /** | |
220 | Sets the bitmap label for the button. | |
8024723d | 221 | |
7c913512 | 222 | @param bitmap |
4cc4bfaf | 223 | The bitmap label to set. |
8024723d | 224 | |
23324ae1 | 225 | @remarks This is the bitmap used for the unselected state, and for all |
4cc4bfaf | 226 | other states if no other bitmaps are provided. |
8024723d | 227 | |
4cc4bfaf | 228 | @see GetBitmapLabel() |
23324ae1 | 229 | */ |
d2aa927a | 230 | virtual void SetBitmapLabel(const wxBitmap& bitmap); |
23324ae1 FM |
231 | |
232 | /** | |
233 | Sets the bitmap for the selected (depressed) button appearance. | |
8024723d | 234 | |
7c913512 | 235 | @param bitmap |
4cc4bfaf | 236 | The bitmap to set. |
23324ae1 | 237 | */ |
d2aa927a | 238 | virtual void SetBitmapSelected(const wxBitmap& bitmap); |
23324ae1 | 239 | }; |
e54c96f1 | 240 |