| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: checkbox.h
- // Purpose: interface of wxCheckBox
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- /*
- * wxCheckBox style flags
- * (Using wxCHK_* because wxCB_* is used by wxComboBox).
- * Determine whether to use a 3-state or 2-state
- * checkbox. 3-state enables to differentiate
- * between 'unchecked', 'checked' and 'undetermined'.
- *
- * In addition to the styles here it is also possible to specify just 0 which
- * is treated the same as wxCHK_2STATE for compatibility (but using explicit
- * flag is preferred).
- */
- #define wxCHK_2STATE 0x4000
- #define wxCHK_3STATE 0x1000
- /*
- * If this style is set the user can set the checkbox to the
- * undetermined state. If not set the undetermined set can only
- * be set programmatically.
- * This style can only be used with 3 state checkboxes.
- */
- #define wxCHK_ALLOW_3RD_STATE_FOR_USER 0x2000
- /**
- The possible states of a 3-state wxCheckBox (Compatible with the 2-state
- wxCheckBox).
- */
- enum wxCheckBoxState
- {
- wxCHK_UNCHECKED,
- wxCHK_CHECKED,
- wxCHK_UNDETERMINED ///< 3-state checkbox only
- };
- /**
- @class wxCheckBox
- A checkbox is a labelled box which by default is either on (checkmark is
- visible) or off (no checkmark). Optionally (when the wxCHK_3STATE style
- flag is set) it can have a third state, called the mixed or undetermined
- state. Often this is used as a "Does Not Apply" state.
- @beginStyleTable
- @style{wxCHK_2STATE}
- Create a 2-state checkbox. This is the default.
- @style{wxCHK_3STATE}
- Create a 3-state checkbox. Not implemented in wxOS2 and
- wxGTK built against GTK+ 1.2.
- @style{wxCHK_ALLOW_3RD_STATE_FOR_USER}
- By default a user can't set a 3-state checkbox to the third state.
- It can only be done from code. Using this flags allows the user to
- set the checkbox to the third state by clicking.
- @style{wxALIGN_RIGHT}
- Makes the text appear on the left of the checkbox.
- @endStyleTable
- @beginEventEmissionTable{wxCommandEvent}
- @event{EVT_CHECKBOX(id, func)}
- Process a @c wxEVT_CHECKBOX event, when the checkbox
- is clicked.
- @endEventTable
- @library{wxcore}
- @category{ctrl}
- @appearance{checkbox}
- @see wxRadioButton, wxCommandEvent
- */
- class wxCheckBox : public wxControl
- {
- public:
- /**
- Default constructor.
- @see Create(), wxValidator
- */
- wxCheckBox();
- /**
- Constructor, creating and showing a checkbox.
- @param parent
- Parent window. Must not be @NULL.
- @param id
- Checkbox identifier. The value wxID_ANY indicates a default value.
- @param label
- Text to be displayed next to the checkbox.
- @param pos
- Checkbox position.
- If ::wxDefaultPosition is specified then a default position is chosen.
- @param size
- Checkbox size.
- If ::wxDefaultSize is specified then a default size is chosen.
- @param style
- Window style. See wxCheckBox.
- @param validator
- Window validator.
- @param name
- Window name.
- @see Create(), wxValidator
- */
- wxCheckBox(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 = wxCheckBoxNameStr);
- /**
- Destructor, destroying the checkbox.
- */
- virtual ~wxCheckBox();
- /**
- Creates the checkbox for two-step construction. See wxCheckBox()
- for 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 = wxCheckBoxNameStr);
- /**
- Gets the state of a 2-state checkbox.
- @return Returns @true if it is checked, @false otherwise.
- */
- virtual bool GetValue() const;
- /**
- Gets the state of a 3-state checkbox. Asserts when the function is used
- with a 2-state checkbox.
- */
- wxCheckBoxState Get3StateValue() const;
- /**
- Returns whether or not the checkbox is a 3-state checkbox.
- @return @true if this checkbox is a 3-state checkbox, @false if it's
- a 2-state checkbox.
- */
- bool Is3State() const;
- /**
- Returns whether or not the user can set the checkbox to the third
- state.
- @return @true if the user can set the third state of this checkbox,
- @false if it can only be set programmatically or if it's a
- 2-state checkbox.
- */
- bool Is3rdStateAllowedForUser() const;
- /**
- This is just a maybe more readable synonym for GetValue(): just as the
- latter, it returns @true if the checkbox is checked and @false
- otherwise.
- */
- bool IsChecked() const;
- /**
- Sets the checkbox to the given state. This does not cause a
- @c wxEVT_CHECKBOX event to get emitted.
- @param state
- If @true, the check is on, otherwise it is off.
- */
- virtual void SetValue(bool state);
- /**
- Sets the checkbox to the given state. This does not cause a
- @c wxEVT_CHECKBOX event to get emitted.
- Asserts when the checkbox is a 2-state checkbox and setting the state
- to wxCHK_UNDETERMINED.
- */
- void Set3StateValue(wxCheckBoxState state);
- };
|