1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
|
/////////////////////////////////////////////////////////////////////////////
// Name: radiobut.h
// Purpose: interface of wxRadioButton
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxRadioButton
A radio button item is a button which usually denotes one of several
mutually exclusive options. It has a text label next to a (usually) round
button.
Radio buttons are typically used in groups of mutually-exclusive buttons,
i.e. exactly one of the buttons in the group is checked, and the other ones
are unchecked automatically. Such groups are created implicitly, but can
also be started explicitly by using @c wxRB_GROUP style: a button with this
style starts a new group and will become the initial selection in this
group. Alternatively, a radio button may be excluded from the group that it
would otherwise belong to by using @c wxRB_SINGLE style.
To find the other elements of the same radio button group, you can use
GetFirstInGroup(), GetPreviousInGroup(), GetNextInGroup() and
GetLastInGroup() functions.
@beginStyleTable
@style{wxRB_GROUP}
Marks the beginning of a new group of radio buttons.
@style{wxRB_SINGLE}
Creates a radio button which is not part of any radio button group.
When this style is used, no other radio buttons will be turned off
automatically when this button is turned on and such behaviour will
need to be implemented manually, in the event handler for this
button. This style is currently only supported in wxMSW and wxGTK
(since version 3.2.x). In the other ports it can be specified, but
single radio buttons can't be turned off, making them not very
useful.
@endStyleTable
@beginEventEmissionTable{wxCommandEvent}
@event{EVT_RADIOBUTTON(id, func)}
Process a @c wxEVT_RADIOBUTTON event, when the
radiobutton is clicked.
@endEventTable
@library{wxcore}
@category{ctrl}
@appearance{radiobutton}
@see @ref overview_events, wxRadioBox, wxCheckBox
*/
class wxRadioButton : public wxControl
{
public:
/**
Default constructor.
@see Create(), wxValidator
*/
wxRadioButton();
/**
Constructor, creating and showing a radio button.
@param parent
Parent window. Must not be @NULL.
@param id
Window identifier. The value @c wxID_ANY indicates a default value.
@param label
Label for the radio button.
@param pos
Window position. If ::wxDefaultPosition is specified then a default
position is chosen.
@param size
Window size. If ::wxDefaultSize is specified then a default size
is chosen.
@param style
Window style. See wxRadioButton.
@param validator
Window validator.
@param name
Window name.
@see Create(), wxValidator
*/
wxRadioButton(wxWindow* parent, wxWindowID id,
const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxRadioButtonNameStr);
/**
Destructor, destroying the radio button item.
*/
virtual ~wxRadioButton();
/**
Creates the choice for two-step construction. See wxRadioButton() for
further details.
*/
bool Create(wxWindow* parent, wxWindowID id, const wxString& label,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxRadioButtonNameStr);
/**
Returns @true if the radio button is checked, @false otherwise.
*/
virtual bool GetValue() const;
/**
Sets the radio button to checked or unchecked status. This does not cause a
@c wxEVT_RADIOBUTTON event to get emitted.
If the radio button belongs to a radio group exactly one button in the
group may be checked and so this method can be only called with @a
value set to @true. To uncheck a radio button in a group you must check
another button in the same group.
@note Under MSW, the focused radio button is always selected, i.e. its
value is @true. And, conversely, calling @c SetValue(true) will
also set focus to the radio button if the focus had previously been
on another radio button in the same group -- as otherwise setting
it on wouldn't work.
@param value
@true to check, @false to uncheck.
*/
virtual void SetValue(bool value);
/**
Returns the first button of the radio button group this button belongs
to.
For a radio button with @c wxRB_SINGLE style, this function returns this
button itself, as it is the only member of its group. Otherwise, the
function returns the closest previous radio button with @c wxRB_GROUP
style (which could still be this button itself) or the first radio
button in the same window.
The returned value is never @NULL.
@see GetPreviousInGroup(), GetNextInGroup(), GetLastInGroup()
@since 3.1.5
*/
wxRadioButton* GetFirstInGroup() const;
/**
Returns the last button of the radio button group this button belongs
to.
Similarly to GetFirstInGroup(), this function returns this button
itself if it has @c wxRB_SINGLE style. Otherwise, the function returns
the last button before the next button with @c wxRB_GROUP style or the
last radio button in the same window.
The returned value is never @NULL.
@see GetPreviousInGroup(), GetNextInGroup()
@since 3.1.5
*/
wxRadioButton* GetLastInGroup() const;
/**
Returns the previous radio button in the same group.
The return value is @NULL if there is no predecessor or if this button
has @c wxRB_SINGLE style.
@see GetFirstInGroup(), GetNextInGroup(), GetLastInGroup()
@since 3.1.5
*/
wxRadioButton* GetPreviousInGroup() const;
/**
Returns the next radio button in the same group.
The return value is @NULL if there is no successor or if this button
has @c wxRB_SINGLE style.
@see GetFirstInGroup(), GetPreviousInGroup(), GetLastInGroup()
@since 3.1.5
*/
wxRadioButton* GetNextInGroup() const;
};
|