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;
102 RenderCount(0), RenderStart(0), RenderEnd(0)
107 Atlas(AtlasName), RenderCount(0), RenderStart(0), RenderEnd(0)
230 virtual void PrepareRenderSystem();
234 virtual void CreateVertexBuffer(
const Whole& InitialSize);
237 virtual void DestroyVertexBuffer();
242 virtual void ResizeVertexBuffer(
const Whole& RequestedSize);
262 virtual void SetVisible(
Boole CanSee);
264 virtual Boole GetVisible()
const;
266 virtual Boole IsVisible()
const;
277 virtual const Vector2& GetViewportDimensions()
const;
279 virtual void CheckViewportSize();
306 virtual const Vector2& GetMouseHitPosition()
const;
319 void RemoveWidgetFactory(
const String& ImplName);
325 void DestroyWidgetFactory(
const String& ImplName);
328 void DestroyAllWidgetFactories();
330 void AddAllDefaultWidgetFactories();
363 virtual Whole GetNumWidgets();
367 virtual void DestroyWidget(
Widget* ToBeDestroyed);
369 virtual void DestroyAllWidgets();
570 virtual Window* CreateWidgetWindow(ConstString& Name, const Rect& RendRect);// */
577 virtual void SetPrimaryAtlas(
const String& Atlas);
580 virtual String GetPrimaryAtlas();
605 Real GetTexelOffsetX()
const;
608 Real GetTexelOffsetY()
const;
626 virtual void ProtoSerializeProperties(
XML::Node& SelfRoot)
const;
628 virtual void ProtoDeSerializeProperties(
const XML::Node& SelfRoot);
631 virtual String GetDerivedSerializableName()
const;
633 static String GetSerializableName();
641 virtual void _MarkAllLayersDirty();
644 void _RenderScreen();
658 void _RenderVertices(
bool Force =
false);
664 template<
typename Callback>
667 for(
ChildIterator ChildIt = this->ChildrenBegin() ; ChildIt != this->ChildrenEnd() ; ++ChildIt )
678 template<
typename Callback>
681 for(
ReverseChildIterator RChildIt = this->RChildrenBegin() ; RChildIt != this->RChildrenEnd() ; ++RChildIt )
693 template<
typename Callback>
710 template<
typename Callback>
This class represents a collection of Glyphs in a common visual style.
void Clear()
Clears all Vertex vectors.
TextureAtlas * GetAtlas(const String &AtlasName)
Gets a loaded Atlas being stored in this manager.
Matrix4x4 VertexTransform
The transformation matrix used to update vertex transforms if needed.
Boole IsMarkupParserRegistered(const String &ParserName) const
Checks to see if a MarkupParser has already been registsered under a specific name.
std::vector< VertexData > Vertices
Container storing all of the vertices to be rendered.
Graphics::Viewport * GameViewport
A pointer to the viewport this screen is bound to.
bool Boole
Generally acts a single bit, true or false.
String Atlas
The name of the atlas to be rendered with.
ChildContainer::reverse_iterator ReverseChildIterator
Reverse Iterator type for Widget instances stored by this class.
This class contains utilities and functions to allow the manipulation of the Graphical scene...
AtlasAndPosition(const String &AtlasName)
Atlas constructor.
This is a container class for placing child objects on a 2 dimensional grid.
SpinnerStyle
Used by the spinner class to determine what styling should be used for the spinner.
ChildIterator ChildrenEnd()
Gets an iterator to one passed the last child Widget.
std::vector< AtlasAndPosition > TextureVertexContainer
Basic container type for the storage of render data on this screen.
Whole Size()
Gets the combined size of all Vertex vectors.
UIManager * UIMan
A pointer to the UIManager that owns this screen.
WidgetContainer::const_iterator ConstWidgetIterator
Const Iterator type for Widget instances stored by this class.
void Append(ScreenRenderData &OtherData)
Appends the contents of another ScreenRenderData to the end of this.
This class stores how the calls to Render are to be done.
Vector3 Scale
The scaling to be applied to all vertices that are generated by this screen.
A 4x4 matrix math class for the representation of full transforms.
Boole _ReverseProcessAllChildren(Callback *CB)
Processes all children of this screen in reverse zorder.
This is a collection of smaller textures packed into a larger texture, intended to increase UI perfor...
WidgetContainer::iterator WidgetIterator
Iterator type for Widget instances stored by this class.
Whole RenderCount
The number of vertices to be rendered.
AtlasAndPosition()
Blank constructor.
ScrollbarStyle
Used by the scrollbar class to determine what styling should be used for the scrollbar.
This is a widget that stores sets of renderables but only displays one at a time. ...
static Boole _ProcessAllChildren(Widget *Wid, Callback *CB)
Processes all children of this screen by their zorder.
This is a simple widget for a numeric variable in a box.
Boole _ProcessAllChildren(Callback *CB)
Processes all children of this screen by their zorder.
float Real
A Datatype used to represent a real floating point number.
String PrimaryAtlas
The name of the this screens primary atlas for texture lookups.
This class represents a 2D rect which can express the size and position of a renderable on screen...
std::map< String, Widget * > WidgetContainer
Basic container type for Widget storage by this class.
This class is for creating and managing viewports within a game window.
This is the base class for a method of finding which quad the mouse is hovered over.
A light-weight handle for manipulating nodes in DOM tree.
Whole RenderEnd
The index of the last verticy to be rendered.
Vector2 MouseHitPosition
The pixel position on this screen where the mouse clicked on a Widget.
This is used to represent a point on a 2 dimentional area, such as a screen.
VertexData & operator[](const Whole &Index)
Array access operator spanning all 3 Vertex vectors.
WidgetFactoryContainer::const_iterator ConstWidgetFactoryIterator
Const Iterator type for Widget instances stored by this class.
ScreenInternalData * SID
A pointer to the class storing all sensative internal data THAT IS NOT FOR YOUR EYES! ...
static Boole _ReverseProcessAllChildren(Widget *Wid, Callback *CB)
Processes all children of this screen in reverse zorder.
A layout container that aligns it's children along a common Y axis.
std::map< String, WidgetFactory * > WidgetFactoryContainer
Basic container type for Widget storage by this class.
MouseHoverStrategy * MouseStrat
A pointer to the strategy to be used when detecting the hovered widget.
WidgetFactoryContainer WidgetFactories
A container storing all the factories for the widgets supported by this screen.
Basic class describing a vertex in the UI to be rendered.
RenderLayerType
This enum describes the type of RenderLayer this is for use in casting.
This is used to represent a point in space, or a vector through space.
ReverseChildIterator RChildrenBegin()
Gets an iterator to the last Widget.
This class is responsible for any and all user interactions with the User interface/HUD.
ScreenRenderData VertexCache
A container storing the actual vertices to be rendered.
MarkupParser * GetMarkupParser(const String &ParserName) const
Gets a MarkupParser by it's registered name.
The bulk of the engine components go in this namspace.
This class stores all vertices pertaining to a layer sorted by their priority for rendering...
OrientationMode
Simple enum for communicating the orientation the UI and Camera have relative to the world it is rend...
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
A layout container that aligns it's children along a common X axis.
WidgetContainer Widgets
A container storing all the created Widgets owned by this screen.
ChildContainer::iterator ChildIterator
Iterator type for Widget instances stored by this class.
ReverseChildIterator RChildrenEnd()
Gets an iterator to one before the first child Widget.
This is a base class for the parsing of markup texts contained in text layers.
This is a simple widget for storing a bool value.
Mezzanine::OrientationMode Orientation
The current orientation mode of this screen.
Whole RenderStart
The index of the first verticy to be rendered.
This represents a nestable quad for an object in a GUI layout.
ChildIterator ChildrenBegin()
Gets an iterator to the first child Widget.
TextureVertexContainer TextureByVertex
A container storing a mapping of the textures needed to render each section of vertices.
std::map< String, String > NameValuePairMap
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
WidgetFactoryContainer::iterator WidgetFactoryIterator
Iterator type for Widget instances stored by this class.
This class is a helper class for creating UI's. It is responsible for storing and keeping track of al...
Basic class used to describe a portion of a texture to be applied to a Quad.
std::string String
A datatype used to a series of characters.
RenderableType
A small enum to describe the type of renderable this is.
Vector2 InverseSize
The inverse size (1/size) of the viewport this screen is bound to in pixels.
This is a widget that displays one selection from a list that can have it's visibility toggled...
This is a widget for displaying a list of captions in a box.
Widget for handling the input and manipulation of text.