HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
hi::v1::abstract_button_widget< Prefix > Class Template Reference

#include <hikogui/widgets/abstract_button_widget.hpp>

Inheritance diagram for hi::v1::abstract_button_widget< Prefix >:
hi::v1::widget

Public Types

using super = widget
using delegate_type = button_delegate
Public Types inherited from hi::v1::widget
using callback_token = notifier<void()>::callback_token
using awaiter_type = notifier<void()>::awaiter_type

Public Member Functions

 abstract_button_widget (widget *parent, std::shared_ptr< delegate_type > delegate) noexcept
Public Member Functions inherited from hi::v1::widget
 widget (widget *parent) noexcept
 widget (widget const &)=delete
 widget (widget &&)=delete
widget & operator= (widget &&)=delete
widget & operator= (widget const &)=delete
generator< widget & > children (bool include_invisible) noexcept
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.
void reset_layout (gfx_surface *new_surface, float new_scale) noexcept
 Reset the layout.
virtual void layout () noexcept
virtual void draw (widget_draw_context &context) noexcept
 Draw the widget.
virtual sub_theme_selector_type sub_theme_selector () const noexcept
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_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
bool is_last (keyboard_focus_group group) const noexcept
virtual void scroll_to_show (hi::aarectangle rectangle) noexcept
 Scroll to show the given rectangle on the window.
std::vector< widget_id > parent_chain () const noexcept
 Get a list of parents of a given widget.
virtual bool is_tab_button () const noexcept
 Check if this widget is a tab-button.
template<forward_of< void()> Callback>
callback_token subscribe (Callback &&callback, callback_flags flags=callback_flags::synchronous) const noexcept
awaiter_type operator co_await () const noexcept

Data Fields

std::shared_ptr< delegate_type > delegate
 The delegate that controls the button widget.
observer< label > on_label = tr("on")
 The label to show when the button is in the 'on' state.
observer< label > off_label = tr("off")
 The label to show when the button is in the 'off' state.
observer< label > other_label = tr("other")
 The label to show when the button is in the 'other' state.
observer< hi::alignment > alignment
 The alignment of the button and on/off/other label.
Data Fields inherited from hi::v1::widget
widget_id id = {}
 The numeric identifier of a widget.
widget * parent = nullptr
 Pointer to the parent widget.
gfx_surface * surface = nullptr
 The surface this widget is drawn on.
observer< widget_modemode = widget_mode::enabled
 The widget mode.
observer< bool > hover = false
 Mouse cursor is hovering over the widget.
observer< bool > clicked = false
 The widget is being clicked by the mouse.
observer< bool > focus = false
 The widget has keyboard focus.
observer< widget_statestate = widget_state::off
 The state of the widget.
size_t semantic_layer = 0_uz
 The draw layer of the widget.
grid_cell cell

Static Public Attributes

static constexpr auto prefix = Prefix

Detailed Description

template<fixed_string Prefix>
class hi::v1::abstract_button_widget< Prefix >

Base class for implementing button widgets.

Field Documentation

◆ alignment

template<fixed_string Prefix>
observer<hi::alignment> hi::v1::abstract_button_widget< Prefix >::alignment

The alignment of the button and on/off/other label.

◆ delegate

template<fixed_string Prefix>
std::shared_ptr<delegate_type> hi::v1::abstract_button_widget< Prefix >::delegate

The delegate that controls the button widget.

◆ off_label

template<fixed_string Prefix>
observer<label> hi::v1::abstract_button_widget< Prefix >::off_label = tr("off")

The label to show when the button is in the 'off' state.

◆ on_label

template<fixed_string Prefix>
observer<label> hi::v1::abstract_button_widget< Prefix >::on_label = tr("on")

The label to show when the button is in the 'on' state.

◆ other_label

template<fixed_string Prefix>
observer<label> hi::v1::abstract_button_widget< Prefix >::other_label = tr("other")

The label to show when the button is in the 'other' state.


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