|
| tab_widget (widget_intf const *parent, std::shared_ptr< delegate_type > delegate) noexcept |
| Construct a tab widget with a delegate.
|
|
template<incompatible_with< std::shared_ptr< delegate_type > > Value>
requires requires { make_default_tab_delegate(std::forward<Value>(value)); } |
| tab_widget (widget_intf const *parent, Value &&value) noexcept |
| Construct a tab widget with an observer value.
|
|
template<typename WidgetType , typename Key , typename... Args> |
WidgetType & | emplace (Key const &key, Args &&...args) |
| Make and add a child 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.
|
|
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 | background_color () 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 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.
|
|
A graphical element that shows only one of a predefined set of mutually exclusive child widgets.
A tab widget is generally controlled by a toolbar_tab_button_widget
or another selection widget.
In the following example we create three tabs on the window which observes a value
controlled by a set of toolbar tab buttons. Each tab is configured with a different value: 0, 1 and 2.
tab_view.emplace<
label_widget>(2,
txt(
"three"), alignment::middle_center());
- Note
- A
tab_button
is not directly controlled by a toolbar_tab_button_widget
. This is accomplished by sharing a delegate or a observer between the toolbar tab button and the tab widget.