Spinning Topp Logo BlackTopp Studios
inc
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Mezzanine::UI::QuadRenderable Class Reference

This represents a nestable quad for an object in a GUI layout. More...

#include <quadrenderable.h>

+ Inheritance diagram for Mezzanine::UI::QuadRenderable:
+ Collaboration diagram for Mezzanine::UI::QuadRenderable:

Public Types

typedef std::vector< Widget * > ChildContainer
 Basic container type for Widget storage by this class.
 
typedef ChildContainer::iterator ChildIterator
 Iterator type for Widget instances stored by this class.
 
typedef ChildContainer::const_iterator ConstChildIterator
 Const Iterator type for Widget instances stored by this class.
 
typedef RenderLayerGroupContainer::const_iterator ConstRenderLayerGroupIterator
 Const Iterator type for RenderLayerGroup instances stored by this class.
 
typedef RenderLayerContainer::const_iterator ConstRenderLayerIterator
 Const Iterator type for RenderLayer instances stored by this class.
 
typedef ChildContainer::const_reverse_iterator ConstReverseChildIterator
 Const Reverse Iterator type for Widget instances stored by this class.
 
typedef std::vector< RenderLayer * > RenderLayerContainer
 Basic container type for RenderLayer storage by this class.
 
typedef std::vector< RenderLayerGroup * > RenderLayerGroupContainer
 Basic container type for RenderLayerGroup storage by this class.
 
typedef RenderLayerGroupContainer::iterator RenderLayerGroupIterator
 Iterator type for RenderLayerGroup instances stored by this class.
 
typedef RenderLayerContainer::iterator RenderLayerIterator
 Iterator type for RenderLayer instances stored by this class.
 
typedef ChildContainer::reverse_iterator ReverseChildIterator
 Reverse Iterator type for Widget instances stored by this class.
 
- Public Types inherited from Mezzanine::UI::Renderable
enum  RenderableType { RT_LineList, RT_Screen, RT_Widget }
 A small enum to describe the type of renderable this is.
 

Public Member Functions

 QuadRenderable (Screen *Parent)
 Blank constructor. More...
 
 QuadRenderable (const String &RendName, Screen *Parent)
 Class constructor. More...
 
 QuadRenderable (const String &RendName, const UnifiedRect &RendRect, Screen *Parent)
 Parent-less constructor. More...
 
virtual ~QuadRenderable ()
 Class destructor. More...
 
virtual void _AppendRenderData (ScreenRenderData &RenderData)
 Appends the vertices of this renderable to another vector. More...
 
virtual void _AppendRenderDataCascading (ScreenRenderData &RenderData)
 Appends the vertices of this renderable to another vector, and then does the same for this renderable's children. More...
 
virtual void _Clean ()
 Refreshes the render data of this renderable. More...
 
virtual void _MarkAllChildrenDirty ()
 Tells this QuadRenderable to mark each of it's children (and their children) as dirty. More...
 
virtual void _MarkAllLayersDirty ()
 Tells this QuadRenderable that all of it's layers are dirty. More...
 
virtual void _MarkDirty ()
 Marks this renderable as dirty, and informs other renderables if needed. More...
 
virtual void _NotifyParenthood (QuadRenderable *NewParent)
 Notifies this QuadRenderable that it has been added to another QuadRenderable. More...
 
virtual void _SetLayoutStrat (LayoutStrategy *ToSet)
 Sets a new LayoutStrategy for this quad to use. More...
 
virtual void _SetZOrder (const UInt16 &Zorder)
 Ssts the ZOrder value for this renderable. More...
 
virtual void AddChild (Widget *Child)
 Adds a Widget to this as a child of this quad. More...
 
virtual void AddChild (Widget *Child, const UInt16 ZOrder)
 Adds a Widget to this as a child of this quad. More...
 
void AddLayerToExistingGroup (RenderLayer *Layer, const UInt16 LayerZOrder, const UInt16 GroupID)
 Adds a RenderLayer to the specified group. More...
 
void AddLayerToGroup (RenderLayer *Layer, const UInt16 LayerZOrder, const UInt16 GroupID)
 Adds a RenderLayer to the specified group. More...
 
void AddLayerToGroup (RenderLayer *Layer, const GroupOrderEntry &GroupAndZ)
 Adds a RenderLayer to the specified group. More...
 
void AddLayerToGroups (RenderLayer *Layer, const GroupOrderEntryVector &Entrys)
 Adds a RenderLayer to multiple groups. More...
 
virtual Boole CheckOverlap (const QuadRenderable *Quad) const
 Checks to see if another Quad is overlapping with this one. More...
 
ChildIterator ChildrenBegin ()
 Gets an iterator to the first child Widget. More...
 
ConstChildIterator ChildrenBegin () const
 Gets a const iterator to the first child Widget. More...
 
ChildIterator ChildrenEnd ()
 Gets an iterator to one passed the last child Widget. More...
 
ConstChildIterator ChildrenEnd () const
 Gets an iterator to one passed the last child Widget. More...
 
MultiImageLayerCreateMultiImageLayer ()
 Creates an MultiImageLayer for this renderable. More...
 
MultiImageLayerCreateMultiImageLayer (const UInt16 NormalZ, const UInt16 HoveredZ)
 Creates an MultiImageLayer for this renderable. More...
 
MultiImageLayerCreateMultiImageLayer (const GroupOrderEntry &GroupAndZ)
 Creates an MultiImageLayer for this renderable and adds it to a RenderLayerGroup. More...
 
MultiLineTextLayerCreateMultiLineTextLayer ()
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const UInt16 NormalZ, const UInt16 HoveredZ)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const GroupOrderEntry &GroupAndZ)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const String &FontName)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const String &FontName, const UInt16 NormalZ, const UInt16 HoveredZ)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const String &FontName, const GroupOrderEntry &GroupAndZ)
 Creats a MultiLineTextLayer for this renderable. More...
 
RenderLayerGroupCreateOrRetrieveRenderLayerGroup (const UInt16 GroupID)
 Gets the named RenderLayerGroup or creates one with the specified ID if it does not exist. More...
 
RenderLayerGroupCreateRenderLayerGroup (const UInt16 GroupID)
 Creates a new RenderLayerGroup that can have.

Exceptions
Thisfunction will throw an exception if a group already exists with the provided name.
More...
 
SingleImageLayerCreateSingleImageLayer ()
 Creates a SingleImageLayer for this renderable. More...
 
SingleImageLayerCreateSingleImageLayer (const UInt16 NormalZ, const UInt16 HoveredZ)
 Creates a SingleImageLayer for this renderable. More...
 
SingleImageLayerCreateSingleImageLayer (const GroupOrderEntry &GroupAndZ)
 Creates a SingleImageLayer for this renderable and adds it to a RenderLayerGroup. More...
 
SingleImageLayerCreateSingleImageLayer (const String &SpriteName)
 Creates a SingleImageLayer for this renderable. More...
 
SingleImageLayerCreateSingleImageLayer (const String &SpriteName, const UInt16 NormalZ, const UInt16 HoveredZ)
 Creates a SingleImageLayer for this renderable. More...
 
SingleImageLayerCreateSingleImageLayer (const String &SpriteName, const GroupOrderEntry &GroupAndZ)
 Creates a SingleImageLayer for this renderable and adds it to a RenderLayerGroup. More...
 
SingleLineTextLayerCreateSingleLineTextLayer ()
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const UInt16 NormalZ, const UInt16 HoveredZ)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const GroupOrderEntry &GroupAndZ)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const String &FontName)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const String &FontName, const UInt16 NormalZ, const UInt16 HoveredZ)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const String &FontName, const GroupOrderEntry &GroupAndZ)
 Creats a SingleLineTextLayer for this renderable. More...
 
virtual void DestroyAllChildren ()
 Destroys all child Widgets currently inside this QuadRenderable.
 
void DestroyAllRenderLayerGroups ()
 Destroy's all RenderLayerGroups being stored/managed by this QuadRenderable.
 
void DestroyAllRenderLayers ()
 Destroys all RenderLayers being stored by this renderable.
 
virtual void DestroyChild (Widget *ToBeDestroyed)
 Destroys a child Widget currently inside this QuadRenderable. More...
 
void DestroyRenderLayer (RenderLayer *ToBeDestroyed)
 Destroys a RenderLayer being stored by this renderable. More...
 
void DestroyRenderLayerGroup (const UInt16 GroupID)
 Destroy's a RenderLayerGroup by ID. More...
 
void DestroyRenderLayerGroup (RenderLayerGroup *ToBeDestroyed)
 Destroy's a RenderLayerGroup by pointer. More...
 
RenderLayerGroupGetActiveGroup () const
 Gets the current RenderLayerGroup used for rendering. More...
 
virtual Vector2 GetActualPosition () const
 Gets the pixel position of this widget. More...
 
virtual Vector2 GetActualSize () const
 Gets the pixel size of this widget. More...
 
virtual UI::AspectRatioLock GetAspectRationLock () const
 Gets how (and if) the aspect ratio of this quad is locked. More...
 
virtual WidgetGetChild (const UInt16 Zorder) const
 Gets a child by it's ZOrder. More...
 
virtual WidgetGetChild (const String &RendName) const
 Gets a child by it's name. More...
 
WidgetGetClosestChild (Widget *Child)
 Gets a pointer to the child of this QuadRenderable that is storing a child, or another quad that is. More...
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this Renderable. More...
 
virtual UInt16 GetHighestChildZOrder () const
 Gets the highest ZOrder among the children of this QuadRenderable. More...
 
virtual Whole GetHorizontalPositioningRules () const
 Gets the current behavior this quad will follow when it is positioned automatically on the X axis. More...
 
virtual Whole GetHorizontalSizingRules () const
 Gets the current behavior this quad will follow for the X axis when it is resized. More...
 
virtual Real GetIdealHeightForText () const
 Gets the height needed for this quadrenderable to be able to completely display text in it's child text layers. More...
 
virtual UInt16 GetLowestChildZOrder () const
 Gets the lowest ZOrder among the children of this QuadRenderable. More...
 
virtual Boole GetManualTransformUpdates () const
 Gets whether or not this quad will be automatically updated when parent transforms are updated. More...
 
virtual UnifiedVec2 GetMaxSize () const
 Gets the currently set maximum size for this quad. More...
 
virtual UnifiedVec2 GetMinSize () const
 Gets the currently set minimum size for this quad. More...
 
virtual Boole GetMousePassthrough () const
 Gets whether or not Mouse Passthrough is enabled. More...
 
QuadRenderableGetNextSibling (Boole Wrap=true)
 Gets the QuadRenderable after this one among the QuadRenderables owned by it's parent. More...
 
virtual Whole GetNumChildren () const
 Gets the number of children in this QuadRenderable. More...
 
UInt32 GetNumRenderLayerGroups () const
 Gets the number of RenderLayerGroup's created for this renderable. More...
 
UInt32 GetNumRenderLayers () const
 Gets the number of RenderLayers created for this renderable. More...
 
UInt32 GetNumVisibleRenderLayers () const
 Gets the number of RenderLayers that are visible in this renderable. More...
 
QuadRenderableGetParent () const
 Gets the parent of this quad. More...
 
virtual const PositioningInfoGetPositioningPolicy () const
 Gets the current behavior this QuadRenderable will use when it is positioned. More...
 
QuadRenderableGetPrevSibling (Boole Wrap=true)
 Gets the QuadRenderable before this one among the QuadRenderables owned by it's parent. More...
 
virtual Rect GetRect () const
 Gets this QuadRenderables' Rect. More...
 
RenderLayerGetRenderLayer (const UInt32 &Index) const
 Gets a RenderLayer belonging to this QuadRenderable by index. More...
 
RenderLayerGetRenderLayer (const Whole Which, const UI::RenderLayerType Type)
 Gets a RenderLayer belonging to this QuadRenderable by it's type. More...
 
RenderLayerGroupGetRenderLayerGroup (const UInt16 GroupID) const
 Gets a RenderLayerGroup by ID. More...
 
virtual const SizingInfoGetSizingPolicy () const
 Gets the current behavior this QuadRenderable will use when it is sized. More...
 
QuadRenderableGetTopMostQuad ()
 Gets the QuadRenderable that is both an ancestor of this quad, and a direct child of the screen. More...
 
virtual UnifiedVec2 GetUnifiedPosition () const
 Gets the position of this QuadRenderable as a Unified Vector2. More...
 
virtual UnifiedRect GetUnifiedRect () const
 Gets the Unified positiona nd size of this QuadRenderable as a unified rect. More...
 
virtual UnifiedVec2 GetUnifiedSize () const
 Gets the size of this QuadRenderable as a Unified Vector2. More...
 
virtual Whole GetVerticalPositioningRules () const
 Gets the current behavior this quad will follow when it is positioned automatically on the Y axis. More...
 
virtual Whole GetVerticalSizingRules () const
 Gets the current behavior this quad will follow for the Y axis when it is resized. More...
 
virtual const UInt16GetZOrder () const
 Gets the currently set ZOrder of this QuadRenderable with it's parent. More...
 
virtual Boole IsChildOfScreen () const
 Gets whether or not this QuadRenderable is a direct child of it's screen. More...
 
virtual Boole IsInside (const Vector2 &Point) const
 Checks to see if a point in 2D space is inside this quad. More...
 
Boole IsVertexCachingEnabled () const
 Gets whether or not vertex caching is enabled for this Quad. More...
 
virtual void PopulateTextLinesInLayers (const Real MaxWidth)
 Populates all text lines in all text layers owned by this quad. More...
 
virtual void ProtoDeSerialize (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite this object with it. More...
 
virtual void ProtoDeSerializeChildQuads (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the ChildQuads of this object with it. More...
 
virtual void ProtoDeSerializeProperties (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the properties of this object with it. More...
 
virtual void ProtoDeSerializeRenderLayerGroups (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the RenderLayerGroups of this object with it. More...
 
virtual void ProtoDeSerializeRenderLayers (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the RenderLayers of this object with it. More...
 
virtual void ProtoSerialize (XML::Node &ParentNode) const
 Convert this class to an XML::Node ready for serialization. More...
 
virtual void ProtoSerializeChildQuads (XML::Node &SelfRoot) const
 Convert the child quads of this class to an XML::Node ready for serialization. More...
 
virtual void ProtoSerializeProperties (XML::Node &SelfRoot) const
 Convert the properties of this class to an XML::Node ready for serialization. More...
 
virtual void ProtoSerializeRenderLayerGroups (XML::Node &SelfRoot) const
 Convert the RenderLayerGroups of this class to an XML::Node ready for seriailization. More...
 
virtual void ProtoSerializeRenderLayers (XML::Node &SelfRoot) const
 Convert the RenderLayers of this class to an XML::Node ready for serialization. More...
 
ReverseChildIterator RChildrenBegin ()
 Gets an iterator to the last Widget. More...
 
ConstReverseChildIterator RChildrenBegin () const
 Gets a const iterator to the last Widget. More...
 
ReverseChildIterator RChildrenEnd ()
 Gets an iterator to one before the first child Widget. More...
 
ConstReverseChildIterator RChildrenEnd () const
 Gets a const iterator to one before the first child Widget. More...
 
virtual void RemoveAllChildren ()
 Removes all child Widgets from this QuadRenderable. More...
 
virtual void RemoveChild (Widget *ToBeRemoved)
 Removes a child Widget from this quadrenderable. More...
 
void RemoveLayerFromAllGroups (RenderLayer *Layer)
 Removes a single RenderLayer from all RenderLayerGroups owned by this QuadRenderable. More...
 
void RemoveLayerFromGroup (RenderLayer *Layer, const UInt16 GroupID)
 Removes a single RenderLayer from a specified RenderLayerGroup. More...
 
RenderLayerIterator RenderLayerBegin ()
 Gets an iterator to the first RenderLayer. More...
 
ConstRenderLayerIterator RenderLayerBegin () const
 Gets a const iterator to the first RenderLayer. More...
 
RenderLayerIterator RenderLayerEnd ()
 Gets an iterator to one passed the last RenderLayer. More...
 
ConstRenderLayerIterator RenderLayerEnd () const
 Gets an iterator to one passed the last RenderLayer. More...
 
RenderLayerGroupIterator RenderLayerGroupBegin ()
 Gets an iterator to the first RenderLayerGroup. More...
 
ConstRenderLayerGroupIterator RenderLayerGroupBegin () const
 Gets a const iterator to the first RenderLayerGroup. More...
 
RenderLayerGroupIterator RenderLayerGroupEnd ()
 Gets an iterator to one passed the last RenderLayerGroup. More...
 
ConstRenderLayerGroupIterator RenderLayerGroupEnd () const
 Gets an iterator to one passed the last RenderLayerGroup. More...
 
Boole RenderLayerGroupExists (const UInt16 GroupID) const
 Checks to see if a RenderLayerGroup exists. More...
 
void SetActiveGroup (const UInt16 GroupID)
 Sets the RenderLayerGroup that will be used to render this renderable. More...
 
void SetActiveGroup (RenderLayerGroup *Group)
 Sets the RenderLayerGroup that will be used to render this renderable. More...
 
virtual void SetAspectRatioLock (const UI::AspectRatioLock Lock)
 Sets how (and if) the aspect ratio of this quad is locked. More...
 
virtual void SetHorizontalPositioningRules (const Whole Rules)
 Sets the behavior this quad will have when it is positioned automatically on the X axis. More...
 
virtual void SetHorizontalSizingRules (const Whole Rules)
 Sets the behavior this quad will have on the X axis when it is resized. More...
 
void SetLocalVertexCaching (Boole Enable)
 Enables or disables caching of vertex's belonging to this and all child renderables. More...
 
virtual void SetManualTransformUpdates (Boole Enable)
 Sets whether or not this quad has specific behaviors for it's transform updates and they should not be done automatically. More...
 
virtual void SetMaxSize (const UnifiedVec2 &Max)
 Sets the maximum size this quad is allowed to have. More...
 
virtual void SetMinSize (const UnifiedVec2 &Min)
 Sets the minimum size this quad is allowed to have. More...
 
virtual void SetMousePassthrough (Boole Enable)
 Sets whether or not this quad should be skipped when determining if the mouse is hovered over this quad. More...
 
virtual void SetPositioningPolicy (const PositioningInfo &Policy)
 Sets the behavior to be used when this QuadRenderable is positioned. More...
 
virtual void SetSizingPolicy (const SizingInfo &Policy)
 Sets the behavior to be used when this QuadRenderable is sized. More...
 
virtual void SetUnifiedPosition (const UnifiedVec2 &Position)
 Sets the position this QuadRenderable will have within it's parent. More...
 
virtual void SetUnifiedSize (const UnifiedVec2 &Size)
 Sets the size this QuadRenderable will have within it's parent. More...
 
virtual void SetVerticalPositioningRules (const Whole Rules)
 Sets the behavior this quad will have when it is positioned automatically on the Y axis. More...
 
virtual void SetVerticalSizingRules (const Whole Rules)
 Sets the behavior this quad will have on the Y axis when it is resized. More...
 
virtual void UpdateChildDimensions ()
 Updates the dimensions of the children in this QuadRenderable. More...
 
virtual void UpdateChildOrder ()
 Updates the order of children in this QuadRenderable based on the ZOrder set on each child.
 
virtual void UpdateDimensions ()
 Updates the dimensions of this QuadRenderable based on the transform of it's parent. More...
 
virtual void UpdateDimensions (const Rect &OldSelfRect, const Rect &NewSelfRect)
 Updates the dimensions of this QuadRenderable based on the transform of it's parent. More...
 
- Public Member Functions inherited from Mezzanine::UI::Renderable
Boole _IsDirty () const
 Gets whether or not this renderable is dirty. More...
 
const StringGetName () const
 Gets the name of this renderable. More...
 
virtual RenderableType GetRenderableType () const =0
 Gets the type of renderable this is. More...
 
ScreenGetScreen () const
 Gets the parent screen of this renderable. More...
 
virtual Boole GetVisible () const =0
 Gets the visibility setting of this renderable. More...
 
virtual void Hide ()=0
 Forces this renderable to hide.
 
Boole IsScreen () const
 Gets whether or not this renderable is a Screen. More...
 
virtual Boole IsVisible () const =0
 Gets whether or not this renderable is being drawn. More...
 
Boole IsWidget () const
 Gets whether or not this renderable is a Widget. More...
 
virtual void SetVisible (Boole CanSee)=0
 Sets the visibility of this renderable. More...
 
virtual void Show ()=0
 Forces this renderable to be shown.
 

Static Public Member Functions

static String GetSerializableName ()
 Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized. More...
 
- Static Public Member Functions inherited from Mezzanine::UI::Renderable
static String GetSerializableName ()
 Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized. More...
 

Protected Member Functions

void AppendLayerVertices (std::vector< VertexData > &Vertices)
 Adds all the vertices belonging to all the layers of this renderable to the provided vector. More...
 
RenderLayerGroupCreateRenderLayerGroupNoCheck (const UInt16 ID)
 Creates a new RenderLayerGroup with the provided ID, without checking if it is unique. More...
 
virtual void ProtoDeSerializeImpl (const XML::Node &SelfRoot)
 Implementation method for deseriailizing additional sets of data. More...
 
virtual void ProtoSerializeImpl (XML::Node &SelfRoot) const
 Implementation method for serializing additional sets of data. More...
 
void ResizeLayers (const Whole NewSize)
 Resizes the container for RenderLayers in this QuadRenderable. More...
 
- Protected Member Functions inherited from Mezzanine::UI::Renderable
 Renderable (Screen *Parent)
 Blank constructor. More...
 
 Renderable (const String &RendName, Screen *Parent)
 Class constructor. More...
 
virtual ~Renderable ()
 Class destructor.
 

Protected Attributes

Rect ActDims
 The actual (pixel) position and size of this Quad on the screen it belongs to. More...
 
RenderLayerGroupActiveGroup
 This is a pointer to the group of RenderLayers currently being used for rendering. More...
 
Boole AllLayersDirty
 Determines whether or not this Quad needs all of it's layers refreshed. Usually after a transform update. More...
 
ChildContainer ChildWidgets
 This is a container storing all the children that belong to this Quad. More...
 
LayoutStrategyLayoutStrat
 This is a pointer to the strategy being used by this Quad to determine the positions and sizes of children during transform updates. More...
 
Boole ManualTransformUpdates
 Controls whether or not this Quad and it's children will recieve automatic transform updates. More...
 
Boole MousePassthrough
 Controls whether or not this Quad will be considered for mouse hover checks. More...
 
QuadRenderableParentQuad
 This is a pointer to the Quad that owns this Quad and is responsible for transform updates applied to this Quad. More...
 
PositioningInfo PositioningPolicy
 This stores all the information needed to determine the specific behaviors this Quad should have when it's position is being updated. More...
 
RenderLayerGroupContainer RenderLayerGroups
 This is a container storing all the RenderLayerGroup instances created by and belonging to this Quad. More...
 
RenderLayerContainer RenderLayers
 This is a container storing all the RenderLayer instances created by and belonging to this Quad. More...
 
SizingInfo SizingPolicy
 This stores all the information needed to determine the specific behaviors this Quad should have when it's size is being updated. More...
 
ScreenRenderDataVertexCache
 This is a pointer to the optional cache of vertex's belonging to this Quad and all of it's children. More...
 
UInt16 ZOrder
 This is the ZOrder of this Quad in relation to all other Quads in it's parent. More...
 
- Protected Attributes inherited from Mezzanine::UI::Renderable
Boole Dirty
 Stores whether this Renderables vertices need to be regenerated. More...
 
String Name
 The unique name of this Renderable. More...
 
ScreenParentScreen
 A pointer to the Screen that created this Renderable. More...
 
Boole Visible
 Stores whether this Renderable is to be rendered (also dependent on parent visibility). More...
 

Detailed Description

This represents a nestable quad for an object in a GUI layout.

QuadRenderables use "Unified" units for setting their position and size. Unified units contain both relative and absolute information for their position on screen or inside their parent. It is important to note that the Relative portion of the Unified unit is always calculated first.

The relative portions of the Unified units used to set the dimensions aren't relative to the screen size, but instead their parents size. For the most part QuadRenderables are oblivious to the size of the screen they are in.

It is important to note that the RenderLayer's stored directly by this class are all the layers that were created by this class, in creation order. They aren't not what will be rendered, nor are they in the order they will be rendered in. To get either of these bits of information you must check the active RenderLayerGroup and check the RenderLayers there.

Also only one RenderLayerGroup may render at a time, but a single RenderLayer can be shared between as many groups under the same QuadRenderable as you want.

Definition at line 104 of file quadrenderable.h.

Constructor & Destructor Documentation

Mezzanine::UI::QuadRenderable::QuadRenderable ( Screen Parent)

Blank constructor.

Note
This is primarily useful for (and used as) a basic constructor suitable for XML deserialization post-construction.
Parameters
ParentThe parent screen that created this renderable.

Definition at line 67 of file quadrenderable.cpp.

Mezzanine::UI::QuadRenderable::QuadRenderable ( const String RendName,
Screen Parent 
)

Class constructor.

Parameters
RendNameThe name to be given to this renderable.
ParentThe parent screen that created this renderable.

Definition at line 79 of file quadrenderable.cpp.

Mezzanine::UI::QuadRenderable::QuadRenderable ( const String RendName,
const UnifiedRect RendRect,
Screen Parent 
)

Parent-less constructor.

Parameters
RendNameThe name to be given to this renderable.
RendRectThe rect describing this quad's transform relative to it's parent.
ParentThe parent screen that created this renderable.

Definition at line 91 of file quadrenderable.cpp.

Mezzanine::UI::QuadRenderable::~QuadRenderable ( )
virtual

Class destructor.

Note
Any and all children of this quad at the time of it's destruction will be destroyed as well. If you want to preserve the children for whatever reason, remove them from the quad prior to destroying it.

Definition at line 108 of file quadrenderable.cpp.

Member Function Documentation

void Mezzanine::UI::QuadRenderable::_AppendRenderData ( ScreenRenderData RenderData)
virtual

Appends the vertices of this renderable to another vector.

Parameters
RenderDataThe vector of vertex's to append to.

Implements Mezzanine::UI::Renderable.

Definition at line 1316 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_AppendRenderDataCascading ( ScreenRenderData RenderData)
virtual

Appends the vertices of this renderable to another vector, and then does the same for this renderable's children.

Parameters
RenderDataThe vector of vertex's to append to.

Reimplemented in Mezzanine::UI::PagedContainer, and Mezzanine::UI::LayoutContainer.

Definition at line 1324 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_Clean ( )
virtual

Refreshes the render data of this renderable.

Implements Mezzanine::UI::Renderable.

Definition at line 1279 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_MarkAllChildrenDirty ( )
virtual

Tells this QuadRenderable to mark each of it's children (and their children) as dirty.

Note
This will also mark itself as dirty in the process.

Definition at line 1299 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_MarkAllLayersDirty ( )
virtual

Tells this QuadRenderable that all of it's layers are dirty.

Reimplemented in Mezzanine::UI::Screen.

Definition at line 1306 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_MarkDirty ( )
virtual

Marks this renderable as dirty, and informs other renderables if needed.

Implements Mezzanine::UI::Renderable.

Reimplemented in Mezzanine::UI::Screen.

Definition at line 1289 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_NotifyParenthood ( QuadRenderable NewParent)
virtual

Notifies this QuadRenderable that it has been added to another QuadRenderable.

Parameters
NewParentA pointer to the QuadRenderable this is becoming the child of.

Reimplemented in Mezzanine::UI::MenuEntry.

Definition at line 1268 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_SetLayoutStrat ( LayoutStrategy ToSet)
virtual

Sets a new LayoutStrategy for this quad to use.

Note
If a LayoutStrategy is already applied to this, then the old one will be deleted.
Parameters
ToSetA pointer to the new LayoutStrategy for this quad to use.

Definition at line 1271 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::_SetZOrder ( const UInt16 Zorder)
virtual

Ssts the ZOrder value for this renderable.

Warning
Under no circumstances would any user need to call this method themselves. Doing so can damage how things are rendered.
Parameters
ZorderThe ZOrder this renderable has among the renderables belonging to it's parent.

Definition at line 1265 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AddChild ( Widget Child)
virtual

Adds a Widget to this as a child of this quad.

Warning
Unless this method is being called from a Screen or LayoutContainer (or it's derived classes) this method is not intended for casual use. Different QuadRenderable implementations have different expectations on their children and may need a specific quantity, or have them inserted in a specific order to achieve the behavior designed for them. Use with care.
Parameters
ChildA pointer to the Widget that is to become a child of this.

Reimplemented in Mezzanine::UI::PagedContainer, and Mezzanine::UI::LinearContainer.

Definition at line 765 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AddChild ( Widget Child,
const UInt16  ZOrder 
)
virtual

Adds a Widget to this as a child of this quad.

Warning
Unless this method is being called from a Screen or LayoutContainer (or it's derived classes) this method is not intended for casual use. Different QuadRenderable implementations have different expectations on their children and may need a specific quantity, or have them inserted in a specific order to achieve the behavior designed for them. Use with care.
Parameters
ChildA pointer to the Widget that is to become a child of this.
ZOrderThe ZOrder to assign to the child renderable.

Reimplemented in Mezzanine::UI::PagedContainer, and Mezzanine::UI::LinearContainer.

Definition at line 791 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AddLayerToExistingGroup ( RenderLayer Layer,
const UInt16  LayerZOrder,
const UInt16  GroupID 
)

Adds a RenderLayer to the specified group.

Note
Unlike it's counterpart that doesn't specify "Existing", this will only add to groups that already exist and will not create any RenderLayerGroups.
Parameters
LayerThe RenderLayer to be added to the named group.
LayerZOrderThe ZOrder that will be given to this layer to determine the order it is rendered with other layers.
GroupIDThe ID of the group the created ImageLayer should be added to.

Definition at line 667 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AddLayerToGroup ( RenderLayer Layer,
const UInt16  LayerZOrder,
const UInt16  GroupID 
)

Adds a RenderLayer to the specified group.

Note
If the requested group does not exist it will be created.
Parameters
LayerThe RenderLayer to be added to the named group.
LayerZOrderThe ZOrder that will be given to this layer to determine the order it is rendered with other layers.
GroupIDThe ID of the group the created ImageLayer should be added to.

Definition at line 661 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AddLayerToGroup ( RenderLayer Layer,
const GroupOrderEntry GroupAndZ 
)

Adds a RenderLayer to the specified group.

Note
If the requested group does not exist it will be created.
Parameters
LayerThe RenderLayer to be added to the named group.
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the specified layer to and the ZOrder to insert it at.

Definition at line 664 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AddLayerToGroups ( RenderLayer Layer,
const GroupOrderEntryVector Entrys 
)

Adds a RenderLayer to multiple groups.

Note
If the requested groups do not exist they will be created.
Parameters
LayerThe RenderLayer to be added to the named groups.
EntrysA vector of std::pair's that contain the ZOrders and the names of the groups the provided layer should be added to.

Definition at line 675 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::AppendLayerVertices ( std::vector< VertexData > &  Vertices)
protected

Adds all the vertices belonging to all the layers of this renderable to the provided vector.

Parameters
VerticesThe vector to store the generated vertices.

Definition at line 137 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::CheckOverlap ( const QuadRenderable Quad) const
virtual

Checks to see if another Quad is overlapping with this one.

Parameters
QuadThe other Quad to check for overlap.
Returns
Returns true if this quad overlaps with the provided quad, false otherwise.

Definition at line 198 of file quadrenderable.cpp.

QuadRenderable::ChildIterator Mezzanine::UI::QuadRenderable::ChildrenBegin ( )

Gets an iterator to the first child Widget.

Returns
Returns an iterator to the first Widget being stored by this QuadRenderable.

Definition at line 870 of file quadrenderable.cpp.

QuadRenderable::ConstChildIterator Mezzanine::UI::QuadRenderable::ChildrenBegin ( ) const

Gets a const iterator to the first child Widget.

Returns
Returns a const iterator to the first Widget being stored by this QuadRenderable.

Definition at line 876 of file quadrenderable.cpp.

QuadRenderable::ChildIterator Mezzanine::UI::QuadRenderable::ChildrenEnd ( )

Gets an iterator to one passed the last child Widget.

Returns
Returns an iterator to one passed the last Widget being stored by this QuadRenderable.

Definition at line 873 of file quadrenderable.cpp.

QuadRenderable::ConstChildIterator Mezzanine::UI::QuadRenderable::ChildrenEnd ( ) const

Gets an iterator to one passed the last child Widget.

Returns
Returns a const iterator to one passed the last Widget being stored by this QuadRenderable.

Definition at line 879 of file quadrenderable.cpp.

MultiImageLayer * Mezzanine::UI::QuadRenderable::CreateMultiImageLayer ( )

Creates an MultiImageLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Returns
Returns a pointer to the created MultiImageLayer.

Definition at line 432 of file quadrenderable.cpp.

MultiImageLayer * Mezzanine::UI::QuadRenderable::CreateMultiImageLayer ( const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creates an MultiImageLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
Returns
Returns a pointer to the created MultiImageLayer.

Definition at line 441 of file quadrenderable.cpp.

MultiImageLayer * Mezzanine::UI::QuadRenderable::CreateMultiImageLayer ( const GroupOrderEntry GroupAndZ)

Creates an MultiImageLayer for this renderable and adds it to a RenderLayerGroup.

Note
If the requested group does not exist it will be created.
Parameters
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created MultiImageLayer.

Definition at line 449 of file quadrenderable.cpp.

MultiLineTextLayer * Mezzanine::UI::QuadRenderable::CreateMultiLineTextLayer ( )

Creats a MultiLineTextLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Returns
Returns a pointer to the created layer.

Definition at line 504 of file quadrenderable.cpp.

MultiLineTextLayer * Mezzanine::UI::QuadRenderable::CreateMultiLineTextLayer ( const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creats a MultiLineTextLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
Returns
Returns a pointer to the created layer.

Definition at line 513 of file quadrenderable.cpp.

MultiLineTextLayer * Mezzanine::UI::QuadRenderable::CreateMultiLineTextLayer ( const GroupOrderEntry GroupAndZ)

Creats a MultiLineTextLayer for this renderable.

Note
If the requested group does not exist it will be created.
Parameters
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created layer.

Definition at line 521 of file quadrenderable.cpp.

MultiLineTextLayer * Mezzanine::UI::QuadRenderable::CreateMultiLineTextLayer ( const String FontName)

Creats a MultiLineTextLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Parameters
FontNameThe name of the font to use when rendering characters on the created layer.
Returns
Returns a pointer to the created layer.

Definition at line 528 of file quadrenderable.cpp.

MultiLineTextLayer * Mezzanine::UI::QuadRenderable::CreateMultiLineTextLayer ( const String FontName,
const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creats a MultiLineTextLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
FontNameThe name of the font to use when rendering characters on the created layer.
Returns
Returns a pointer to the created layer.

Definition at line 537 of file quadrenderable.cpp.

MultiLineTextLayer * Mezzanine::UI::QuadRenderable::CreateMultiLineTextLayer ( const String FontName,
const GroupOrderEntry GroupAndZ 
)

Creats a MultiLineTextLayer for this renderable.

Note
If the requested group does not exist it will be created.
Parameters
FontNameThe name of the font to use when rendering characters on the created layer.
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created layer.

Definition at line 545 of file quadrenderable.cpp.

RenderLayerGroup * Mezzanine::UI::QuadRenderable::CreateOrRetrieveRenderLayerGroup ( const UInt16  GroupID)

Gets the named RenderLayerGroup or creates one with the specified ID if it does not exist.

Remarks
This function is unlike the "create" function in that it won't throw an exception in an error condition, and it is unlike the "get" function in that it will not return a NULL pointer. This function guarentee's returning a valid RenderLayerGroup with the given ID.

The first RenderLayerGroup that is created will automatically be set to the ActiveGroup. You can override this by calling "SetActiveGroup" manually after creating any additional RenderLayerGroup.
Parameters
GroupIDThe unique ID of the RenderLayerGroup to get or create.
Returns
Returns a pointer to the named RenderLayerGroup.

Definition at line 706 of file quadrenderable.cpp.

RenderLayerGroup * Mezzanine::UI::QuadRenderable::CreateRenderLayerGroup ( const UInt16  GroupID)

Creates a new RenderLayerGroup that can have.

Exceptions
Thisfunction will throw an exception if a group already exists with the provided name.

Remarks
The first RenderLayerGroup that is created will automatically be set to the ActiveGroup. You can override this by calling "SetActiveGroup" manually after creating any additional RenderLayerGroup.
Parameters
GroupIDThe unique ID to be given to the new RenderLayerGroup.
Returns
Returns a pointer to the created RenderLayerGroup.

Definition at line 695 of file quadrenderable.cpp.

RenderLayerGroup * Mezzanine::UI::QuadRenderable::CreateRenderLayerGroupNoCheck ( const UInt16  ID)
protected

Creates a new RenderLayerGroup with the provided ID, without checking if it is unique.

Parameters
IDThe ID to be given to the RenderLayerGroup.
Returns
Returns a pointer to the created RenderLayerGroup.

Definition at line 156 of file quadrenderable.cpp.

SingleImageLayer * Mezzanine::UI::QuadRenderable::CreateSingleImageLayer ( )

Creates a SingleImageLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Returns
Returns a pointer to the created SingleImageLayer.

Definition at line 386 of file quadrenderable.cpp.

SingleImageLayer * Mezzanine::UI::QuadRenderable::CreateSingleImageLayer ( const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creates a SingleImageLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
Returns
Returns a pointer to the created SingleImageLayer.

Definition at line 395 of file quadrenderable.cpp.

SingleImageLayer * Mezzanine::UI::QuadRenderable::CreateSingleImageLayer ( const GroupOrderEntry GroupAndZ)

Creates a SingleImageLayer for this renderable and adds it to a RenderLayerGroup.

Note
If the requested group does not exist it will be created.
Parameters
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created SingleImageLayer.

Definition at line 403 of file quadrenderable.cpp.

SingleImageLayer * Mezzanine::UI::QuadRenderable::CreateSingleImageLayer ( const String SpriteName)

Creates a SingleImageLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Parameters
SpriteNameThe name of the sprite to be set to the created layer.
Returns
Returns a pointer to the created SingleImageLayer.

Definition at line 410 of file quadrenderable.cpp.

SingleImageLayer * Mezzanine::UI::QuadRenderable::CreateSingleImageLayer ( const String SpriteName,
const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creates a SingleImageLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
SpriteNameThe name of the sprite to be set to the created layer.
Returns
Returns a pointer to the created SingleImageLayer.

Definition at line 417 of file quadrenderable.cpp.

SingleImageLayer * Mezzanine::UI::QuadRenderable::CreateSingleImageLayer ( const String SpriteName,
const GroupOrderEntry GroupAndZ 
)

Creates a SingleImageLayer for this renderable and adds it to a RenderLayerGroup.

Note
If the requested group does not exist it will be created.
Parameters
SpriteNameThe name of the sprite to be set to the created layer.
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created SingleImageLayer.

Definition at line 425 of file quadrenderable.cpp.

SingleLineTextLayer * Mezzanine::UI::QuadRenderable::CreateSingleLineTextLayer ( )

Creats a SingleLineTextLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Returns
Returns a pointer to the created layer.

Definition at line 456 of file quadrenderable.cpp.

SingleLineTextLayer * Mezzanine::UI::QuadRenderable::CreateSingleLineTextLayer ( const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creats a SingleLineTextLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
Returns
Returns a pointer to the created layer.

Definition at line 465 of file quadrenderable.cpp.

SingleLineTextLayer * Mezzanine::UI::QuadRenderable::CreateSingleLineTextLayer ( const GroupOrderEntry GroupAndZ)

Creats a SingleLineTextLayer for this renderable.

Note
If the requested group does not exist it will be created.
Parameters
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created layer.

Definition at line 473 of file quadrenderable.cpp.

SingleLineTextLayer * Mezzanine::UI::QuadRenderable::CreateSingleLineTextLayer ( const String FontName)

Creats a SingleLineTextLayer for this renderable.

Note
This will not add the created layer to any group, thus it must be added manually to be rendered.
Parameters
FontNameThe name of the font to use when rendering characters on the created layer.
Returns
Returns a pointer to the created layer.

Definition at line 480 of file quadrenderable.cpp.

SingleLineTextLayer * Mezzanine::UI::QuadRenderable::CreateSingleLineTextLayer ( const String FontName,
const UInt16  NormalZ,
const UInt16  HoveredZ 
)

Creats a SingleLineTextLayer for this renderable.

Note
This will attempt to add the created layer to both the "Normal" and "Hovered" RenderLayerGroups, which are auto-generated, but not guaranteed to exist.
Parameters
NormalZThe Zorder which will be used when inserting the created layer into the "Normal" RenderLayerGroup, if it exists.
HoveredZThe Zorder which will be used when inserting the created layer into the "Hovered" RenderLayerGroup, if it exists.
FontNameThe name of the font to use when rendering characters on the created layer.
Returns
Returns a pointer to the created layer.

Definition at line 489 of file quadrenderable.cpp.

SingleLineTextLayer * Mezzanine::UI::QuadRenderable::CreateSingleLineTextLayer ( const String FontName,
const GroupOrderEntry GroupAndZ 
)

Creats a SingleLineTextLayer for this renderable.

Note
If the requested group does not exist it will be created.
Parameters
FontNameThe name of the font to use when rendering characters on the created layer.
GroupAndZA GroupOrderEntry containing the ID of the RenderLayerGroup to add the created layer to and the ZOrder to insert it at.
Returns
Returns a pointer to the created layer.

Definition at line 497 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::DestroyChild ( Widget ToBeDestroyed)
virtual

Destroys a child Widget currently inside this QuadRenderable.

Parameters
ToBeDestroyedA pointer to the child to be destroyed.

Reimplemented in Mezzanine::UI::GridContainer, and Mezzanine::UI::PagedContainer.

Definition at line 845 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::DestroyRenderLayer ( RenderLayer ToBeDestroyed)

Destroys a RenderLayer being stored by this renderable.

Parameters
ToBeDestroyedThe RenderLayer to be destroyed.

Definition at line 576 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::DestroyRenderLayerGroup ( const UInt16  GroupID)

Destroy's a RenderLayerGroup by ID.

Parameters
GroupIDThe unique ID of the RenderLayerGroup to destroy.

Definition at line 726 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::DestroyRenderLayerGroup ( RenderLayerGroup ToBeDestroyed)

Destroy's a RenderLayerGroup by pointer.

Parameters
ToBeDestroyedThe RenderLayerGroup to be destroyed.

Definition at line 738 of file quadrenderable.cpp.

RenderLayerGroup * Mezzanine::UI::QuadRenderable::GetActiveGroup ( ) const

Gets the current RenderLayerGroup used for rendering.

Returns
Returns a pointer to the group currently being used to render this renderable.

Definition at line 652 of file quadrenderable.cpp.

Vector2 Mezzanine::UI::QuadRenderable::GetActualPosition ( ) const
virtual

Gets the pixel position of this widget.

Returns
Returns a vector2 representing the pixel position of this widget.

Definition at line 920 of file quadrenderable.cpp.

Vector2 Mezzanine::UI::QuadRenderable::GetActualSize ( ) const
virtual

Gets the pixel size of this widget.

Returns
Returns a vector2 representing the pixel size of this widget.

Definition at line 923 of file quadrenderable.cpp.

UI::AspectRatioLock Mezzanine::UI::QuadRenderable::GetAspectRationLock ( ) const
virtual

Gets how (and if) the aspect ratio of this quad is locked.

Returns
Returns an AspectRatioLock enum value representing how this quad reacts when it's aspect ratio would change.

Definition at line 354 of file quadrenderable.cpp.

Widget * Mezzanine::UI::QuadRenderable::GetChild ( const UInt16  Zorder) const
virtual

Gets a child by it's ZOrder.

Note
ZOrders do not have to be unique. In the case of multiple identical ZOrders the first one found will be returned.
Parameters
ZorderThe ZOrder on the child to search for.
Returns
Returns a pointer to the requested child.

Definition at line 797 of file quadrenderable.cpp.

Widget * Mezzanine::UI::QuadRenderable::GetChild ( const String RendName) const
virtual

Gets a child by it's name.

Parameters
RendNameThe name of the child to search for.
Returns
Returns a pointer to the requested child.

Definition at line 807 of file quadrenderable.cpp.

Widget * Mezzanine::UI::QuadRenderable::GetClosestChild ( Widget Child)

Gets a pointer to the child of this QuadRenderable that is storing a child, or another quad that is.

Note
If the Child argument is a child of this, this method will return the Child argument.
Parameters
ChildA pointer to the Widget to check for.
Returns
Returns a pointer to the Widget most closely related to the specified child that is also a child of this quad, or NULL if the Widget isn't a child of this.

Definition at line 976 of file quadrenderable.cpp.

String Mezzanine::UI::QuadRenderable::GetDerivedSerializableName ( ) const
virtual

Gets the most derived serializable name of this Renderable.

Note
When creating a new Renderable class verify this method has a valid return for it in order for serialization to work properly.
Returns
Returns the name of the XML tag from the most derived class of "this".

Reimplemented from Mezzanine::UI::Renderable.

Reimplemented in Mezzanine::UI::Screen, and Mezzanine::UI::Widget.

Definition at line 1256 of file quadrenderable.cpp.

UInt16 Mezzanine::UI::QuadRenderable::GetHighestChildZOrder ( ) const
virtual

Gets the highest ZOrder among the children of this QuadRenderable.

Note
This method assumes the children are ordered. If you alter the ZOrder of children often, ensure you call UpdateChildOrder after the alterations so this method will work.
Returns
Returns a UInt16 representing the highest ZOrder of all the children in this QuadRenderable, or 0 if this quad has no children.

Definition at line 172 of file quadrenderable.cpp.

Whole Mezzanine::UI::QuadRenderable::GetHorizontalPositioningRules ( ) const
virtual

Gets the current behavior this quad will follow when it is positioned automatically on the X axis.

Returns
Returns a bitfield of PositioningFlags reprensenting the action this quad will take when it is positioned on the X axis.

Definition at line 306 of file quadrenderable.cpp.

Whole Mezzanine::UI::QuadRenderable::GetHorizontalSizingRules ( ) const
virtual

Gets the current behavior this quad will follow for the X axis when it is resized.

Returns
Returns a whole reprensenting the action this quad will take when it is resized. See SizingRules enum for more info.

Definition at line 330 of file quadrenderable.cpp.

Real Mezzanine::UI::QuadRenderable::GetIdealHeightForText ( ) const
virtual

Gets the height needed for this quadrenderable to be able to completely display text in it's child text layers.

Returns
Returns a Real representing the pixel height this quad needs to be to display it's largest batch of text among it's text layers.

Definition at line 218 of file quadrenderable.cpp.

UInt16 Mezzanine::UI::QuadRenderable::GetLowestChildZOrder ( ) const
virtual

Gets the lowest ZOrder among the children of this QuadRenderable.

Note
This method assumes the children are ordered. If you alter the ZOrder of children often, ensure you call UpdateChildOrder after the alterations so this method will work.
Returns
Returns a UInt16 representing the lowest ZOrder of all the children in this QuadRenderable, or 0 if this quad has no children.

Definition at line 175 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::GetManualTransformUpdates ( ) const
virtual

Gets whether or not this quad will be automatically updated when parent transforms are updated.

Returns
Returns true if this quad needs manual updating, false if it recieves automatic updates.

Definition at line 269 of file quadrenderable.cpp.

UnifiedVec2 Mezzanine::UI::QuadRenderable::GetMaxSize ( ) const
virtual

Gets the currently set maximum size for this quad.

Returns
Returns a vector2 containing the maximum size for this quad in pixels.

Definition at line 378 of file quadrenderable.cpp.

UnifiedVec2 Mezzanine::UI::QuadRenderable::GetMinSize ( ) const
virtual

Gets the currently set minimum size for this quad.

Returns
Returns a vector2 containing the minimum size for this quad in pixels.

Definition at line 366 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::GetMousePassthrough ( ) const
virtual

Gets whether or not Mouse Passthrough is enabled.

Returns
Returns true if Mouse Passthrough is enabled, false otherwise.

Definition at line 263 of file quadrenderable.cpp.

QuadRenderable * Mezzanine::UI::QuadRenderable::GetNextSibling ( Boole  Wrap = true)

Gets the QuadRenderable after this one among the QuadRenderables owned by it's parent.

Parameters
WrapWhether or not you want to return the first QuadRenderable owned by this Quad's parent if this Quad is last.
Returns
Returns a pointer to the next QuadRenderable (by sort order).

Definition at line 935 of file quadrenderable.cpp.

Whole Mezzanine::UI::QuadRenderable::GetNumChildren ( ) const
virtual

Gets the number of children in this QuadRenderable.

Returns
Returns the number of children directly connected to this QuadRenderable.

Definition at line 817 of file quadrenderable.cpp.

UInt32 Mezzanine::UI::QuadRenderable::GetNumRenderLayerGroups ( ) const

Gets the number of RenderLayerGroup's created for this renderable.

Returns
Returns a UInt32 containing the number of RenderLayerGroups in this renderable.

Definition at line 658 of file quadrenderable.cpp.

UInt32 Mezzanine::UI::QuadRenderable::GetNumRenderLayers ( ) const

Gets the number of RenderLayers created for this renderable.

Returns
Returns a UInt32 containing the number of RenderLayers in this renderable.

Definition at line 570 of file quadrenderable.cpp.

UInt32 Mezzanine::UI::QuadRenderable::GetNumVisibleRenderLayers ( ) const

Gets the number of RenderLayers that are visible in this renderable.

Returns
Returns a UInt32 containing the number of RenderLayers that would be rendered if this renderable is visible.

Definition at line 573 of file quadrenderable.cpp.

QuadRenderable * Mezzanine::UI::QuadRenderable::GetParent ( ) const

Gets the parent of this quad.

Returns
Returns a pointer to the parent object of this quad, or NULL if it's the root object.

Definition at line 932 of file quadrenderable.cpp.

const PositioningInfo & Mezzanine::UI::QuadRenderable::GetPositioningPolicy ( ) const
virtual

Gets the current behavior this QuadRenderable will use when it is positioned.

Returns
Returns a const PositioningInfo reference describing how this QuadRenderable is positioned.

Definition at line 282 of file quadrenderable.cpp.

QuadRenderable * Mezzanine::UI::QuadRenderable::GetPrevSibling ( Boole  Wrap = true)

Gets the QuadRenderable before this one among the QuadRenderables owned by it's parent.

Parameters
WrapWhether or not you want to return the last QuadRenderable owned by this Quad's parent if this Quad is first.
Returns
Returns a pointer to the previous QuadRenderable (by sort order).

Definition at line 951 of file quadrenderable.cpp.

Rect Mezzanine::UI::QuadRenderable::GetRect ( ) const
virtual

Gets this QuadRenderables' Rect.

Note
This function will always return a non-relative rect(units in pixels).
Returns
Returns a Rect containing this QuadRenderables' Position and Size.

Definition at line 926 of file quadrenderable.cpp.

RenderLayer * Mezzanine::UI::QuadRenderable::GetRenderLayer ( const UInt32 Index) const

Gets a RenderLayer belonging to this QuadRenderable by index.

Parameters
IndexThe index of the RenderLayer to retrieve.
Returns
Returns a pointer to the RenderLayer at the specified index.

Definition at line 552 of file quadrenderable.cpp.

RenderLayer * Mezzanine::UI::QuadRenderable::GetRenderLayer ( const Whole  Which,
const UI::RenderLayerType  Type 
)

Gets a RenderLayer belonging to this QuadRenderable by it's type.

Parameters
WhichThe Nth RenderLayer of the specified type to retrieve.
TypeThe type of RenderLayer to be considered for retrieval.
Returns
Returns a pointer to the Nth RenderLayer of the specified type, or NULL if one does not exist.

Definition at line 555 of file quadrenderable.cpp.

RenderLayerGroup * Mezzanine::UI::QuadRenderable::GetRenderLayerGroup ( const UInt16  GroupID) const

Gets a RenderLayerGroup by ID.

Parameters
GroupIDThe unique ID of the RenderLayerGroup to retrieve.
Returns
Returns a pointer to the named RenderLayerGroup, or NULL if it does not exist.

Definition at line 715 of file quadrenderable.cpp.

String Mezzanine::UI::QuadRenderable::GetSerializableName ( )
static

Get the name of the the XML tag the Renderable class will leave behind as its instances are serialized.

Returns
A string containing the name of this class.

Definition at line 1259 of file quadrenderable.cpp.

const SizingInfo & Mezzanine::UI::QuadRenderable::GetSizingPolicy ( ) const
virtual

Gets the current behavior this QuadRenderable will use when it is sized.

Returns
Returns a const SizingInfo reference describing how this QuadRenderable is sized.

Definition at line 294 of file quadrenderable.cpp.

QuadRenderable * Mezzanine::UI::QuadRenderable::GetTopMostQuad ( )

Gets the QuadRenderable that is both an ancestor of this quad, and a direct child of the screen.

Note
Since the screen is pretty much always the root and you can get the screen through other methods, that isn't factored in when searching. If this quad is a direct child of the screen, this will be returned.
Returns
Returns a pointer to the QuadRenderable that is both an ancestor of this quad, and a direct child of the screen.

Definition at line 967 of file quadrenderable.cpp.

UnifiedVec2 Mezzanine::UI::QuadRenderable::GetUnifiedPosition ( ) const
virtual

Gets the position of this QuadRenderable as a Unified Vector2.

Returns
Returns a UnifiedVec2 representing the relative position and pixel offset of this QuadRenderable.

Definition at line 911 of file quadrenderable.cpp.

UnifiedRect Mezzanine::UI::QuadRenderable::GetUnifiedRect ( ) const
virtual

Gets the Unified positiona nd size of this QuadRenderable as a unified rect.

Returns
Returns a UnifiedRect containing the position and size of this QuadRenderable.

Definition at line 917 of file quadrenderable.cpp.

UnifiedVec2 Mezzanine::UI::QuadRenderable::GetUnifiedSize ( ) const
virtual

Gets the size of this QuadRenderable as a Unified Vector2.

Returns
Returns a UnifiedVec2 representing the relative size and pixel offset of this QuadRenderable.

Definition at line 914 of file quadrenderable.cpp.

Whole Mezzanine::UI::QuadRenderable::GetVerticalPositioningRules ( ) const
virtual

Gets the current behavior this quad will follow when it is positioned automatically on the Y axis.

Returns
Returns a bitfield of PositioningFlags reprensenting the action this quad will take when it is positioned on the Y axis.

Definition at line 318 of file quadrenderable.cpp.

Whole Mezzanine::UI::QuadRenderable::GetVerticalSizingRules ( ) const
virtual

Gets the current behavior this quad will follow for the Y axis when it is resized.

Returns
Returns a whole reprensenting the action this quad will take when it is resized. See SizingRules enum for more info.

Definition at line 342 of file quadrenderable.cpp.

const UInt16 & Mezzanine::UI::QuadRenderable::GetZOrder ( ) const
virtual

Gets the currently set ZOrder of this QuadRenderable with it's parent.

A QuadRenderable without a parent yet will have the default ZOrder of 0, which is a valid ZOrder when it gains a parent. In these cases it is recommended to check to see if this QuadRenderable has a parent.

Returns
Returns a UInt16 representing this renderables ZOrder.

Definition at line 169 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::IsChildOfScreen ( ) const
virtual

Gets whether or not this QuadRenderable is a direct child of it's screen.

Returns
Returns true if the screen is this QuadRenderable's parent, false otherwise.

Definition at line 204 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::IsInside ( const Vector2 Point) const
virtual

Checks to see if a point in 2D space is inside this quad.

Parameters
PointThe point in 2D space to check.
Returns
Returns true if the provided point is within this quad, false otherwise.

Definition at line 201 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::IsVertexCachingEnabled ( ) const

Gets whether or not vertex caching is enabled for this Quad.

Returns
Returns true if this Quad caches the vertex's of it and it's children, false otherwise.

Definition at line 1004 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::PopulateTextLinesInLayers ( const Real  MaxWidth)
virtual

Populates all text lines in all text layers owned by this quad.

Note
Populating text lines can be a slow process, use with care.
Parameters
MaxWidthThe maximum line width to assume for all text lines that are to be populated.

Definition at line 207 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoDeSerialize ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Reimplemented from Mezzanine::UI::Renderable.

Definition at line 1104 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoDeSerializeChildQuads ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite the ChildQuads of this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Reimplemented in Mezzanine::UI::ListBox, Mezzanine::UI::DropDownList, Mezzanine::UI::HorizontalScrollbar, and Mezzanine::UI::VerticalScrollbar.

Definition at line 1241 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoDeSerializeImpl ( const XML::Node SelfRoot)
protectedvirtual

Implementation method for deseriailizing additional sets of data.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Reimplemented from Mezzanine::UI::Renderable.

Reimplemented in Mezzanine::UI::Widget, Mezzanine::UI::GridContainer, Mezzanine::UI::PagedContainer, Mezzanine::UI::RadioButton, Mezzanine::UI::TabSet, and Mezzanine::UI::PageProvider.

Definition at line 129 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoDeSerializeProperties ( const XML::Node SelfRoot)
virtual
void Mezzanine::UI::QuadRenderable::ProtoDeSerializeRenderLayerGroups ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite the RenderLayerGroups of this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Definition at line 1205 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoDeSerializeRenderLayers ( const XML::Node SelfRoot)
virtual

Take the data stored in an XML Node and overwrite the RenderLayers of this object with it.

Parameters
SelfRootAn XML::Node containing the data to populate this class with.

Definition at line 1162 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoSerialize ( XML::Node ParentNode) const
virtual

Convert this class to an XML::Node ready for serialization.

Parameters
ParentNodeThe point in the XML hierarchy that this renderable should be appended to.

Reimplemented from Mezzanine::UI::Renderable.

Definition at line 1012 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoSerializeChildQuads ( XML::Node SelfRoot) const
virtual

Convert the child quads of this class to an XML::Node ready for serialization.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Reimplemented in Mezzanine::UI::ListBox, Mezzanine::UI::DropDownList, Mezzanine::UI::HorizontalScrollbar, and Mezzanine::UI::VerticalScrollbar.

Definition at line 1091 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoSerializeImpl ( XML::Node SelfRoot) const
protectedvirtual

Implementation method for serializing additional sets of data.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Reimplemented from Mezzanine::UI::Renderable.

Reimplemented in Mezzanine::UI::Widget, Mezzanine::UI::GridContainer, Mezzanine::UI::PagedContainer, Mezzanine::UI::RadioButton, Mezzanine::UI::TabSet, and Mezzanine::UI::PageProvider.

Definition at line 122 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoSerializeProperties ( XML::Node SelfRoot) const
virtual
void Mezzanine::UI::QuadRenderable::ProtoSerializeRenderLayerGroups ( XML::Node SelfRoot) const
virtual

Convert the RenderLayerGroups of this class to an XML::Node ready for seriailization.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Definition at line 1063 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ProtoSerializeRenderLayers ( XML::Node SelfRoot) const
virtual

Convert the RenderLayers of this class to an XML::Node ready for serialization.

Parameters
SelfRootThe root node containing all the serialized data for this instance.

Definition at line 1050 of file quadrenderable.cpp.

QuadRenderable::ReverseChildIterator Mezzanine::UI::QuadRenderable::RChildrenBegin ( )

Gets an iterator to the last Widget.

Returns
Returns an iterator to the last Widget being stored by this QuadRenderable.

Definition at line 882 of file quadrenderable.cpp.

QuadRenderable::ConstReverseChildIterator Mezzanine::UI::QuadRenderable::RChildrenBegin ( ) const

Gets a const iterator to the last Widget.

Returns
Returns a const iterator to the last Widget being stored by this QuadRenderable.

Definition at line 888 of file quadrenderable.cpp.

QuadRenderable::ReverseChildIterator Mezzanine::UI::QuadRenderable::RChildrenEnd ( )

Gets an iterator to one before the first child Widget.

Returns
Returns an iterator to one before the first child Widget being stored by this QuadRenderable.

Definition at line 885 of file quadrenderable.cpp.

QuadRenderable::ConstReverseChildIterator Mezzanine::UI::QuadRenderable::RChildrenEnd ( ) const

Gets a const iterator to one before the first child Widget.

Returns
Returns a const iterator to one before the first child Widget being stored by this QuadRenderable.

Definition at line 891 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::RemoveAllChildren ( )
virtual

Removes all child Widgets from this QuadRenderable.

Note
The chilren are NOT destroyed.

Reimplemented in Mezzanine::UI::GridContainer, and Mezzanine::UI::PagedContainer.

Definition at line 835 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::RemoveChild ( Widget ToBeRemoved)
virtual

Removes a child Widget from this quadrenderable.

Note
The child is NOT destroyed.
Parameters
ToBeRemovedA pointer to the child to be removed.

Reimplemented in Mezzanine::UI::GridContainer, and Mezzanine::UI::PagedContainer.

Definition at line 822 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::RemoveLayerFromAllGroups ( RenderLayer Layer)

Removes a single RenderLayer from all RenderLayerGroups owned by this QuadRenderable.

Parameters
LayerThe RenderLayer to be removed from all groups.

Definition at line 689 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::RemoveLayerFromGroup ( RenderLayer Layer,
const UInt16  GroupID 
)

Removes a single RenderLayer from a specified RenderLayerGroup.

Parameters
LayerThe RenderLayer to be removed from the named group.
GroupIDThe ID of the RenderLayerGroup the provided layer will be removed from.

Definition at line 681 of file quadrenderable.cpp.

QuadRenderable::RenderLayerIterator Mezzanine::UI::QuadRenderable::RenderLayerBegin ( )

Gets an iterator to the first RenderLayer.

Returns
Returns an iterator to the first RenderLayer being stored by this renderable.

Definition at line 611 of file quadrenderable.cpp.

QuadRenderable::ConstRenderLayerIterator Mezzanine::UI::QuadRenderable::RenderLayerBegin ( ) const

Gets a const iterator to the first RenderLayer.

Returns
Returns a const iterator to the first RenderLayer being stored by this renderable.

Definition at line 617 of file quadrenderable.cpp.

QuadRenderable::RenderLayerIterator Mezzanine::UI::QuadRenderable::RenderLayerEnd ( )

Gets an iterator to one passed the last RenderLayer.

Returns
Returns an iterator to one passed the last RenderLayer being stored by this renderable.

Definition at line 614 of file quadrenderable.cpp.

QuadRenderable::ConstRenderLayerIterator Mezzanine::UI::QuadRenderable::RenderLayerEnd ( ) const

Gets an iterator to one passed the last RenderLayer.

Returns
Returns an iterator to one passed the last RenderLayer being stored by this renderable.

Definition at line 620 of file quadrenderable.cpp.

QuadRenderable::RenderLayerGroupIterator Mezzanine::UI::QuadRenderable::RenderLayerGroupBegin ( )

Gets an iterator to the first RenderLayerGroup.

Returns
Returns an iterator to the first RenderLayerGroup being stored by this renderable.

Definition at line 750 of file quadrenderable.cpp.

QuadRenderable::ConstRenderLayerGroupIterator Mezzanine::UI::QuadRenderable::RenderLayerGroupBegin ( ) const

Gets a const iterator to the first RenderLayerGroup.

Returns
Returns a const iterator to the first RenderLayerGroup being stored by this renderable.

Definition at line 756 of file quadrenderable.cpp.

QuadRenderable::RenderLayerGroupIterator Mezzanine::UI::QuadRenderable::RenderLayerGroupEnd ( )

Gets an iterator to one passed the last RenderLayerGroup.

Returns
Returns an iterator to one passed the last RenderLayerGroup being stored by this renderable.

Definition at line 753 of file quadrenderable.cpp.

QuadRenderable::ConstRenderLayerGroupIterator Mezzanine::UI::QuadRenderable::RenderLayerGroupEnd ( ) const

Gets an iterator to one passed the last RenderLayerGroup.

Returns
Returns an iterator to one passed the last RenderLayerGroup being stored by this renderable.

Definition at line 759 of file quadrenderable.cpp.

Boole Mezzanine::UI::QuadRenderable::RenderLayerGroupExists ( const UInt16  GroupID) const

Checks to see if a RenderLayerGroup exists.

Parameters
GroupIDThe ID of the RenderLayerGroup to check for.
Returns
Returns true if the named RenderLayerGroup exists in this renderable.

Definition at line 655 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::ResizeLayers ( const Whole  NewSize)
protected

Resizes the container for RenderLayers in this QuadRenderable.

Parameters
NewSizeThe new capacity for RenderLayer storage.

Definition at line 145 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetActiveGroup ( const UInt16  GroupID)

Sets the RenderLayerGroup that will be used to render this renderable.

Parameters
GroupIDThe ID of the RenderLayerGroup that will be used.

Definition at line 626 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetActiveGroup ( RenderLayerGroup Group)

Sets the RenderLayerGroup that will be used to render this renderable.

Parameters
GroupPointer to the RenderLayerGroup that will be used.

Definition at line 636 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetAspectRatioLock ( const UI::AspectRatioLock  Lock)
virtual

Sets how (and if) the aspect ratio of this quad is locked.

Parameters
LockAn AspectRatioLock enum value expressing the action this quad will take when it's aspect ratio would change.

Definition at line 347 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetHorizontalPositioningRules ( const Whole  Rules)
virtual

Sets the behavior this quad will have when it is positioned automatically on the X axis.

Note
This method is not retroactive. Setting this to a different value will not cause it to reposition.
Parameters
RulesThe action to take when this is positioned on the X axis. See PositioningFlags enum for more info.

Definition at line 299 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetHorizontalSizingRules ( const Whole  Rules)
virtual

Sets the behavior this quad will have on the X axis when it is resized.

Note
This method is not retroactive. Setting this to a different value will not cause it to resize.
Parameters
RulesThe action to take when this is resized. See SizingRules enum for more info.

Definition at line 323 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetLocalVertexCaching ( Boole  Enable)

Enables or disables caching of vertex's belonging to this and all child renderables.

Remarks
If enabled, this will create a local instance of ScreenRenderData. Whenever this or any of this Quad's children are updated the cache will be flushed and regenerated. When a request to append vertices is made, they will be appended from the local cache. If needed the cache will be regenerated immediately.

This will increase the memory consumed, but in some cases can dramatically increase the performance of redrawing a screen when only a small portion of the screen is changed. By default all direct children of the screen have this enabled.

It is also important to note that this cache is only used when the "_AppendVerticesCascading" method is called.
Parameters
EnableWhether to enable or disable this feature.

Definition at line 993 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetManualTransformUpdates ( Boole  Enable)
virtual

Sets whether or not this quad has specific behaviors for it's transform updates and they should not be done automatically.

Note
Setting this to true will prevent child quads from being updated. This setting does not mean that a quad will never be updated, just that it has special logic for doing so located elsewhere from the normal logic. Example: Transform updates to be applied to the scroller of a scrollbar.
Parameters
EnableTrue to make this quad skip automatic updating and intent to provide that logic explicitly elsewhere, false for automatic transform updates.

Definition at line 266 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetMaxSize ( const UnifiedVec2 Max)
virtual

Sets the maximum size this quad is allowed to have.

Note
This function expects the provided UnifiedVec2 to be in pixels.
Parameters
MaxThe size this quad is not allowed to exceed.

Definition at line 371 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetMinSize ( const UnifiedVec2 Min)
virtual

Sets the minimum size this quad is allowed to have.

Note
This function expects the provided UnifiedVec2 to be in pixels.
Parameters
MinThe size this quad is not allowed to go under.

Definition at line 359 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetMousePassthrough ( Boole  Enable)
virtual

Sets whether or not this quad should be skipped when determining if the mouse is hovered over this quad.

Note
This does not affect the ability for the children of this quad to be detected and/or checked.
Parameters
EnableTrue if you want to have this quad be skipped for mouse hover checks, false if you want this quad checked.

Definition at line 260 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetPositioningPolicy ( const PositioningInfo Policy)
virtual

Sets the behavior to be used when this QuadRenderable is positioned.

Note
This method is not retroactive. Setting this to a different value will not cause it to reposition.
Parameters
PolicyThe PositioningInfo to be applied to this QuadRenderable.

Definition at line 275 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetSizingPolicy ( const SizingInfo Policy)
virtual

Sets the behavior to be used when this QuadRenderable is sized.

Note
This method is not retroactive. Setting this to a different value will not cause it to resize.
Parameters
PolicyThe SizingInfo to be applied to this QuadRenderable.

Definition at line 287 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetUnifiedPosition ( const UnifiedVec2 Position)
virtual

Sets the position this QuadRenderable will have within it's parent.

Parameters
PositionThe top-left position relative to it's parents' rect.

Definition at line 897 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetUnifiedSize ( const UnifiedVec2 Size)
virtual

Sets the size this QuadRenderable will have within it's parent.

Parameters
SizeThe width and height relative to it's parents' rect.

Definition at line 904 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetVerticalPositioningRules ( const Whole  Rules)
virtual

Sets the behavior this quad will have when it is positioned automatically on the Y axis.

Note
This method is not retroactive. Setting this to a different value will not cause it to reposition.
Parameters
RulesThe action to take when this is positioned on the Y axis. See PositioningFlags enum for more info.

Definition at line 311 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::SetVerticalSizingRules ( const Whole  Rules)
virtual

Sets the behavior this quad will have on the Y axis when it is resized.

Note
This method is not retroactive. Setting this to a different value will not cause it to resize.
Parameters
RulesThe action to take when this is resized. See SizingRules enum for more info.

Definition at line 335 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::UpdateChildDimensions ( )
virtual

Updates the dimensions of the children in this QuadRenderable.

This is a convenience function that will call the more descriptive version of "UpdateDimensions" on this object using its existing dimensions as both parameters, causing all of this quads children to be updated. This method can be expensive based on the number of children this quad has.

Definition at line 241 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::UpdateDimensions ( )
virtual

Updates the dimensions of this QuadRenderable based on the transform of it's parent.

This is a convenience function that will call the more descriptive version of "UpdateDimensions" on this objects parent using its existing dimensions as both parameters, causing all of its children to be updated (including this). This method can be expensive based on the number of siblings this quad has.

Definition at line 233 of file quadrenderable.cpp.

void Mezzanine::UI::QuadRenderable::UpdateDimensions ( const Rect OldSelfRect,
const Rect NewSelfRect 
)
virtual

Updates the dimensions of this QuadRenderable based on the transform of it's parent.

This function is called automatically by this objects parent when it changes in size or position, and should only need to be called manually if the positioning or sizing rules were updated manually.

Parameters
OldSelfRectThe previous dimensions of this quad prior to it's dimensions being updated.
NewSelfRectThe updated and current dimensions of this quad.

Reimplemented in Mezzanine::UI::PagedContainer, Mezzanine::UI::ListBox, Mezzanine::UI::DropDownList, Mezzanine::UI::HorizontalScrollbar, Mezzanine::UI::VerticalScrollbar, and Mezzanine::UI::LayoutContainer.

Definition at line 247 of file quadrenderable.cpp.

Member Data Documentation

Rect Mezzanine::UI::QuadRenderable::ActDims
protected

The actual (pixel) position and size of this Quad on the screen it belongs to.

Definition at line 147 of file quadrenderable.h.

RenderLayerGroup* Mezzanine::UI::QuadRenderable::ActiveGroup
protected

This is a pointer to the group of RenderLayers currently being used for rendering.

Definition at line 153 of file quadrenderable.h.

Boole Mezzanine::UI::QuadRenderable::AllLayersDirty
protected

Determines whether or not this Quad needs all of it's layers refreshed. Usually after a transform update.

Definition at line 171 of file quadrenderable.h.

ChildContainer Mezzanine::UI::QuadRenderable::ChildWidgets
protected

This is a container storing all the children that belong to this Quad.

Definition at line 138 of file quadrenderable.h.

LayoutStrategy* Mezzanine::UI::QuadRenderable::LayoutStrat
protected

This is a pointer to the strategy being used by this Quad to determine the positions and sizes of children during transform updates.

Definition at line 156 of file quadrenderable.h.

Boole Mezzanine::UI::QuadRenderable::ManualTransformUpdates
protected

Controls whether or not this Quad and it's children will recieve automatic transform updates.

Definition at line 168 of file quadrenderable.h.

Boole Mezzanine::UI::QuadRenderable::MousePassthrough
protected

Controls whether or not this Quad will be considered for mouse hover checks.

Definition at line 165 of file quadrenderable.h.

QuadRenderable* Mezzanine::UI::QuadRenderable::ParentQuad
protected

This is a pointer to the Quad that owns this Quad and is responsible for transform updates applied to this Quad.

Definition at line 150 of file quadrenderable.h.

PositioningInfo Mezzanine::UI::QuadRenderable::PositioningPolicy
protected

This stores all the information needed to determine the specific behaviors this Quad should have when it's position is being updated.

Definition at line 144 of file quadrenderable.h.

RenderLayerGroupContainer Mezzanine::UI::QuadRenderable::RenderLayerGroups
protected

This is a container storing all the RenderLayerGroup instances created by and belonging to this Quad.

Definition at line 132 of file quadrenderable.h.

RenderLayerContainer Mezzanine::UI::QuadRenderable::RenderLayers
protected

This is a container storing all the RenderLayer instances created by and belonging to this Quad.

Definition at line 135 of file quadrenderable.h.

SizingInfo Mezzanine::UI::QuadRenderable::SizingPolicy
protected

This stores all the information needed to determine the specific behaviors this Quad should have when it's size is being updated.

Definition at line 141 of file quadrenderable.h.

ScreenRenderData* Mezzanine::UI::QuadRenderable::VertexCache
protected

This is a pointer to the optional cache of vertex's belonging to this Quad and all of it's children.

Definition at line 159 of file quadrenderable.h.

UInt16 Mezzanine::UI::QuadRenderable::ZOrder
protected

This is the ZOrder of this Quad in relation to all other Quads in it's parent.

Definition at line 162 of file quadrenderable.h.


The documentation for this class was generated from the following files: