9#include "structure/widget/spk_command_panel.hpp"
10#include "structure/widget/spk_linear_layout.hpp"
11#include "structure/widget/spk_push_button.hpp"
12#include "structure/widget/spk_widget.hpp"
31 std::unique_ptr<spk::Widget> content;
37 spk::VerticalLayout _layout;
38 std::vector<Tab> _tabs;
39 std::optional<size_t> _activeIndex;
40 spk::Vector2UInt _tabCornerSize{4, 4};
42 void _refreshContentGeometry();
43 void _refreshSizeHints();
44 void _addTab(
const std::wstring &p_label, std::unique_ptr<spk::Widget> p_content);
46 spk::Vector2UInt _activeContentMinimal()
const;
47 spk::Vector2UInt _activeContentDesired()
const;
48 spk::Vector2UInt _activeContentMaximal()
const;
49 spk::Vector2UInt _maxContentMinimal()
const;
50 spk::Vector2UInt _maxContentDesired()
const;
51 spk::Vector2UInt _maxContentMaximal()
const;
67 template <
typename TContent,
typename... TArgs>
77 TContent &
addTab(
const std::wstring &p_label,
const std::wstring &p_contentName, TArgs &&...p_args)
79 auto content = std::make_unique<TContent>(p_contentName, &_contentContainer, std::forward<TArgs>(p_args)...);
80 TContent &contentRef = *content;
81 _addTab(p_label, std::move(content));
90 void addTab(
const std::wstring &p_label, std::unique_ptr<spk::Widget> p_content);
Horizontal panel that manages a collection of command buttons.
Definition spk_command_panel.hpp:27