43 #include "matrix4x4.h"
45 #include "UI/vertex.h"
46 #include "UI/quadrenderable.h"
47 #include "UI/widget.h"
48 #include "UI/widgetfactory.h"
64 class HorizontalContainer;
65 class HorizontalScrollbar;
74 class VerticalContainer;
75 class VerticalScrollbar;
81 class MouseHoverStrategy;
84 struct ScreenInternalData;
99 AtlasAndPosition(
const String& AtlasName) : Atlas(AtlasName), RenderCount(0), RenderStart(0), RenderEnd(0) {};
111 std::vector<VertexData> LowVertices;
112 std::vector<VertexData> MediumVertices;
113 std::vector<VertexData> HighVertices;
223 virtual void PrepareRenderSystem();
227 virtual void CreateVertexBuffer(
const Whole& InitialSize);
230 virtual void DestroyVertexBuffer();
235 virtual void ResizeVertexBuffer(
const Whole& RequestedSize);
255 virtual void SetVisible(Boolean CanSee);
257 virtual Boolean GetVisible()
const;
259 virtual Boolean IsVisible()
const;
270 virtual const Vector2& GetViewportDimensions()
const;
272 virtual void CheckViewportSize();
299 virtual const Vector2& GetMouseHitPosition()
const;
312 void RemoveWidgetFactory(
const String& ImplName);
318 void DestroyWidgetFactory(
const String& ImplName);
321 void DestroyAllWidgetFactories();
323 void AddAllDefaultWidgetFactories();
340 virtual Whole GetNumWidgets();
344 virtual void DestroyWidget(
Widget* ToBeDestroyed);
346 virtual void DestroyAllWidgets();
455 virtual ListBox* CreateListBox(ConstString& Name, const Rect& RendRect, const UI::ScrollbarStyle& ScrollStyle);
462 virtual Spinner* CreateSpinner(ConstString& Name, const Rect& RendRect, const UI::SpinnerStyle& SStyle, const Real& GlyphHeight);
470 virtual ScrolledCellGrid* CreateScrolledCellGrid(ConstString& Name, const Rect& RendRect, const Real& Thickness, const UI::ScrollbarStyle& Style);
478 virtual PagedCellGrid* CreatePagedCellGrid(ConstString& Name, const Rect& RendRect, const Rect& SpnRect, const UI::SpinnerStyle& SStyle, const Real& GlyphHeight);
485 virtual DropDownList* CreateDropDownList(ConstString& Name, const Rect& RendRect, const Real& LineHeight, const UI::ScrollbarStyle& ScrollStyle);
490 virtual TabSet* CreateTabSet(ConstString& Name, const Rect& SetRect);
496 virtual Window* CreateWidgetWindow(ConstString& Name, const Rect& RendRect);//*/
503 virtual void SetPrimaryAtlas(
const String& Atlas);
506 virtual String GetPrimaryAtlas();
531 Real GetTexelOffsetX()
const;
534 Real GetTexelOffsetY()
const;
552 virtual void ProtoSerializeProperties(
XML::Node& SelfRoot)
const;
554 virtual void ProtoDeSerializeProperties(
const XML::Node& SelfRoot);
557 virtual String GetDerivedSerializableName()
const;
559 static String GetSerializableName();
567 virtual void _MarkAllLayersDirty();
570 void _RenderScreen();
584 void _RenderVertices(
bool Force =
false);
590 template<
typename Callback>
593 for(
ChildIterator ChildIt = this->ChildrenBegin() ; ChildIt != this->ChildrenEnd() ; ++ChildIt )
604 template<
typename Callback>
607 for(
ReverseChildIterator RChildIt = this->RChildrenBegin() ; RChildIt != this->RChildrenEnd() ; ++RChildIt )
619 template<
typename Callback>
636 template<
typename Callback>