MezzanineEngine 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Mezzanine::UI::LinearContainer Class Reference

This is a container class for placing child objects in succession on a single axis. More...

#include <linearcontainer.h>

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

Public Types

enum  SizeEnforcement { SE_None = 0, SE_OnAdd = 1, SE_OnUpdate = 2 }
 This enum is used to determine if and when a child should be forced to a specific size for this container. More...
 
- Public Types inherited from Mezzanine::UI::PagedContainer
typedef
VisibleChildContainer::const_iterator 
ConstVisibleChildIterator
 Const Iterator type for Visible QuadRenderable instances stored by this class.
 
enum  ProviderMode {
  PM_Error = 0, PM_Single_X = 1, PM_Single_Y = 2, PM_Single_XY = 3,
  PM_Dual_XY = 4
}
 An enum describing how the providers for this container are configured and being used. More...
 
typedef std::vector
< QuadRenderable * > 
VisibleChildContainer
 Basic container type for Visible QuadRenderable storage by this class.
 
typedef
VisibleChildContainer::iterator 
VisibleChildIterator
 Iterator type for Visible QuadRenderable instances stored by this class.
 
- Public Types inherited from Mezzanine::UI::Widget
typedef
StateLayerGroupMap::const_iterator 
ConstStateLayerGroupIterator
 Const Iterator type for RenderLayerGroup instances stored in relation to widget states.
 
typedef
StateLayerGroupMap::iterator 
StateLayerGroupIterator
 Iterator type for RenderLayerGroup instances stored in relation to widget states.
 
typedef std::map< UInt32,
RenderLayerGroup * > 
StateLayerGroupMap
 Container class for storing RenderLayerGroup instances in relation to widget states.
 
enum  WidgetState { WS_Untouched = 0, WS_Hovered = 1, WS_Focused = 2, WS_Dragged = 4 }
 Enum describing the current state of the widget.
 
- Public Types inherited from Mezzanine::UI::QuadRenderable
typedef std::list< 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::pair< UInt16, StringGroupOrderEntry
 An std::pair type for storing ZOrders in relation to a named RenderLayerGroup.
 
typedef std::vector
< GroupOrderEntry
GroupOrderEntryVector
 Container type for GroupOrderEntry storage by this class.
 
typedef std::vector
< RenderLayer * > 
RenderLayerContainer
 Basic container type for RenderLayer storage by this class.
 
typedef std::map< String,
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 Types inherited from Mezzanine::EventPublisher
typedef
EventContainer::const_iterator 
ConstEventIterator
 Const Iterator type for Event instances stored by this class.
 
typedef std::map< String, Event * > EventContainer
 Basic container type for Event storage by this class.
 
typedef EventContainer::iterator EventIterator
 Iterator type for Event instances stored by this class.
 

Public Member Functions

 LinearContainer (Screen *Parent)
 Blank constructor. More...
 
 LinearContainer (const String &RendName, Screen *Parent)
 Standard initialization constructor. More...
 
 LinearContainer (const String &RendName, const UnifiedRect &RendRect, Screen *Parent)
 Rect constructor. More...
 
virtual ~LinearContainer ()
 Class destructor.
 
virtual void AddChild (Widget *Child)
 Adds a Widget to this as a child of this quad. More...
 
virtual const SizingInfoGetChildSize () const
 Gets the size to be given to children processed by this container if forced sizing is enabled. More...
 
virtual Whole GetChildSizeEnforcement () const
 Gets when the set child sizing will be applied to any given child. More...
 
virtual const UnifiedDimGetPadding () const
 Gets the spacing being split between both sides of each child quad on the relevant axis. More...
 
virtual UI::LinearAlignment GetVisibleChildAlignment () const
 Gets the alignment for visible children of this container when they don't take up all the visible space provided by the container. 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 ProtoSerializeProperties (XML::Node &SelfRoot) const
 Convert the properties of this class to an XML::Node ready for serialization. More...
 
virtual void SetChildSize (const SizingInfo &ForcedSize)
 Sets the size to be given to children processed by this container if forced sizing is enabled. More...
 
virtual void SetChildSizeEnforcement (const Whole Enforcement)
 Sets when the set child sizing will be applied to any given child. More...
 
virtual void SetChildSizing (const SizingInfo &ForcedSize, const Whole Enforcement)
 Sets both the size and enforcement rules for forced child sizing in this container. More...
 
virtual void SetPadding (const UnifiedDim &Padding)
 Sets the spacing to be split between both sides of each child quad on the relevant axis. More...
 
virtual void SetVisibleChildAlignment (const UI::LinearAlignment ChildAlign)
 Sets the alignment for visible children of this container when they don't take up all the visible space provided by the container. More...
 
- Public Member Functions inherited from Mezzanine::UI::PagedContainer
 PagedContainer (Screen *Parent)
 Blank constructor. More...
 
 PagedContainer (const String &RendName, Screen *Parent)
 Standard initialization constructor. More...
 
 PagedContainer (const String &RendName, const UnifiedRect &RendRect, Screen *Parent)
 Rect constructor. More...
 
virtual ~PagedContainer ()
 Class destructor.
 
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 _NotifyEvent (const EventArguments &Args)
 Notifies this subscriber of an event being fired. More...
 
virtual void _OnChildFocusGained (const String &ChildName)
 Self logic to be executed when focus is given to a child of this widget. More...
 
virtual Vector2 GetActualWorkAreaSize () const
 Gets the size of this containers work area in pixels. More...
 
virtual WidgetGetLastFocusedWidget () const
 Gets a pointer to the last focused child widget in this container. More...
 
virtual ProviderMode GetProviderConfig () const
 Gets the current provider configuration of this container. More...
 
virtual ProviderMode GetProviderConfig (const PageProvider *Prov) const
 Gets the role of the specified PageProvider in this container. More...
 
virtual const UnifiedVec2GetWorkAreaSize () const
 Gets the size of this containers work area. More...
 
virtual PageProviderGetXProvider () const
 Gets the PageProvider for the X axis. More...
 
virtual PageProviderGetYProvider () const
 Gets the PageProvider for the Y axis. More...
 
virtual void ProtoDeSerializePageData (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the PageProvider data of this object with it. More...
 
virtual void ProtoSerializePageData (XML::Node &SelfRoot) const
 Convert the PageProvider data of this class to an XML::Node ready for serialization. More...
 
virtual void RemoveAllChildren ()
 Removes all child Widgets from this QuadRenderable. More...
 
virtual void RemoveChild (Widget *Child)
 Removes a child Widget by pointer. More...
 
virtual void SetProviders (PageProvider *XProv, PageProvider *YProv)=0
 Sets the page providers for both axes. More...
 
virtual void SetWorkAreaSize (const UnifiedVec2 &Area)
 Sets the size of this containers work area. More...
 
virtual void SetXProvider (PageProvider *XProv)=0
 Sets the PageProvider for the X axis. More...
 
virtual void SetYProvider (PageProvider *YProv)=0
 Sets the PageProvider for the Y axis. More...
 
virtual void UnbindProvider (PageProvider *Prov)
 Unbinds a provider being used by this container. 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::Widget
virtual bool _HandleInput (const Input::MetaCode &Code)
 Handles input passed to this widget. More...
 
virtual void _OnFocusGained ()
 Self logic to be executed when focus is given to this widget. More...
 
virtual void _OnFocusLocked ()
 Self logic to be executed when focus is locked to this widget. More...
 
virtual void _OnFocusLost ()
 Self logic to be executed when focus is removed from this widget. More...
 
virtual void _OnFocusUnlocked ()
 Self logic to be executed when focus is no longer locked to this widget. More...
 
virtual void _OnMouseDragEnd ()
 Self logic to be executed when the mouse cursor stops dragging across the bounds of this widget. More...
 
virtual void _OnMouseDragging ()
 Self logic to be executed when the mouse cursor is dragging across the bounds of this widget. More...
 
virtual void _OnMouseDragStart ()
 Self logic to be executed when the mouse cursor starts dragging across the bounds of this widget. More...
 
virtual void _OnMouseEnter ()
 Self logic to be executed when the mouse cursor enters the bounds of this widget. More...
 
virtual void _OnMouseExit ()
 Self logic to be executed when the mouse cursor leaves the bounds of thiw widget. More...
 
virtual void _OnVisibilityHidden ()
 Self logic to be executed when this widget becomes invisible.
 
virtual void _OnVisibilityShown ()
 Self logic to be executed when this widget becomes visible.
 
virtual void BindGroupToState (const UInt32 BindState, RenderLayerGroup *ToBind)
 Binds a RenderLayerGroup to a WidgetState. More...
 
WidgetGetBottomMostHoveredWidget ()
 Gets a pointer to the Widget at the bottom of the hovered SubWidget chain. More...
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this Renderable. More...
 
virtual RenderLayerGroupGetGroupBoundToState (const UInt32 BindState) const
 Gets the current RenderLayerGroup bound to a specified WidgetState. More...
 
WidgetGetHoveredSubWidget () const
 Gets the hovered sub-widget within this widget, if any. More...
 
RenderableType GetRenderableType () const
 Gets the type of renderable this is. More...
 
virtual const StringGetTypeName () const
 Gets the type of widget this is. More...
 
virtual Boolean GetVisible () const
 Gets the visibility setting of this renderable. More...
 
virtual Boolean HasFocus () const
 Gets whether or not this widget currently has focus. More...
 
virtual void Hide ()
 Forces this renderable to hide. More...
 
virtual Boolean IsBeingDragged () const
 Gets whether or not this widget is being dragged. More...
 
virtual Boolean IsHovered () const
 Gets the result of the last mouse hover check. More...
 
virtual Boolean IsVisible () const
 Gets whether or not this renderable is being drawn. More...
 
virtual void ProtoDeSerializeEvents (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the Events of this object with it. More...
 
virtual void ProtoDeSerializeStateGroupBindings (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the state-group bindings of this object with it. More...
 
virtual void ProtoSerializeEvents (XML::Node &SelfRoot) const
 Convert the Events of this class to an XML::Node ready for serialization. More...
 
virtual void ProtoSerializeStateGroupBindings (XML::Node &SelfRoot) const
 Convert the state-group bindings of this class to an XML::Node ready for serialization. More...
 
virtual bool SetGroupFromState (const UInt32 BindState)
 Sets the group bound to the specified WidgetState as active. More...
 
virtual void SetVisible (Boolean CanSee)
 
virtual void Show ()
 Forces this renderable to be shown. More...
 
- Public Member Functions inherited from Mezzanine::UI::QuadRenderable
virtual void _AppendRenderData (ScreenRenderData &RenderData)
 Appends the vertices of this renderable to another vector. More...
 
virtual Boolean _HasAvailableRenderData () const
 Checks if there are available render data from this QuadRenderable (or it's subrenderables). 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 _SetZOrder (const UInt16 &Zorder)
 Ssts the ZOrder value for this renderable. More...
 
virtual void AddChild (Widget *Child, const UInt16 ZOrder)
 Adds a Widget to this as a child of this quad. More...
 
void AddLayerToGroup (RenderLayer *Layer, const UInt16 ZOrder, const String &GroupName)
 Adds a RenderLayer to the specified group. More...
 
void AddLayerToGroups (RenderLayer *Layer, const GroupOrderEntryVector &Entrys)
 Adds a RenderLayer to multiple groups. More...
 
virtual Boolean 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...
 
ImageLayerCreateImageLayer ()
 Creates an ImageLayer for this renderable. More...
 
ImageLayerCreateImageLayer (const UInt16 ZOrder, const String &GroupName)
 Creates an ImageLayer for this renderable and adds it to a RenderLayerGroup. More...
 
ImageLayerCreateImageLayer (const GroupOrderEntryVector &Entrys)
 Creates an ImageLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
MultiLineTextLayerCreateMultiLineTextLayer ()
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const UInt16 ZOrder, const String &GroupName)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const GroupOrderEntryVector &Entrys)
 Creates a MultiLineTextLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const String &FontName)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const String &FontName, const UInt16 ZOrder, const String &GroupName)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const String &FontName, const GroupOrderEntryVector &Entrys)
 Creates a MultiLineTextLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const Real &LineHeight)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const Real &LineHeight, const UInt16 ZOrder, const String &GroupName)
 Creats a MultiLineTextLayer for this renderable. More...
 
MultiLineTextLayerCreateMultiLineTextLayer (const Real &LineHeight, const GroupOrderEntryVector &Entrys)
 Creates a MultiLineTextLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
RenderLayerGroupCreateOrRetrieveRenderLayerGroup (const String &Name)
 Gets the named RenderLayerGroup or creates one with the specified name if it does not exist. More...
 
RenderLayerGroupCreateRenderLayerGroup (const String &Name)
 Creates a new RenderLayerGroup that can have.

Exceptions
Thisfunction will throw an exception if a group already exists with the provided name.
More...
 
SingleLineTextLayerCreateSingleLineTextLayer ()
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const UInt16 ZOrder, const String &GroupName)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const GroupOrderEntryVector &Entrys)
 Creates a SingleLineTextLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const String &FontName)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const String &FontName, const UInt16 ZOrder, const String &GroupName)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const String &FontName, const GroupOrderEntryVector &Entrys)
 Creates a SingleLineTextLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const Real &LineHeight)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const Real &LineHeight, const UInt16 ZOrder, const String &GroupName)
 Creats a SingleLineTextLayer for this renderable. More...
 
SingleLineTextLayerCreateSingleLineTextLayer (const Real &LineHeight, const GroupOrderEntryVector &Entrys)
 Creates a SingleLineTextLayer for this renderable and adds it to all the specified RenderLayerGroups at the provided ZOrders. More...
 
void DestroyAllRenderLayerGroups ()
 Destroy's all RenderLayerGroups being stored/managed by this QuadRenderable.
 
void DestroyAllRenderLayers ()
 Destroys all RenderLayers being stored by this renderable.
 
void DestroyRenderLayer (RenderLayer *ToBeDestroyed)
 Destroys a RenderLayer being stored by this renderable. More...
 
void DestroyRenderLayerGroup (const String &Name)
 Destroy's a RenderLayerGroup by name. 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 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...
 
virtual UI::SizingRules 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 bool 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 bool GetMousePassthrough () const
 Gets whether or not Mouse Passthrough is enabled. More...
 
QuadRenderableGetNextSibling (Boolean 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...
 
virtual UI::PositioningFlags GetPositioningRules () const
 Gets the current behavior this quad will follow when it is positioned automatically. More...
 
QuadRenderableGetPrevSibling (Boolean 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...
 
RenderLayerGroupGetRenderLayerGroup (const String &Name) const
 Gets a RenderLayerGroup by name. More...
 
virtual UI::RenderPriority GetRenderPriority () const
 Gets the priority this QuadRenderable should be rendered with. More...
 
virtual const SizingInfoGetSizingPolicy () const
 Gets the current behavior this QuadRenderable will use when it is sized. More...
 
virtual 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 UI::SizingRules 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 Boolean IsChildOfScreen () const
 Gets whether or not this QuadRenderable is a direct child of it's screen. More...
 
virtual Boolean IsInside (const Vector2 &Point) const
 Checks to see if a point in 2D space is inside this quad. More...
 
Boolean IsVertexCachingEnabled () const
 Gets whether or not vertex caching is enabled for 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 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 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...
 
void RemoveLayerFromAllGroups (RenderLayer *Layer)
 Removes a single RenderLayer from all RenderLayerGroups owned by this QuadRenderable. More...
 
void RemoveLayerFromGroup (RenderLayer *Layer, const String &GroupName)
 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...
 
Boolean RenderLayerGroupExists (const String &Name) const
 Checks to see if a RenderLayerGroup exists. More...
 
void SetActiveGroup (const String &Name)
 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 SetHorizontalSizingRules (const UI::SizingRules Rules)
 Sets the behavior this quad will have on the X axis when it is resized. More...
 
void SetLocalVertexCaching (Boolean Enable)
 Enables or disables caching of vertex's belonging to this and all child renderables. More...
 
virtual void SetManualTransformUpdates (Boolean 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 (Boolean 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 SetPositioningRules (const UI::PositioningFlags Rules)
 Sets the behavior this quad will have when it is positioned automatically. More...
 
virtual void SetRenderPriority (const UI::RenderPriority RP)
 Sets the priority this QuadRenderable should be rendered with. More...
 
virtual void SetRenderPriorityCascading (const UI::RenderPriority RP)
 Sets the priority this QuadRenderable and all it's children should be rendered with. 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 SetVerticalSizingRules (const UI::SizingRules 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 UpdateDimensions ()
 Updates the dimensions of this QuadRenderable based on the transform of it's parent. More...
 
- Public Member Functions inherited from Mezzanine::UI::Renderable
bool _IsDirty () const
 Gets whether or not this renderable is dirty. More...
 
const StringGetName () const
 Gets the name of this renderable. More...
 
ScreenGetScreen () const
 Gets the parent screen of this renderable. More...
 
- Public Member Functions inherited from Mezzanine::EventPublisher
 EventPublisher ()
 Class constructor.
 
virtual ~EventPublisher ()
 Class destructor.
 
EventGetEvent (const String &EventName) const
 Gets an event in this publisher. More...
 
EventGetEventExcept (const String &EventName) const
 Gets an event in this publisher.

Exceptions
Thisversion differs from the non-except version in that if it fails to find the event specified it will throw a "II_IDENTITY_NOT_FOUND_EXCEPTION".
More...
 
EventSubscriberSlotSubscribe (const String &EventName, EventSubscriber *Sub)
 Adds a subscriber to this event. More...
 
EventSubscriberSlotSubscribe (const String &EventName, FunctorSubscriberSlot::FunctorDefinition *Funct, Boolean CleanUpAfter)
 Subscribes a functor object to this event. More...
 
EventSubscriberSlotSubscribe (const String &EventName, CFunctionSubscriberSlot::SubscriberFunction *CFunct)
 Subscribes a C-style function to this event. More...
 
EventSubscriberSlotSubscribe (const String &EventName, Scripting::iScript *SubScript)
 Subscribes a script to this event. More...
 
void Unsubscribe (EventSubscriber *Subscriber)
 Unsubscribes a single subscriber all events in this publisher. More...
 
void Unsubscribe (FunctorSubscriberSlot::FunctorDefinition *Funct)
 Unsubscribes a single subscriber all events in this publisher. More...
 
void Unsubscribe (CFunctionSubscriberSlot::SubscriberFunction *CFunct)
 Unsubscribes a single subscriber from all events in this publisher. More...
 
void Unsubscribe (Scripting::iScript *SubScript)
 Unsubscribes a single subscriber from all events in this publisher. More...
 
void Unsubscribe (EventSubscriberSlot *SubSlot)
 Unsubscribes a single subscriber from all events in this publisher. More...
 
void Unsubscribe (const String &EventName, EventSubscriber *Subscriber)
 Unsubscribes a single subscriber from the named event. More...
 
void Unsubscribe (const String &EventName, FunctorSubscriberSlot::FunctorDefinition *Funct)
 Unsubscribes a single subscriber from the named event. More...
 
void Unsubscribe (const String &EventName, CFunctionSubscriberSlot::SubscriberFunction *CFunct)
 Unsubscribes a single subscriber from the named event. More...
 
void Unsubscribe (const String &EventName, Scripting::iScript *SubScript)
 Unsubscribes a single subscriber from the named event. More...
 
void Unsubscribe (const String &EventName, EventSubscriberSlot *SubSlot)
 Unsubscribes a single subscriber from the named event. More...
 
Whole UnsubscribeAll ()
 Unsubscribes all subscribers from all events in this publisher. More...
 
Whole UnsubscribeAll (const String &EventName)
 Unsubscribes all subscribers from the named Event. More...
 

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::PagedContainer
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::Widget
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::QuadRenderable
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

virtual void UpdateInvisibleChild (const Rect &OldSelfRect, const Rect &NewSelfRect, QuadRenderable *InvisibleChild)
 Updates a child that hasn't been selected to be visible. More...
 
- Protected Member Functions inherited from Mezzanine::UI::PagedContainer
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...
 
virtual void UpdateContainerDimensionsImpl (const Rect &OldSelfRect, const Rect &NewSelfRect)=0
 The container specific logic for updating it's dimensions. More...
 
- Protected Member Functions inherited from Mezzanine::UI::Widget
 Widget (Screen *Parent)
 Blank constructor. More...
 
 Widget (const String &RendName, Screen *Parent)
 Standard initialization constructor. More...
 
 Widget (const String &RendName, const UnifiedRect &RendRect, Screen *Parent)
 Rect constructor. More...
 
 Widget (const XML::Node &XMLNode, Screen *Parent)
 XML constructor. More...
 
virtual ~Widget ()
 Standard destructor.
 
void ConstructWidget ()
 Contains all the common necessary startup initializations for this class. More...
 
virtual Boolean HandleInputImpl (const Input::MetaCode &Code)
 Consumes input for this widget's use. More...
 
- Protected Member Functions inherited from Mezzanine::UI::QuadRenderable
 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...
 
void AppendLayerVertices (std::vector< VertexData > &Vertices)
 Adds all the vertices belonging to all the layers of this renderable to the provided vector. More...
 
void CleanLayers ()
 Redraws all dirty layers. 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 Member Functions inherited from Mezzanine::EventPublisher
EventAddEvent (const String &EventName)
 Creates a new event this Publisher can fire. More...
 
void FireEvent (const EventArguments &Args)
 Fires an event. More...
 
void RemoveAllEvents ()
 Removes all events in this Publisher. More...
 
void RemoveEvent (const String &EventName)
 Removes an existing event in this Publisher. More...
 
- Protected Member Functions inherited from Mezzanine::EventSubscriber
 EventSubscriber ()
 Class constructor.
 
virtual ~EventSubscriber ()
 Class destructor.
 

Protected Attributes

SizingInfo ChildSizing
 The size given to children layed out by this container. More...
 
Whole ForcedSizingRules
 The current enforcement for child size in this container. More...
 
UnifiedDim LinearPadding
 The amount of space to add to both sides of a child object on the relevant axis. More...
 
UI::LinearAlignment VisibleChildAlign
 The alignment to be given to the sequence of children visible in this container. More...
 
- Protected Attributes inherited from Mezzanine::UI::PagedContainer
WidgetLastFocusedChild
 A pointer to the last child widget that was focused by this container. More...
 
VisibleChildContainer VisibleChildren
 A container of children that meet the criteria for rendering in this container. More...
 
UnifiedVec2 WorkAreaSize
 Unified rect storing the size alloted for children of this container. More...
 
PageProviderXProvider
 A pointer to the X axis provider. More...
 
PageProviderYProvider
 A pointer to the Y axis provider. More...
 
- Protected Attributes inherited from Mezzanine::UI::Widget
WidgetHoveredSubWidget
 The child widget of this widget the mouse is over, if any. More...
 
UInt32 State
 UInt32 describing the current state of this widget. More...
 
StateLayerGroupMap StateGroupBindings
 Map containing all the RenderLayerGroups bound to specific widget states. More...
 
- Protected Attributes inherited from Mezzanine::UI::QuadRenderable
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...
 
Boolean 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...
 
Boolean ManualTransformUpdates
 Controls whether or not this Quad and it's children will recieve automatic transform updates. More...
 
Boolean 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...
 
UI::RenderPriority Priority
 Determines the "higher ZOrder" of this Quad compared to all other renderables on screen. 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
Boolean 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...
 
Boolean Visible
 Stores whether this Renderable is to be rendered (also dependent on parent visibility). More...
 
- Protected Attributes inherited from Mezzanine::EventPublisher
EventContainer Events
 A container storing all the Events published by this class by name. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Mezzanine::UI::PagedContainer
static const String EventChildFocusGained = "ChildFocusGained"
 Event name for when a child of this widget gains focus.
 
static const String TypeName = "PagedContainer"
 String containing the type name for this class: "PagedContainer".
 

Detailed Description

This is a container class for placing child objects in succession on a single axis.

Definition at line 55 of file linearcontainer.h.

Member Enumeration Documentation

This enum is used to determine if and when a child should be forced to a specific size for this container.

Enumerator
SE_None 

No sizing enforcement of any kind is to occur to the children of this container.

SE_OnAdd 

The preset size for children of this container will only be applied when they are added to this container, ensuring the same start size for all children.

SE_OnUpdate 

The preset size for children of this container will be enforced constantly on each update, preventing children from being rendered at any other size.

Definition at line 60 of file linearcontainer.h.

Constructor & Destructor Documentation

Mezzanine::UI::LinearContainer::LinearContainer ( Screen Parent)

Blank constructor.

Parameters
ParentThe parent Screen that created this widget.

Definition at line 51 of file linearcontainer.cpp.

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

Standard initialization constructor.

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

Definition at line 57 of file linearcontainer.cpp.

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

Rect constructor.

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

Definition at line 63 of file linearcontainer.cpp.

Member Function Documentation

void Mezzanine::UI::LinearContainer::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 from Mezzanine::UI::PagedContainer.

Definition at line 125 of file linearcontainer.cpp.

const SizingInfo & Mezzanine::UI::LinearContainer::GetChildSize ( ) const
virtual

Gets the size to be given to children processed by this container if forced sizing is enabled.

Returns
Returns a const SizeInfo reference to the sizing given to children processed by this container if forced sizing is enabled.

Definition at line 101 of file linearcontainer.cpp.

Whole Mezzanine::UI::LinearContainer::GetChildSizeEnforcement ( ) const
virtual

Gets when the set child sizing will be applied to any given child.

Returns
Returns a bitmask describing when the child sizing will be enforced by this container. See SizeEnforcement enum for more details.

Definition at line 107 of file linearcontainer.cpp.

const UnifiedDim & Mezzanine::UI::LinearContainer::GetPadding ( ) const
virtual

Gets the spacing being split between both sides of each child quad on the relevant axis.

Returns
Returns a const UnifiedDim reference representing the amount of space to apply on both sides of each child.

Definition at line 113 of file linearcontainer.cpp.

String Mezzanine::UI::LinearContainer::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 191 of file linearcontainer.cpp.

UI::LinearAlignment Mezzanine::UI::LinearContainer::GetVisibleChildAlignment ( ) const
virtual

Gets the alignment for visible children of this container when they don't take up all the visible space provided by the container.

Returns
Returns a LinearAlignment value representing the alignment of visible children of this linear container.

Definition at line 119 of file linearcontainer.cpp.

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

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

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

Reimplemented from Mezzanine::UI::PagedContainer.

Reimplemented in Mezzanine::UI::HorizontalContainer, and Mezzanine::UI::VerticalContainer.

Definition at line 157 of file linearcontainer.cpp.

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

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

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

Reimplemented from Mezzanine::UI::PagedContainer.

Reimplemented in Mezzanine::UI::HorizontalContainer, and Mezzanine::UI::VerticalContainer.

Definition at line 137 of file linearcontainer.cpp.

void Mezzanine::UI::LinearContainer::SetChildSize ( const SizingInfo ForcedSize)
virtual

Sets the size to be given to children processed by this container if forced sizing is enabled.

Note
The sizing provided here works just like any other normal child sizing does, with the relative parts being based on the the parent container (this).
Parameters
ForcedSizeA SizingInfo describing how all children should size themselves on dimension updates.

Definition at line 98 of file linearcontainer.cpp.

void Mezzanine::UI::LinearContainer::SetChildSizeEnforcement ( const Whole  Enforcement)
virtual

Sets when the set child sizing will be applied to any given child.

Parameters
EnforcementA bitmask containing when the child sizing will be enforced by this container. See SizeEnforcement enum for more details.

Definition at line 104 of file linearcontainer.cpp.

void Mezzanine::UI::LinearContainer::SetChildSizing ( const SizingInfo ForcedSize,
const Whole  Enforcement 
)
virtual

Sets both the size and enforcement rules for forced child sizing in this container.

Note
The sizing provided here works just like any other normal child sizing does, with the relative parts being based on the the parent container (this).
Parameters
ForcedSizeA SizingInfo describing how all children should size themselves on dimension updates.
EnforcementA bitmask containing when the child sizing will be enforced by this container. See SizeEnforcement enum for more details.

Definition at line 92 of file linearcontainer.cpp.

void Mezzanine::UI::LinearContainer::SetPadding ( const UnifiedDim Padding)
virtual

Sets the spacing to be split between both sides of each child quad on the relevant axis.

Note
The unified dimension passed in is relative to the parent of this container, just like this containers dimensions and the work area dimensions.
Parameters
PaddingThe amount of space to apply on both sides of each child.

Definition at line 110 of file linearcontainer.cpp.

void Mezzanine::UI::LinearContainer::SetVisibleChildAlignment ( const UI::LinearAlignment  ChildAlign)
virtual

Sets the alignment for visible children of this container when they don't take up all the visible space provided by the container.

Parameters
ChildAlignThe alignment to be given to visible children of this linear container.

Definition at line 116 of file linearcontainer.cpp.

void Mezzanine::UI::LinearContainer::UpdateInvisibleChild ( const Rect OldSelfRect,
const Rect NewSelfRect,
QuadRenderable InvisibleChild 
)
protectedvirtual

Updates a child that hasn't been selected to be visible.

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

Definition at line 72 of file linearcontainer.cpp.

Member Data Documentation

SizingInfo Mezzanine::UI::LinearContainer::ChildSizing
protected

The size given to children layed out by this container.

Definition at line 69 of file linearcontainer.h.

Whole Mezzanine::UI::LinearContainer::ForcedSizingRules
protected

The current enforcement for child size in this container.

Definition at line 75 of file linearcontainer.h.

UnifiedDim Mezzanine::UI::LinearContainer::LinearPadding
protected

The amount of space to add to both sides of a child object on the relevant axis.

Definition at line 72 of file linearcontainer.h.

UI::LinearAlignment Mezzanine::UI::LinearContainer::VisibleChildAlign
protected

The alignment to be given to the sequence of children visible in this container.

Definition at line 78 of file linearcontainer.h.


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