blob: b3bc5a9c90e24d6e04df83fc34d0cc9d937601a3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#pragma once
#include "StarButtonGroup.hpp"
namespace Star {
STAR_CLASS(FlowLayout);
STAR_CLASS(StackWidget);
STAR_CLASS(TabBarWidget);
STAR_CLASS(TabSetWidget);
struct TabSetConfig {
String tabButtonBaseImage;
String tabButtonHoverImage;
String tabButtonPressedImage;
String tabButtonBaseImageSelected;
String tabButtonHoverImageSelected;
String tabButtonPressedImageSelected;
Vec2I tabButtonPressedOffset;
Vec2I tabButtonTextOffset;
Vec2I tabButtonSpacing;
};
class TabSetWidget : public Widget {
public:
TabSetWidget(TabSetConfig const& tabSetconfig);
virtual void setSize(Vec2I const& size) override;
void addTab(String const& widgetName, WidgetPtr widget, String const& title);
size_t tabCount() const;
void tabSelect(size_t page);
size_t selectedTab() const;
// Callback is called when the tab changes
void setCallback(WidgetCallbackFunc callback);
private:
TabSetConfig m_tabSetConfig;
FlowLayoutPtr m_tabBar;
StackWidgetPtr m_stack;
WidgetCallbackFunc m_callback;
Maybe<size_t> m_lastSelected;
};
}
|