11#include "../unicode/module.hpp"
13#include "../GUI/module.hpp"
14#include "../utility/module.hpp"
19namespace hi {
inline namespace v1 {
27 using notifier_type = notifier<>;
28 using callback_token = notifier_type::callback_token;
29 using callback_proto = notifier_type::callback_proto;
33 virtual void init(
widget& sender)
noexcept {}
35 virtual void deinit(
widget& sender)
noexcept
49 [[nodiscard]] callback_token
50 subscribe(forward_of<callback_proto>
auto&& callback, callback_flags flags = callback_flags::synchronous)
noexcept
52 return _notifier.subscribe(
hi_forward(callback), flags);
56 notifier_type _notifier;
74 using value_type =
text;
76 observer<value_type> value;
84 _value_cbt = this->value.subscribe([&](
auto...) {
100 typename decltype(value)::callback_token _value_cbt;
110 using value_type = translate;
112 observer<value_type> value;
120 _value_cbt = this->value.subscribe([&](
auto...) {
127 return value.read()();
136 typename decltype(value)::callback_token _value_cbt;
146 using value_type = text_variant;
148 observer<value_type> value;
156 _value_cbt = this->value.subscribe([&](
auto...) {
163 return to_text(*value.read());
168 auto proxy = value.copy();
171 if (
auto *text_ptr = get_if<hi::text>(ptr)) {
179 typename decltype(value)::callback_token _value_cbt;
Functionality for labels, text and icons.
#define hi_no_default(...)
This part of the code should not be reachable, unless a programming bug.
Definition assert.hpp:279
#define hi_not_implemented(...)
This part of the code has not been implemented yet.
Definition assert.hpp:335
#define hi_forward(x)
Forward a value, based on the decltype of the value.
Definition utility.hpp:29
std::shared_ptr< text_delegate > make_default_text_delegate(auto &&value) noexcept
Create a shared pointer to a default text delegate.
Definition text_delegate.hpp:189
DOXYGEN BUG.
Definition algorithm.hpp:13
geometry/margins.hpp
Definition cache.hpp:11
A delegate that controls the state of a text_widget.
Definition text_delegate.hpp:25
virtual text read(widget &sender) noexcept=0
Read text as a string of graphemes.
virtual void write(widget &sender, text const &text) noexcept=0
Write text from a string of graphemes.
callback_token subscribe(forward_of< callback_proto > auto &&callback, callback_flags flags=callback_flags::synchronous) noexcept
Subscribe a callback for notifying the widget of a data change.
Definition text_delegate.hpp:50
A default text delegate.
Definition text_delegate.hpp:65
default_text_delegate(forward_of< observer< value_type > > auto &&value) noexcept
Construct a delegate.
Definition text_delegate.hpp:82
void write(widget &sender, text const &text) noexcept override
Write text from a string of graphemes.
Definition text_delegate.hpp:94
text read(widget &sender) noexcept override
Read text as a string of graphemes.
Definition text_delegate.hpp:89
default_text_delegate(forward_of< observer< value_type > > auto &&value) noexcept
Construct a delegate.
Definition text_delegate.hpp:118
text read(widget &sender) noexcept override
Read text as a string of graphemes.
Definition text_delegate.hpp:125
void write(widget &sender, text const &text) noexcept override
Write text from a string of graphemes.
Definition text_delegate.hpp:130
void write(widget &sender, hi::text const &text) noexcept override
Write text from a string of graphemes.
Definition text_delegate.hpp:166
default_text_delegate(forward_of< observer< value_type > > auto &&value) noexcept
Construct a delegate.
Definition text_delegate.hpp:154
text read(widget &sender) noexcept override
Read text as a string of graphemes.
Definition text_delegate.hpp:161