|
HikoGUI
A low latency retained GUI
|
#include <hikogui/widgets/toggle_widget.hpp>
Public Types | |
| using | super = abstract_button_widget |
| using | delegate_type = typename super::delegate_type |
Public Types inherited from hi::v1::abstract_button_widget | |
| using | super = widget |
| using | delegate_type = button_delegate |
Public Member Functions | |
| toggle_widget (gui_window &window, 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 (gui_window &window, 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 (gui_window &window, 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 (gui_window &window, widget *parent, Value &&value, OnValue &&on_value, OffValue &&off_value, Attributes &&...attributes) noexcept | |
| Construct a toggle widget with a default button delegate. | |
Public Member Functions inherited from hi::v1::abstract_button_widget | |
| abstract_button_widget (gui_window &window, widget *parent, std::shared_ptr< delegate_type > delegate) noexcept | |
| button_state | state () const noexcept |
| Get the current state of the button. | |
Public Member Functions inherited from hi::v1::widget | |
| widget (gui_window &window, widget *parent) noexcept | |
| widget (const widget &)=delete | |
| widget & | operator= (const widget &)=delete |
| widget (widget &&)=delete | |
| widget & | operator= (widget &&)=delete |
| bool | is_gui_thread () const noexcept |
| hi::theme const & | theme () const noexcept |
| Get the theme. | |
| hi::font_book & | font_book () const noexcept |
| Get the font book. | |
| virtual hitbox | hitbox_test_from_parent (point3 position) const noexcept |
| Call hitbox_test from a parent widget. | |
| virtual hitbox | hitbox_test_from_parent (point3 position, hitbox sibling_hitbox) const noexcept |
| Call hitbox_test from a parent widget. | |
| widget_constraints const & | constraints () const noexcept |
| widget_layout const & | layout () const noexcept |
| Get the current layout for this widget. | |
| virtual void | request_redraw () const noexcept |
| Request the widget to be redrawn on the next frame. | |
| void | request_relayout () const noexcept |
| Request the window to be relayout on the next frame. | |
| template<fixed_string SourceFile, int SourceLine, fixed_string Fmt, typename... Args> | |
| void | request_reconstrain (Args &&...args) const noexcept |
| Request the window to be reconstrain on the next frame. | |
| template<fixed_string SourceFile, int SourceLine, fixed_string Fmt, typename... Args> | |
| void | request_resize (Args &&...args) const noexcept |
| Request the window to be resize based on the preferred size of the widgets. | |
| virtual bool | handle_event_recursive (gui_event const &event, std::vector< widget const * > const &reject_list=std::vector< widget const * >{}) noexcept |
| Handle command recursive. | |
| virtual widget const * | find_next_widget (widget const *current_keyboard_widget, keyboard_focus_group group, keyboard_focus_direction direction) const noexcept |
| Find the next widget that handles keyboard focus. | |
| widget const * | find_first_widget (keyboard_focus_group group) const noexcept |
| widget const * | find_last_widget (keyboard_focus_group group) const noexcept |
| 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. | |
| virtual void | scroll_to_show (hi::aarectangle rectangle) noexcept |
| Scroll to show the given rectangle on the window. | |
| void | scroll_to_show () noexcept |
| Scroll to show the important part of the widget. | |
| std::vector< widget const * > | parent_chain () const noexcept |
| Get a list of parents of a given widget. | |
| virtual color | foreground_color () const noexcept |
| virtual color | focus_color () const noexcept |
| virtual color | accent_color () const noexcept |
| virtual color | label_color () const noexcept |
Additional Inherited Members | |
Data Fields inherited from hi::v1::abstract_button_widget | |
| 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< alignment > | alignment |
| The alignment of the button and on/off/other label. | |
| observer< semantic_text_style > | text_style = semantic_text_style::label |
| The text style to button's label. | |
| notifier< void()> | pressed |
Data Fields inherited from hi::v1::widget | |
| gui_window & | window |
| Convenient reference to the Window. | |
| widget *const | parent |
| Pointer to the parent widget. | |
| std::string | id |
| A name of widget, should be unique between siblings. | |
| observer< widget_mode > | mode = widget_mode::enabled |
| The widget mode. | |
| observer< bool > | hover = false |
| Mouse cursor is hovering over the widget. | |
| observer< bool > | focus = false |
| The widget has keyboard focus. | |
| int | semantic_layer |
| The draw layer of the widget. | |
| int | logical_layer |
| The logical layer of the widget. | |
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 a button with three different states with different visual representation:
toggle_widget::on_label is shown.toggle_widget::off_label is shown.toggle_widget::other_label is shown.
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'.
|
inlinenoexcept |
Construct a toggle widget.
| window | The window that this widget belongs to. |
| parent | The parent widget that owns this toggle widget. |
| delegate | The delegate to use to manage the state of the toggle button. |
| attributes | Different attributes used to configure the label's on the toggle button: a label, alignment or semantic_text_style. If one label is passed it will be shown in all states. If two or three labels are passed the labels are shown in on-state, off-state and other-state in that order. |
|
inlinenoexcept |
Construct a toggle widget with a default button delegate.
| window | The window that this widget belongs to. |
| parent | The parent widget that owns this toggle widget. |
| value | The value or observer value which represents the state of the toggle. |
| attributes | Different attributes used to configure the label's on the toggle button: a label, alignment or semantic_text_style. If one label is passed it will be shown in all states. If two or three labels are passed the labels are shown in on-state, off-state and other-state in that order. |
|
inlinenoexcept |
Construct a toggle widget with a default button delegate.
| window | The window that this widget belongs to. |
| parent | The parent widget that owns this toggle widget. |
| value | The value or observer value which represents the state of the toggle. |
| on_value | The on-value. This value is used to determine which value yields an 'on' state. |
| attributes | Different attributes used to configure the label's on the toggle button: a label, alignment or semantic_text_style. If one label is passed it will be shown in all states. If two or three labels are passed the labels are shown in on-state, off-state and other-state in that order. |
|
inlinenoexcept |
Construct a toggle widget with a default button delegate.
| window | The window that this widget belongs to. |
| parent | The parent widget that owns this toggle widget. |
| value | The value or observer value which represents the state of the toggle. |
| on_value | The on-value. This value is used to determine which value yields an 'on' state. |
| off_value | The off-value. This value is used to determine which value yields an 'off' state. |
| attributes | Different attributes used to configure the label's on the toggle button: a label, alignment or semantic_text_style. If one label is passed it will be shown in all states. If two or three labels are passed the labels are shown in on-state, off-state and other-state in that order. |