11#include "../notifier.hpp"
13namespace hi {
inline namespace v1 {
20 using notifier_type = notifier<>;
21 using callback_token = notifier_type::callback_token;
22 using callback_proto = notifier_type::callback_proto;
26 virtual void init(
widget& sender)
noexcept {}
28 virtual void deinit(
widget& sender)
noexcept {}
43 [[nodiscard]] callback_token
44 subscribe(forward_of<callback_proto>
auto&& callback, callback_flags flags = callback_flags::synchronous)
noexcept
46 return _notifier.subscribe(
hi_forward(callback), flags);
50 notifier_type _notifier;
66 observer<value_type> value;
67 observer<value_type> on_value;
75 forward_of<observer<value_type>>
auto&& value,
76 forward_of<observer<value_type>>
auto&& on_value) noexcept :
80 _value_cbt = this->value.subscribe([&](
auto...){ this->_notifier(); });
81 _on_value_cbt = this->on_value.subscribe([&](
auto...){ this->_notifier(); });
88 if (*value == *on_value) {
95 void activate(widget& sender)
noexcept override
101 typename decltype(value)::callback_token _value_cbt;
102 typename decltype(on_value)::callback_token _on_value_cbt;
#define hi_forward(x)
Forward a value, based on the decltype of the value.
Definition utility.hpp:29
DOXYGEN BUG.
Definition algorithm.hpp:13
geometry/margins.hpp
Definition cache.hpp:11
widget_state
Definition widget_state.hpp:14
@ off
The widget in the off-state.
@ on
The widget is in the on-state.
A button delegate controls the state of a button widget.
Definition button_delegate.hpp:23
A default radio button delegate.
Definition button_delegate.hpp:67
default_radio_button_delegate(forward_of< observer< value_type > > auto &&value, forward_of< observer< value_type > > auto &&on_value) noexcept
Construct a delegate.
Definition radio_button_delegate.hpp:74
A radio button delegate controls the state of a radio button widget.
Definition radio_button_delegate.hpp:18
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 radio_button_delegate.hpp:44
virtual void activate(widget &sender) noexcept=0
Called when the button is pressed by the user.
virtual widget_state state(widget const &sender) const noexcept
Used by the widget to check the state of the button.
Definition radio_button_delegate.hpp:36