|
| | checkbox_widget (widget *parent, std::shared_ptr< delegate_type > delegate, button_widget_attribute auto &&...attributes) noexcept |
| | Construct a checkbox widget.
|
| |
| | checkbox_widget (widget *parent, different_from< std::shared_ptr< delegate_type > > auto &&value, button_widget_attribute auto &&...attributes) noexcept |
| | Construct a checkbox widget with a default button delegate.
|
| |
template<different_from< std::shared_ptr< delegate_type > > Value, forward_of< observer< observer_decay_t< Value > > > OnValue, button_widget_attribute... Attributes>
requires requires { make_default_toggle_button_delegate(hi_forward(value), hi_forward(on_value)); } |
| | checkbox_widget (widget *parent, Value &&value, OnValue &&on_value, Attributes &&...attributes) noexcept |
| | Construct a checkbox widget with a default button delegate.
|
| |
template<different_from< std::shared_ptr< delegate_type > > Value, forward_of< observer< observer_decay_t< Value > > > OnValue, forward_of< observer< observer_decay_t< Value > > > OffValue, button_widget_attribute... Attributes>
requires requires { make_default_toggle_button_delegate(hi_forward(value), hi_forward(on_value), hi_forward(off_value)); } |
| | checkbox_widget (widget *parent, Value &&value, OnValue &&on_value, OffValue &&off_value, Attributes &&...attributes) noexcept |
| | Construct a checkbox widget with a default button delegate.
|
| |
|
| abstract_button_widget (widget *parent, std::shared_ptr< delegate_type > delegate) noexcept |
| |
| button_state | state () const noexcept |
| | Get the current state of the button.
|
| |
| | widget (widget *parent) noexcept |
| |
|
| widget (const widget &)=delete |
| |
|
widget & | operator= (const widget &)=delete |
| |
|
| widget (widget &&)=delete |
| |
|
widget & | operator= (widget &&)=delete |
| |
| generator< widget_intf & > | children (bool include_invisible) noexcept override |
| | Get a list of child widgets.
|
| |
| hitbox | hitbox_test (point2 position) const noexcept override |
| | Find the widget that is under the mouse cursor.
|
| |
| virtual hitbox | hitbox_test_from_parent (point2 position) const noexcept |
| | Call hitbox_test from a parent widget.
|
| |
| virtual hitbox | hitbox_test_from_parent (point2 position, hitbox sibling_hitbox) const noexcept |
| | Call hitbox_test from a parent widget.
|
| |
| bool | accepts_keyboard_focus (keyboard_focus_group group) const noexcept override |
| | Check if the widget will accept keyboard focus.
|
| |
| box_constraints | update_constraints () noexcept override |
| | Update the constraints of the widget.
|
| |
| void | set_layout (widget_layout const &context) noexcept override |
| | Update the internal layout of the widget.
|
| |
| widget_layout const & | layout () const noexcept override |
| | Get the current layout for this widget.
|
| |
| void | draw (draw_context const &context) noexcept override |
| | Draw the widget.
|
| |
| bool | process_event (gui_event const &event) const noexcept override |
| | Send a event to the window.
|
| |
| void | request_redraw () const noexcept override |
| | Request the widget to be redrawn on the next frame.
|
| |
| bool | handle_event (gui_event const &event) noexcept override |
| | Handle command.
|
| |
| bool | handle_event_recursive (gui_event const &event, std::vector< widget_id > const &reject_list=std::vector< widget_id >{}) noexcept override |
| | Handle command recursive.
|
| |
| virtual widget_id | find_next_widget (widget_id current_keyboard_widget, keyboard_focus_group group, keyboard_focus_direction direction) const noexcept override |
| | Find the next widget that handles keyboard focus.
|
| |
| widget_id | find_first_widget (keyboard_focus_group group) const noexcept override |
| |
| widget_id | find_last_widget (keyboard_focus_group group) const noexcept override |
| |
| bool | is_first (keyboard_focus_group group) const noexcept |
| | Is this widget the first widget in the parent container.
|
| |
| bool | is_last (keyboard_focus_group group) const noexcept |
| | Is this widget the last widget in the parent container.
|
| |
| void | scroll_to_show (hi::aarectangle rectangle) noexcept override |
| | Scroll to show the given rectangle on the window.
|
| |
| void | set_window (gui_window *window) noexcept override |
| | Set the window for this tree of widgets.
|
| |
| gui_window * | window () const noexcept override |
| | Get the window that the widget is owned by.
|
| |
|
hi::theme const & | theme () const noexcept |
| |
|
gfx_surface const * | surface () const noexcept |
| |
|
virtual color | foreground_color () const noexcept |
| |
|
virtual color | focus_color () const noexcept |
| |
|
virtual color | accent_color () const noexcept |
| |
|
virtual color | label_color () const noexcept |
| |
| virtual generator< widget_intf & > | children (bool include_invisible) noexcept=0 |
| | Get a list of child widgets.
|
| |
| virtual generator< widget_intf const & > | children (bool include_invisible) const noexcept final |
| | Get a list of child widgets.
|
| |
| virtual void | scroll_to_show (hi::aarectangle rectangle) noexcept=0 |
| | Scroll to show the given rectangle on the window.
|
| |
| void | scroll_to_show () noexcept |
| | Scroll to show the important part of the widget.
|
| |
|
| widget_intf (widget_intf *parent) noexcept |
| |
| std::vector< widget_id > | parent_chain () const noexcept |
| | Get a list of parents of a given widget.
|
| |
| void | scroll_to_show () noexcept |
| | Scroll to show the important part of the widget.
|
| |
A GUI widget that permits the user to make a binary choice.
A checkbox is a button with three different states with different visual representation:
Each time a user activates the checkbox-button it toggles between the 'on' and 'off' states. If the checkbox is in the 'other' state an activation will switch it to the 'off' state.
A checkbox cannot itself switch state to 'other', this state may be caused by external factors. The canonical example is a tree structure of checkboxes; when child checkboxes have different values from each other the parent checkbox state is set to 'other'.
In the following example we create a checkbox widget on the window which observes value. When the value is 1 the checkbox is 'on', when the value is 2 the checkbox is 'off'.
observer<int> value = 0;
cb.off_label =
txt(
"off");
cb.other_label =
txt(
"other");