|
HikoGUI
A low latency retained GUI
|
#include <hikogui/widgets/overlay_widget.hpp>
Public Types | |
| using | super = widget |
Public Member Functions | |
| overlay_widget (widget *parent) noexcept | |
| Constructs an empty overlay widget. | |
| void | set_widget (std::unique_ptr< widget > new_widget) noexcept |
| template<typename Widget , typename... Args> | |
| Widget & | make_widget (Args &&...args) noexcept |
| Add a content widget directly to this overlay 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 & > | 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. | |
| virtual bool | accepts_keyboard_focus (keyboard_focus_group group) const noexcept |
| Check if the widget will accept keyboard focus. | |
| widget_layout const & | layout () const noexcept |
| Get the current layout for this widget. | |
| 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 (gui_event const &event) noexcept |
| Handle command. | |
| 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 |
| 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 () noexcept |
| Scroll to show the important part of the widget. | |
| std::vector< widget_id > | parent_chain () const noexcept |
| Get a list of parents of a given widget. | |
| virtual gui_window * | window () const noexcept |
| virtual hi::theme const & | theme () const noexcept |
| virtual gfx_surface const * | surface () const noexcept |
| virtual color | focus_color () const noexcept |
| virtual color | accent_color () const noexcept |
| virtual color | label_color () const noexcept |
Public Member Functions inherited from std::enable_shared_from_this< widget > | |
| T | enable_shared_from_this (T... args) |
| T | operator= (T... args) |
| T | shared_from_this (T... args) |
| T | ~enable_shared_from_this (T... args) |
Additional Inherited Members | |
Data Fields inherited from hi::v1::widget | |
| widget * | parent = nullptr |
| Pointer to the parent widget. | |
| widget_id | id = {} |
| The numeric identifier of a 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< 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. | |
A GUI widget which may exist anywhere on a window overlaid above any other widget.
The overlay widget allows a content widget to be shown on top of other widgets in the window. It may be used for pop-up widgets, dialog boxes and sheets.
The size of the overlay widget is based on the widget::minimum_size(), widget::preferred_size() and widget::maximum_size(). Unlike other container widgets the clipping rectangle is made tightly around the container widget so that no drawing will happen outside of the overlay. The overlay itself will draw outside the clipping rectangle, for drawing a border and potentially a shadow.
As an overlay widget still confined to a window, like other widgets, when setting its layout parameters, it is recommended to use widget::make_overlay_rectangle() to make a rectangle that will fit inside the window.
It is recommended that the content of an overlay widget is a scroll widget so that when the overlay widget is drawn smaller than the requested rectangle the content will behave correctly.
|
noexcept |
Constructs an empty overlay widget.
| parent | The parent widget. |
|
inlinenoexcept |
Add a content widget directly to this overlay widget.
This widget is added as the content widget.
| Widget | The type of the widget to be constructed. |
| args | The arguments passed to the constructor of the widget. |