7#include "tab_delegate.hpp"
8#include "../observable.hpp"
12#include <unordered_map>
24 template<
typename Value>
26 value(std::forward<Value>(value)) {
40 void add_tab(
tab_widget &sender,
size_t key,
size_t index)
noexcept override
42 tt_axiom(not tab_indices.contains(key));
43 tab_indices[key] = index;
48 auto i = tab_indices.
find(*value);
49 if (i == tab_indices.
end()) {
52 return static_cast<ssize_t>(i->second);
57template<
typename Value>
60template<
typename Value>
63 using value_type = observable_argument_t<std::remove_cvref_t<Value>>;
64 return std::make_unique<default_tab_delegate<value_type>>(std::forward<Value>(value));
An observable value.
Definition observable.hpp:280
void unsubscribe(callback_ptr_type const &callback_ptr) noexcept
Unsubscribe a callback function.
Definition observable.hpp:468
callback_ptr_type subscribe(Callback &&callback) noexcept
Subscribe a callback function.
Definition observable.hpp:442
Definition default_tab_delegate.hpp:17
Definition tab_delegate.hpp:13
A graphical element that shows only one of a predefined set of mutually exclusive child widgets.
Definition tab_widget.hpp:32