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

#include <hikogui/widgets/abstract_button_widget.hpp>

Inheritance diagram for hi::v1::abstract_button_widget:
hi::v1::widget std::enable_shared_from_this< widget > hi::v1::checkbox_widget hi::v1::menu_button_widget hi::v1::momentary_button_widget hi::v1::radio_button_widget hi::v1::toggle_widget hi::v1::toolbar_button_widget hi::v1::toolbar_tab_button_widget

Public Types

using super = widget
 
using delegate_type = button_delegate
 

Public Member Functions

 abstract_button_widget (widget *parent, std::shared_ptr< delegate_type > delegate) noexcept
 
button_state state () const noexcept
 Get the current state of the button.
 
- Public Member Functions inherited from hi::v1::widget
 widget (widget *parent) noexcept
 
 widget (const widget &)=delete
 
widgetoperator= (const widget &)=delete
 
 widget (widget &&)=delete
 
widgetoperator= (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.
 
widget_layout const & layout () const noexcept
 Get the current layout for this widget.
 
virtual void draw (draw_context const &context) noexcept
 Draw the 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_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.
 
virtual void scroll_to_show (hi::aarectanglei 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_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 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 std::enable_shared_from_this< widget >
enable_shared_from_this (T... args)
 
operator= (T... args)
 
shared_from_this (T... args)
 
~enable_shared_from_this (T... args)
 

Data Fields

std::shared_ptr< delegate_typedelegate
 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< alignment > alignment
 The alignment of the button and on/off/other label.
 
observer< semantic_text_style > text_style = semantic_text_style::label
 The text style to button's label.
 
notifier< void()> pressed
 
- Data Fields inherited from hi::v1::widget
widgetparent = nullptr
 Pointer to the parent widget.
 
widget_id id = {}
 The numeric identifier of a widget.
 
observer< widget_modemode = 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< extent2iminimum = extent2i{}
 The minimum size this widget is allowed to be.
 
observer< extent2imaximum = extent2i::large()
 The maximum size this widget is allowed to be.
 

Detailed Description

Base class for implementing button widgets.

Member Function Documentation

◆ state()

button_state hi::v1::abstract_button_widget::state ( ) const
inlinenoexcept

Get the current state of the button.

Returns
The state of the button: on / off / other.

Field Documentation

◆ alignment

observer<alignment> hi::v1::abstract_button_widget::alignment

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

◆ delegate

std::shared_ptr<delegate_type> hi::v1::abstract_button_widget::delegate

The delegate that controls the button widget.

◆ off_label

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

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

◆ on_label

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

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

◆ other_label

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

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

◆ text_style

observer<semantic_text_style> hi::v1::abstract_button_widget::text_style = semantic_text_style::label

The text style to button's label.


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