|
HikoGUI
A low latency retained GUI
|
#include <hikogui/widgets/vulkan_widget.hpp>
Public Types | |
| using | super = widget |
Public Member Functions | |
| vulkan_widget (hi::gui_window &window, hi::widget *parent) noexcept | |
| widget_constraints const & | set_constraints () noexcept override |
| Update the constraints of the widget. | |
| void | set_layout (hi::widget_layout const &layout) noexcept override |
| void | draw (hi::draw_context const &context) noexcept override |
Public Member Functions inherited from 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 (point3 position) const noexcept |
| Find the widget that is under the mouse cursor. | |
| 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. | |
| virtual bool | accepts_keyboard_focus (keyboard_focus_group group) const noexcept |
| Check if the widget will accept keyboard focus. | |
| widget_constraints const & | constraints () const noexcept |
| virtual void | set_layout (widget_layout const &layout) noexcept=0 |
| Update the internal layout of the widget. | |
| widget_layout const & | layout () const noexcept |
| Get the current layout for this widget. | |
| virtual void | draw (draw_context const &context) noexcept=0 |
| Draw the 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. | |
| void | request_reconstrain () const noexcept |
| Request the window to be reconstrain on the next frame. | |
| void | request_resize () const noexcept |
| Request the window to be resize based on the preferred size of the widgets. | |
| virtual bool | handle_event (gui_event const &event) noexcept |
| Handle command. | |
| 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 | 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 |
Public Member Functions inherited from v1::gfx_surface_delegate_vulkan | |
| virtual void | build_for_new_device (VmaAllocator allocator, vk::Instance instance, vk::Device device, vk::Queue graphics_queue) noexcept=0 |
| The vulkan device has been initialized. | |
| virtual void | build_for_new_swapchain (std::vector< vk::ImageView > const &views, vk::Extent2D size, vk::SurfaceFormatKHR format) noexcept=0 |
| The swap-chain has been build. | |
| virtual void | draw (uint32_t swapchain_index, vk::Rect2D render_area, vk::Semaphore start, vk::Semaphore finish) noexcept=0 |
| Draw using vulkan API. | |
Public Member Functions inherited from v1::gfx_surface_delegate | |
| gfx_surface_delegate (gfx_surface_delegate const &)=delete | |
| gfx_surface_delegate (gfx_surface_delegate &&)=delete | |
| gfx_surface_delegate & | operator= (gfx_surface_delegate const &)=delete |
| gfx_surface_delegate & | operator= (gfx_surface_delegate &&)=delete |
| virtual void | teardown_for_swapchain_lost () noexcept |
| The swap-chain is going to be teared-down. | |
| virtual void | teardown_for_device_lost () noexcept |
| The vulkan device is going to be teared-down. | |
| virtual void | teardown_for_window_lost () noexcept |
Additional Inherited Members | |
Data Fields inherited from 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. | |
| observable< widget_mode > | mode = widget_mode::enabled |
| The widget mode. | |
| observable< bool > | hover = false |
| Mouse cursor is hovering over the widget. | |
| observable< 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 widget that draws directly into the swap-chain.
|
inlineoverridevirtualnoexcept |
Update the constraints of the widget.
Typically the implementation of this function starts with recursively calling set_constraints() on its children.
If the container, due to a change in constraints, wants the window to resize to the minimum size it should call request_resize().
widget::minimum_size(), widget::preferred_size() and widget::maximum_size(). Implements v1::widget.