]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/bmpbuttn.h
Fixed bug: wxPropertyGridInterface::SetPropertyReadOnly() with wxPG_DONT_RECURSE...
[wxWidgets.git] / interface / wx / bmpbuttn.h
CommitLineData
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*/
68class wxBitmapButton : public wxButton
69{
70public:
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