This commit is contained in:
Aria 2025-03-21 22:23:30 +11:00
commit 9c94d113d3
Signed by untrusted user who does not match committer: aria
GPG key ID: 19AB7AA462B8AB3B
10260 changed files with 1237388 additions and 0 deletions

View file

@ -0,0 +1,51 @@
#ifndef STAR_TAB_SET_HPP
#define STAR_TAB_SET_HPP
#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;
};
}
#endif