|
HikoGUI
A low latency retained GUI
|
#include <hikogui/widgets/tab_widget.hpp>
Public Types | |
| using | super = widget |
| using | delegate_type = tab_delegate |
Public Member Functions | |
| tab_widget (widget *parent, std::shared_ptr< delegate_type > delegate) noexcept | |
| Construct a tab widget with a delegate. | |
| tab_widget (widget *parent, different_from< std::shared_ptr< delegate_type > > auto &&value) noexcept | |
| Construct a tab widget with an observer value. | |
| template<typename WidgetType , typename Key , typename... Args> | |
| WidgetType & | make_widget (Key const &key, Args &&...args) |
| Make and add a child widget. | |
Public Member Functions inherited from hi::v1::widget | |
| 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. | |
| 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 | 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. | |
Public Member Functions inherited from hi::v1::widget_intf | |
| 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. | |
Data Fields | |
| std::shared_ptr< delegate_type > | delegate |
Data Fields inherited from hi::v1::widget | |
| 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 = 0 |
| The draw layer of the widget. | |
| int | logical_layer = 0 |
| The logical layer of the 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. | |
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_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.
|
inlinenoexcept |
Construct a tab widget with a delegate.
| parent | The owner of this widget. |
| delegate | The delegate that will control this widget. |
|
inlinenoexcept |
Construct a tab widget with an observer value.
| parent | The owner of this widget. |
| value | The value or observer value to monitor for which child widget to display. |
|
inline |
Make and add a child widget.
| WidgetType | The type of the widget to create. |
| Key | The type of the key, must be convertible to std::size_t. |
| key | The value used as a key to select this newly added widget. |
| args | The arguments to pass to the constructor of widget to add. |