HikoGUI
A low latency retained GUI
|
#include <hikogui/widgets/toolbar_tab_button_widget.hpp>
Data Structures | |
struct | attributes_type |
Public Types | |
using | super = widget |
using | delegate_type = radio_delegate |
Public Member Functions | |
hi_num_valid_arguments (consteval static, num_default_delegate_arguments, default_radio_delegate) | |
hi_call_left_arguments (static, make_default_delegate, make_shared_ctad< default_radio_delegate >) | |
hi_call_right_arguments (static, make_attributes, attributes_type) | |
toolbar_tab_button_widget (widget_intf const *parent, attributes_type attributes, std::shared_ptr< delegate_type > delegate) noexcept | |
Construct a toolbar tab button widget. | |
template<typename... Args> requires (num_default_delegate_arguments<Args...>() != 0) | |
toolbar_tab_button_widget (widget_intf const *parent, Args &&...args) | |
Construct a toolbar tab button widget with a default radio delegate. | |
void | request_redraw () const noexcept override |
Request the widget to be redrawn on the next frame. | |
Public Member Functions inherited from hi::v1::widget | |
widget (widget_intf const *parent) noexcept | |
Constructor for creating sub views. | |
widget () noexcept | |
Constructor for creating sub views. | |
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. | |
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. | |
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. | |
Public Member Functions inherited from hi::v1::widget_intf | |
widget_intf (widget_intf const *parent) noexcept | |
template<forward_of< void()> Func> | |
callback< void()> | subscribe (Func &&func, callback_flags flags=callback_flags::synchronous) noexcept |
Subscribe a callback to be called when an action is completed by the widget. | |
auto | operator co_await () const noexcept |
Await until an action is completed by the widget. | |
size_t | layer () const noexcept |
void | set_layer (size_t new_layer) noexcept |
widget_mode | mode () const noexcept |
void | set_mode (widget_mode new_mode) noexcept |
widget_value | value () const noexcept |
void | set_value (widget_value new_value) noexcept |
widget_phase | phase () const noexcept |
void | set_pressed (bool pressed) noexcept |
void | set_hover (bool hover) noexcept |
void | set_active (bool active) noexcept |
bool | focus () const noexcept |
void | set_focus (bool new_focus) noexcept |
widget_layout const & | layout () const noexcept |
Get the current layout for this widget. | |
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. | |
Data Fields | |
attributes_type | attributes |
std::shared_ptr< delegate_type > | delegate |
The delegate that controls the button widget. | |
Data Fields inherited from hi::v1::widget | |
observer< extent2 > | minimum = extent2{} |
The minimum size this widget is allowed to be. | |
observer< extent2 > | maximum = extent2::large() |
The maximum size this widget is allowed to be. | |
Data Fields inherited from hi::v1::widget_intf | |
widget_id | id = {} |
The numeric identifier of a widget. | |
widget_intf * | parent = nullptr |
Pointer to the parent widget. | |
notifier< void()> | notifier |
Notifier which is called after an action is completed by a widget. | |
observer< widget_state > | state |
The current state of the widget. | |
A graphical control element that allows the user to choose only one of a predefined set of mutually exclusive views of a tab_widget
.
A toolbar tab button generally controls a tab_widget
, to show one of its child widgets.
A toolbar tab button has two different states with different visual representation:
Each time a user activates the toolbar tab button it switches its state to 'on'.
A toolbar tab button cannot itself switch state to 'off', this state may be caused by external factors. The canonical example is another toolbar tab button in a set, which is configured with a different on_value
.
In the following example we create three toolbar tab button widgets on the window which observes the same value
. Each tab button is configured with a different on_value
: 0, 1 and 2.
tab_widget
. Like radio_widget
this is accomplished by sharing a delegate or a observer between the toolbar tab button and the tab widget.
|
inlinenoexcept |
Construct a toolbar tab button widget.
parent | The parent widget that owns this radio button widget. |
delegate | The delegate to use to manage the state of the tab button widget. |
attributes | Different attributes used to configure the label's on the toolbar tab button: a label , alignment or semantic_text_style . If one label is passed it will be shown in all states. If two labels are passed the first label is shown in on-state and the second for off-state. |
|
inline |
Construct a toolbar tab button widget with a default radio delegate.
parent | The parent widget that owns this toggle widget. |
args | The arguments to the default_radio_delegate followed by arguments to attributes_type |
|
inlineoverridevirtualnoexcept |
Request the widget to be redrawn on the next frame.
Implements hi::v1::widget_intf.
std::shared_ptr<delegate_type> hi::v1::toolbar_tab_button_widget::delegate |
The delegate that controls the button widget.