HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Types | Public Member Functions
v1::vulkan_widget Class Reference

#include <hikogui/widgets/vulkan_widget.hpp>

Inheritance diagram for v1::vulkan_widget:
v1::widget v1::gfx_surface_delegate_vulkan v1::gfx_surface_delegate

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
 
widgetoperator= (const widget &)=delete
 
 widget (widget &&)=delete
 
widgetoperator= (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_delegateoperator= (gfx_surface_delegate const &)=delete
 
gfx_surface_delegateoperator= (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_windowwindow
 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.
 

Detailed Description

A widget that draws directly into the swap-chain.

Member Function Documentation

◆ set_constraints()

widget_constraints const & v1::vulkan_widget::set_constraints ( )
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().

Postcondition
This function will change what is returned by widget::minimum_size(), widget::preferred_size() and widget::maximum_size().

Implements v1::widget.


The documentation for this class was generated from the following file: