|
| | toggle_widget (widget *parent, std::shared_ptr< delegate_type > delegate, button_widget_attribute auto &&...attributes) noexcept |
| | Construct a toggle widget.
|
| |
template<different_from< std::shared_ptr< delegate_type > > Value, button_widget_attribute... Attributes>
requires requires { make_default_toggle_button_delegate(hi_forward(value)); } |
| | toggle_widget (widget *parent, Value &&value, Attributes &&...attributes) noexcept |
| | Construct a toggle 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)); } |
| | toggle_widget (widget *parent, Value &&value, OnValue &&on_value, Attributes &&...attributes) noexcept |
| | Construct a toggle 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)); } |
| | toggle_widget (widget *parent, Value &&value, OnValue &&on_value, OffValue &&off_value, Attributes &&...attributes) noexcept |
| | Construct a toggle widget with a default button delegate.
|
| |
|
| abstract_button_widget (widget *parent, std::shared_ptr< delegate_type > delegate) noexcept |
| |
|
| widget (widget *parent) noexcept |
| |
|
| widget (widget const &)=delete |
| |
|
| widget (widget &&)=delete |
| |
|
widget & | operator= (widget &&)=delete |
| |
|
widget & | operator= (widget const &)=delete |
| |
|
generator< widget & > | children (bool include_invisible) noexcept |
| |
| virtual hitbox | hitbox_test_from_parent (point2i position) const noexcept |
| | Call hitbox_test from a parent widget.
|
| |
| virtual hitbox | hitbox_test_from_parent (point2i position, hitbox sibling_hitbox) const noexcept |
| | Call hitbox_test from a parent widget.
|
| |
| void | reset_layout (gui_window *new_window, gfx_surface *new_surface, float new_scale) noexcept |
| | Reset the layout.
|
| |
|
virtual sub_theme_selector_type | sub_theme_selector () const noexcept |
| |
|
virtual bool | process_event (gui_event const &event) const noexcept |
| |
| virtual void | request_redraw () const noexcept |
| | Request the widget to be redrawn on the next frame.
|
| |
| virtual bool | handle_event_recursive (gui_event const &event, std::vector< widget_id > const &reject_list=std::vector< widget_id >{}) noexcept |
| | Handle command recursive.
|
| |
| virtual widget_id | find_next_widget (widget_id current_keyboard_widget, keyboard_focus_group group, keyboard_focus_direction direction) const noexcept |
| | Find the next widget that handles keyboard focus.
|
| |
|
widget_id | find_first_widget (keyboard_focus_group group) const noexcept |
| |
|
widget_id | find_last_widget (keyboard_focus_group group) const noexcept |
| |
|
bool | is_first (keyboard_focus_group group) const noexcept |
| |
|
bool | is_last (keyboard_focus_group group) const noexcept |
| |
| virtual void | scroll_to_show (hi::aarectanglei rectangle) noexcept |
| | Scroll to show the given rectangle on the window.
|
| |
| std::vector< widget_id > | parent_chain () const noexcept |
| | Get a list of parents of a given widget.
|
| |
| virtual bool | is_tab_button () const noexcept |
| | Check if this widget is a tab-button.
|
| |
|
template<forward_of< void()> Callback> |
| callback_token | subscribe (Callback &&callback, callback_flags flags=callback_flags::synchronous) const noexcept |
| |
|
awaiter_type | operator co_await () const noexcept |
| |
|
| std::shared_ptr< delegate_type > | delegate |
| | The delegate that controls the button widget.
|
| |
| observer< label > | on_label = tr("on") |
| | The label to show when the button is in the 'on' state.
|
| |
| observer< label > | off_label = tr("off") |
| | The label to show when the button is in the 'off' state.
|
| |
| observer< label > | other_label = tr("other") |
| | The label to show when the button is in the 'other' state.
|
| |
| observer< hi::alignment > | alignment |
| | The alignment of the button and on/off/other label.
|
| |
| widget_id | id = {} |
| | The numeric identifier of a widget.
|
| |
| widget * | parent = nullptr |
| | Pointer to the parent widget.
|
| |
| gui_window * | window = nullptr |
| | The window this widget is on.
|
| |
| gfx_surface * | surface = nullptr |
| | The surface this widget is drawn on.
|
| |
| observer< widget_mode > | mode = widget_mode::enabled |
| | The widget mode.
|
| |
| observer< bool > | hover = false |
| | Mouse cursor is hovering over the widget.
|
| |
| observer< bool > | clicked = false |
| | The widget is being clicked by the mouse.
|
| |
| observer< bool > | focus = false |
| | The widget has keyboard focus.
|
| |
| observer< widget_state > | state = widget_state::off |
| | The state of the widget.
|
| |
| size_t | semantic_layer = 0_uz |
| | The draw layer of the widget.
|
| |
| observer< extent2i > | minimum = extent2i{} |
| | The minimum size this widget is allowed to be.
|
| |
| observer< extent2i > | maximum = extent2i::large() |
| | The maximum size this widget is allowed to be.
|
| |
|
widget_layout | layout |
| |
template<fixed_string Name = "">
class hi::v1::toggle_widget< Name >
A GUI widget that permits the user to make a binary choice.
A toggle is very similar to a checkbox_widget. The semantic difference between a checkbox and a toggle is:
- A toggle is immediately active, turning on and off a feature or service at the moment you toggle it.
- A checkbox determines what happens when another action takes place. Or only becomes active after pressing the "Apply" or "Save" button on a form. Or becomes part of a record together with other information to be stored together in a database of some sort.
A toggle is a button with three different states with different visual representation:
Each time a user activates the toggle-button it toggles between the 'on' and 'off' states. If the toggle is in the 'other' state an activation will switch it to the 'off' state.
A toggle cannot itself switch state to 'other', this state may be caused by external factors.
In the following example we create a toggle widget on the window which observes value. When the value is 1 the toggle is 'on', when the value is 2 the toggle is 'off'.
observer<int> value = 0;
tb.off_label = tr("off");
tb.other_label = tr("other");