22namespace hi {
inline namespace v1 {
24template<
typename Context>
26 forward_of<Context, observer<hi::label>, observer<hi::alignment>, observer<hi::semantic_text_style>>;
67 observer<alignment>
alignment = hi::alignment::top_right();
71 observer<semantic_text_style>
text_style = semantic_text_style::label;
88 [[nodiscard]] generator<widget *> children() const noexcept
override
90 co_yield _icon_widget.get();
91 co_yield _text_widget.get();
96 void draw(draw_context const& context) noexcept;
97 [[nodiscard]] hitbox hitbox_test(point3 position) const noexcept;
103 decltype(
label)::callback_token _label_cbt;
104 decltype(
text_style)::callback_token _text_style_cbt;
106 aarectangle _icon_rectangle;
109 aarectangle _text_rectangle;
113 void set_attributes() noexcept {}
114 void set_attributes(label_widget_attribute
auto&& first, label_widget_attribute
auto&&...rest)
noexcept
116 if constexpr (forward_of<
decltype(first), observer<hi::label>>) {
118 }
else if constexpr (forward_of<
decltype(first), observer<hi::alignment>>) {
120 }
else if constexpr (forward_of<
decltype(first), observer<hi::semantic_text_style>>) {
123 hi_static_no_default();
#define hi_forward(x)
Forward a value, based on the decltype of the value.
Definition utility.hpp:29
Functionality for labels, text and icons.
DOXYGEN BUG.
Definition algorithm.hpp:15
The HikoGUI namespace.
Definition ascii.hpp:19
An simple GUI widget that displays an icon.
Definition icon_widget.hpp:32
The GUI widget displays and lays out text together with an icon.
Definition label_widget.hpp:41
observer< label > label
The label to display.
Definition label_widget.hpp:47
observer< alignment > alignment
How the label and icon are aligned.
Definition label_widget.hpp:67
observer< semantic_text_style > text_style
The text style to display the label's text in and color of the label's (non-color) icon.
Definition label_widget.hpp:71
label_widget(gui_window &window, widget *parent, label_widget_attribute auto &&...attributes) noexcept
Construct a label widget.
Definition label_widget.hpp:81
A text widget.
Definition text_widget.hpp:61
An interactive graphical object as part of the user-interface.
Definition widget.hpp:44
widget_layout const & layout() const noexcept
Get the current layout for this widget.
Definition widget.hpp:198
widget *const parent
Pointer to the parent widget.
Definition widget.hpp:53
widget(gui_window &window, widget *parent) noexcept
gui_window & window
Convenient reference to the Window.
Definition widget.hpp:48
The constraints of a widget.
Definition widget_constraints.hpp:26
The layout of a widget.
Definition widget_layout.hpp:37
Definition label_widget.hpp:25