43 #include "UI/stackedcontainer.h"
59 friend class TabSetFactory;
110 struct MEZZ_LIB RenderableSetData
117 RenderableCollection* Collection;
120 RenderableSetData() : Accessor(NULL), Collection(NULL) {};
122 RenderableSetData(ConstString& name, Button* access, RenderableCollection* set) : Name(name), Accessor(access), Collection(set) {};
123 };//RenderableSetData
130 class MEZZ_LIB TabSet : public Widget
133 friend class RenderableFactory;
135 std::vector<RenderableSetData*> Sets;
136 Rect TemplateSetRect;
137 RenderableSetData* VisibleSet;
139 virtual void UpdateImpl(bool Force = false);
141 virtual void SetVisibleImpl(bool visible);
143 virtual bool CheckMouseHoverImpl();
146 virtual void SetLocation(const Vector2& Position);
149 virtual void SetArea(const Vector2& Size);
155 TabSet(const String& name, const Rect& SetRect, Screen* parent);
160 // Creating and working with Renderable Sets
169 virtual RenderableSetData* CreateRenderableSet(const String& Name, const Rect& AccessorRect, const Real& GlyphHeight, const String& Text);
173 virtual RenderableSetData* GetRenderableSetData(const Whole& Index);
177 virtual RenderableSetData* GetRenderableSetData(const String& SetDataName);
181 virtual RenderableCollection* GetRenderableCollection(const Whole& Index);
185 virtual RenderableCollection* GetRenderableCollection(const String& SetDataName);
189 virtual RenderableCollection* GetRenderableCollection(Button* Accessor);
193 virtual Button* GetAccessor(const Whole& Index);
197 virtual Button* GetAccessor(const String& SetDataName);
201 virtual Button* GetAccessor(RenderableCollection* Collection);
204 virtual Whole GetNumRenderableSets();
207 virtual void DestroyRenderableSet(RenderableSetData* ToBeDestroyed);
209 virtual void DestroyAllRenderableSets();