Fixes
This commit is contained in:
@ -22,6 +22,13 @@ namespace ia::iae
|
||||
{
|
||||
class TabContainer
|
||||
{
|
||||
struct Tab
|
||||
{
|
||||
IView* View{};
|
||||
BOOL IsOpen{true};
|
||||
BOOL IsCloseable{false};
|
||||
};
|
||||
|
||||
public:
|
||||
TabContainer();
|
||||
|
||||
@ -31,10 +38,13 @@ namespace ia::iae
|
||||
VOID Update();
|
||||
VOID ProcessEvent(IN SDL_Event *event);
|
||||
|
||||
template<typename ViewType> INLINE VOID AddTab(IN CONST String &name);
|
||||
template<typename ViewType> INLINE VOID AddTab(IN CONST String &name, IN BOOL isCloseable = false);
|
||||
IView *GetTab(IN CONST String &name);
|
||||
VOID RemoveTab(IN CONST String &name);
|
||||
|
||||
VOID OpenTab(IN CONST String& name);
|
||||
VOID CloseTab(IN CONST String& name);
|
||||
|
||||
VOID ChangeActiveTab(IN PCCHAR name);
|
||||
|
||||
private:
|
||||
@ -42,14 +52,14 @@ namespace ia::iae
|
||||
CONST String m_containerID;
|
||||
PCCHAR m_activeTabName{};
|
||||
PCCHAR m_pendingActiveTabName{};
|
||||
Map<String, IView *> m_tabViews;
|
||||
Map<String, Tab> m_tabViews;
|
||||
|
||||
private:
|
||||
VOID AddTab(IN CONST String &name, IN IView *view);
|
||||
VOID AddTab(IN CONST String &name, IN IView *view, IN BOOL isCloseable);
|
||||
};
|
||||
|
||||
template<typename ViewType> VOID TabContainer::AddTab(IN CONST String &name)
|
||||
template<typename ViewType> VOID TabContainer::AddTab(IN CONST String &name, IN BOOL isCloseable)
|
||||
{
|
||||
AddTab(name, new ViewType());
|
||||
AddTab(name, new ViewType(), isCloseable);
|
||||
}
|
||||
} // namespace ia::iae
|
||||
Reference in New Issue
Block a user