Ogre::OverlayContainer Class Reference

A 2D element which contains other OverlayElement instances. More...

#include <OgreOverlayContainer.h>

Inheritance diagram for Ogre::OverlayContainer:

Inheritance graph
[legend]

List of all members.

Public Types

typedef std::map
< String,
OverlayElement * > 
ChildMap
typedef MapIterator
< ChildMap
ChildIterator
typedef std::map
< String,
OverlayContainer * > 
ChildContainerMap
typedef MapIterator
< ChildContainerMap
ChildContainerIterator

Public Member Functions

 OverlayContainer (const String &name)
 Constructor: do not call direct, use OverlayManager::createOverlayElement.
virtual ~OverlayContainer ()
virtual void addChild (OverlayElement *elem)
 Adds another OverlayElement to this container.
virtual void addChildImpl (OverlayElement *elem)
 Adds another OverlayElement to this container.
virtual void addChildImpl (OverlayContainer *cont)
 Add a nested container to this container.
virtual void removeChild (const String &name)
 Removes a named element from this container.
virtual OverlayElementgetChild (const String &name)
 Gets the named child of this container.
void initialise (void)
 Initialise gui element.
void _addChild (OverlayElement *elem)
void _removeChild (OverlayElement *elem)
void _removeChild (const String &name)
virtual ChildIterator getChildIterator (void)
 Gets an object for iterating over all the children of this object.
virtual
ChildContainerIterator 
getChildContainerIterator (void)
 Gets an iterator for just the container children of this object.
virtual void _positionsOutOfDate (void)
 Tell the object and its children to recalculate.
virtual void _update (void)
 Overridden from OverlayElement.
virtual ushort _notifyZOrder (ushort newZOrder)
 Overridden from OverlayElement.
virtual void _notifyViewport ()
 Overridden from OverlayElement.
virtual void _notifyWorldTransforms (const Matrix4 &xform)
 Overridden from OverlayElement.
virtual void _notifyParent (OverlayContainer *parent, Overlay *overlay)
 Overridden from OverlayElement.
virtual void _updateRenderQueue (RenderQueue *queue)
 Overridden from OverlayElement.
bool isContainer () const
 Overridden from OverlayElement.
virtual bool isChildrenProcessEvents () const
 Should this container pass events to their children.
virtual void setChildrenProcessEvents (bool val)
 Should this container pass events to their children.
virtual OverlayElementfindElementAt (Real x, Real y)
 This returns a OverlayElement at position x,y.
void copyFromTemplate (OverlayElement *templateOverlay)
virtual OverlayElementclone (const String &instanceName)
const StringgetName (void) const
 Gets the name of this overlay.
virtual void show (void)
 Shows this element if it was hidden.
virtual void hide (void)
 Hides this element if it was visible.
bool isVisible (void) const
 Returns whether or not the element is visible.
bool isEnabled () const
virtual void setEnabled (bool b)
void setDimensions (Real width, Real height)
 Sets the dimensions of this element in relation to the screen (1.0 = screen width/height).
void setPosition (Real left, Real top)
 Sets the position of the top-left corner of the element, relative to the screen size (1.0 = screen width / height).
void setWidth (Real width)
 Sets the width of this element in relation to the screen (where 1.0 = screen width).
Real getWidth (void) const
 Gets the width of this element in relation to the screen (where 1.0 = screen width).
void setHeight (Real height)
 Sets the height of this element in relation to the screen (where 1.0 = screen height).
Real getHeight (void) const
 Gets the height of this element in relation to the screen (where 1.0 = screen height).
void setLeft (Real left)
 Sets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right).
Real getLeft (void) const
 Gets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right).
void setTop (Real Top)
 Sets the top of this element in relation to the screen (where 0 = top, 1.0 = bottom).
Real getTop (void) const
 Gets the top of this element in relation to the screen (where 0 = top, 1.0 = bottom).
Real _getLeft (void) const
 Gets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right).
Real _getTop (void) const
 Gets the top of this element in relation to the screen (where 0 = far left, 1.0 = far right).
Real _getWidth (void) const
 Gets the width of this element in relation to the screen (where 1.0 = screen width).
Real _getHeight (void) const
 Gets the height of this element in relation to the screen (where 1.0 = screen height).
void _setLeft (Real left)
 Sets the left of this element in relation to the screen (where 1.0 = screen width).
void _setTop (Real top)
 Sets the top of this element in relation to the screen (where 1.0 = screen width).
void _setWidth (Real width)
 Sets the width of this element in relation to the screen (where 1.0 = screen width).
void _setHeight (Real height)
 Sets the height of this element in relation to the screen (where 1.0 = screen width).
void _setPosition (Real left, Real top)
 Sets the left and top of this element in relation to the screen (where 1.0 = screen width).
void _setDimensions (Real width, Real height)
 Sets the width and height of this element in relation to the screen (where 1.0 = screen width).
virtual const StringgetMaterialName (void) const
 Gets the name of the material this element uses.
virtual void setMaterialName (const String &matName)
 Sets the name of the material this element will use.
const MaterialPtrgetMaterial (void) const
 See Renderable.
void getWorldTransforms (Matrix4 *xform) const
 See Renderable.
virtual void _updateFromParent (void)
 Updates this elements transform based on it's parent.
virtual Real _getDerivedLeft (void)
 Gets the 'left' position as derived from own left and that of parents.
virtual Real _getDerivedTop (void)
 Gets the 'top' position as derived from own left and that of parents.
virtual Real _getRelativeWidth (void)
 Gets the 'width' as derived from own width and metrics mode.
virtual Real _getRelativeHeight (void)
 Gets the 'height' as derived from own height and metrics mode.
virtual void _getClippingRegion (Rectangle &clippingRegion)
 Gets the clipping region of the element.
void visitRenderables (Renderable::Visitor *visitor, bool debugRenderables=false)
 Method to allow a caller to abstractly iterate over the Renderable instances that this MovableObject will add to the render queue when asked, if any.

Parameters:
visitor Pointer to a class implementing the Renderable::Visitor interface which will be called back for each Renderable which will be queued. Bear in mind that the state of the Renderable instances may not be finalised depending on when you call this.
debugRenderables If false, only regular renderables will be visited (those for normal display). If true, debug renderables will be included too.

virtual const StringgetTypeName (void) const =0
 Gets the type name of the element.
virtual void setCaption (const DisplayString &text)
 Sets the caption on elements that support it.
virtual const
DisplayString
getCaption (void) const
 Gets the caption for this element.
virtual void setColour (const ColourValue &col)
 Sets the colour on elements that support it.
virtual const
ColourValue
getColour (void) const
 Gets the colour for this element.
virtual void setMetricsMode (GuiMetricsMode gmm)
 Tells this element how to interpret the position and dimension values it is given.
virtual GuiMetricsMode getMetricsMode (void) const
 Retrieves the current settings of how the element metrics are interpreted.
virtual void setHorizontalAlignment (GuiHorizontalAlignment gha)
 Sets the horizontal origin for this element.
virtual
GuiHorizontalAlignment 
getHorizontalAlignment (void) const
 Gets the horizontal alignment for this element.
virtual void setVerticalAlignment (GuiVerticalAlignment gva)
 Sets the vertical origin for this element.
virtual
GuiVerticalAlignment 
getVerticalAlignment (void) const
 Gets the vertical alignment for this element.
virtual bool contains (Real x, Real y) const
 Returns true if xy is within the constraints of the component.
virtual bool isKeyEnabled () const
virtual bool isCloneable () const
virtual void setCloneable (bool c)
OverlayContainergetParent ()
 Returns the parent container.
void _setParent (OverlayContainer *parent)
ushort getZOrder () const
 Returns the zOrder of the element.
Real getSquaredViewDepth (const Camera *cam) const
 Overridden from Renderable.
const LightListgetLights (void) const
 Gets a list of lights, ordered relative to how close they are to this renderable.

Remarks:
Directional lights, which have no position, will always be first on this list.

const OverlayElementgetSourceTemplate () const
ParamDictionarygetParamDictionary (void)
 Retrieves the parameter dictionary for this class.
const ParamDictionarygetParamDictionary (void) const
const ParameterListgetParameters (void) const
 Retrieves a list of parameters valid for this object.
virtual bool setParameter (const String &name, const String &value)
 Generic parameter setting method.
virtual void setParameterList (const NameValuePairList &paramList)
 Generic multiple parameter setting method.
virtual String getParameter (const String &name) const
 Generic parameter retrieval method.
virtual void copyParametersTo (StringInterface *dest) const
 Method for copying this object's parameters to another object.
virtual TechniquegetTechnique (void) const
 Retrieves a pointer to the Material Technique this renderable object uses.
virtual void getRenderOperation (RenderOperation &op)=0
 Gets the render operation required to send this object to the frame buffer.
virtual bool preRender (SceneManager *sm, RenderSystem *rsys)
 Called just prior to the Renderable being rendered.
virtual void postRender (SceneManager *sm, RenderSystem *rsys)
 Called immediately after the Renderable has been rendered.
virtual unsigned short getNumWorldTransforms (void) const
 Returns the number of world transform matrices this renderable requires.
void setUseIdentityProjection (bool useIdentityProjection)
 Sets whether or not to use an 'identity' projection.
bool getUseIdentityProjection (void) const
 Returns whether or not to use an 'identity' projection.
void setUseIdentityView (bool useIdentityView)
 Sets whether or not to use an 'identity' view.
bool getUseIdentityView (void) const
 Returns whether or not to use an 'identity' view.
virtual bool getCastsShadows (void) const
 Method which reports whether this renderable would normally cast a shadow.
void setCustomParameter (size_t index, const Vector4 &value)
 Sets a custom parameter for this Renderable, which may be used to drive calculations for this specific Renderable, like GPU program parameters.
const Vector4getCustomParameter (size_t index) const
 Gets the custom value associated with this Renderable at the given index.
virtual void _updateCustomGpuParameter (const GpuProgramParameters::AutoConstantEntry &constantEntry, GpuProgramParameters *params) const
 Update a custom GpuProgramParameters constant which is derived from information only this Renderable knows.
virtual void setPolygonModeOverrideable (bool override)
 Sets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting.
virtual bool getPolygonModeOverrideable (void) const
 Gets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting.
virtual void setUserAny (const Any &anything)
 Sets any kind of user value on this object.
virtual const AnygetUserAny (void) const
 Retrieves the custom user value associated with this object.
virtual
RenderSystemData * 
getRenderSystemData () const
 Sets render system private data.
virtual void setRenderSystemData (RenderSystemData *val) const
 gets render system private data
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
void * operator new (size_t sz)
void * operator new (size_t sz, void *ptr)
 placement operator new
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
void * operator new[] (size_t sz)
void operator delete (void *ptr)
void operator delete (void *ptr, const char *, int, const char *)
void operator delete[] (void *ptr)
void operator delete[] (void *ptr, const char *, int, const char *)

Static Public Member Functions

static void cleanupDictionary ()
 Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g.

Protected Types

typedef std::map
< size_t, Vector4
CustomParameterMap

Protected Member Functions

virtual void updatePositionGeometry (void)=0
 Internal method which is triggered when the positions of the element get updated, meaning the element should be rebuilding it's mesh positions.
virtual void updateTextureGeometry (void)=0
 Internal method which is triggered when the UVs of the element get updated, meaning the element should be rebuilding it's mesh UVs.
virtual void addBaseParameters (void)
 Internal method for setting up the basic parameter definitions for a subclass.
bool createParamDictionary (const String &className)
 Internal method for creating a parameter dictionary for the class, if it does not already exist.

Protected Attributes

ChildMap mChildren
ChildContainerMap mChildContainers
bool mChildrenProcessEvents
String mName
bool mVisible
bool mCloneable
Real mLeft
Real mTop
Real mWidth
Real mHeight
String mMaterialName
MaterialPtr mpMaterial
DisplayString mCaption
ColourValue mColour
Rectangle mClippingRegion
GuiMetricsMode mMetricsMode
GuiHorizontalAlignment mHorzAlign
GuiVerticalAlignment mVertAlign
Real mPixelTop
Real mPixelLeft
Real mPixelWidth
Real mPixelHeight
Real mPixelScaleX
Real mPixelScaleY
OverlayContainermParent
OverlaymOverlay
Real mDerivedLeft
Real mDerivedTop
bool mDerivedOutOfDate
bool mGeomPositionsOutOfDate
 Flag indicating if the vertex positions need recalculating.
bool mGeomUVsOutOfDate
 Flag indicating if the vertex uvs need recalculating.
ushort mZOrder
Matrix4 mXForm
bool mEnabled
bool mInitialised
OverlayElementmSourceTemplate
String mParamDictName
 Class name for this instance to be used as a lookup (must be initialised by subclasses).
CustomParameterMap mCustomParameters
bool mPolygonModeOverrideable
bool mUseIdentityProjection
bool mUseIdentityView
Any mUserAny
RenderSystemData * mRenderSystemData

Static Protected Attributes

static
OverlayElementCommands::CmdLeft 
msLeftCmd
static
OverlayElementCommands::CmdTop 
msTopCmd
static
OverlayElementCommands::CmdWidth 
msWidthCmd
static
OverlayElementCommands::CmdHeight 
msHeightCmd
static
OverlayElementCommands::CmdMaterial 
msMaterialCmd
static
OverlayElementCommands::CmdCaption 
msCaptionCmd
static
OverlayElementCommands::CmdMetricsMode 
msMetricsModeCmd
static
OverlayElementCommands::CmdHorizontalAlign 
msHorizontalAlignCmd
static
OverlayElementCommands::CmdVerticalAlign 
msVerticalAlignCmd
static
OverlayElementCommands::CmdVisible 
msVisibleCmd
static ParamDictionaryMap msDictionary
 Dictionary of parameters.


Detailed Description

A 2D element which contains other OverlayElement instances.

Remarks:
This is a specialisation of OverlayElement for 2D elements that contain other elements. These are also the smallest elements that can be attached directly to an Overlay.

OverlayContainers should be managed using OverlayManager. This class is responsible for instantiating / deleting elements, and also for accepting new types of element from plugins etc.

Definition at line 51 of file OgreOverlayContainer.h.


Member Typedef Documentation

typedef std::map<String, OverlayElement*> Ogre::OverlayContainer::ChildMap

Definition at line 54 of file OgreOverlayContainer.h.

typedef MapIterator<ChildMap> Ogre::OverlayContainer::ChildIterator

Definition at line 55 of file OgreOverlayContainer.h.

typedef std::map<String, OverlayContainer*> Ogre::OverlayContainer::ChildContainerMap

Definition at line 56 of file OgreOverlayContainer.h.

typedef MapIterator<ChildContainerMap> Ogre::OverlayContainer::ChildContainerIterator

Definition at line 57 of file OgreOverlayContainer.h.

typedef std::map<size_t, Vector4> Ogre::Renderable::CustomParameterMap [protected, inherited]

Definition at line 371 of file OgreRenderable.h.


Constructor & Destructor Documentation

Ogre::OverlayContainer::OverlayContainer ( const String name  ) 

Constructor: do not call direct, use OverlayManager::createOverlayElement.

virtual Ogre::OverlayContainer::~OverlayContainer (  )  [virtual]


Member Function Documentation

virtual void Ogre::OverlayContainer::addChild ( OverlayElement elem  )  [virtual]

Adds another OverlayElement to this container.

virtual void Ogre::OverlayContainer::addChildImpl ( OverlayElement elem  )  [virtual]

Adds another OverlayElement to this container.

virtual void Ogre::OverlayContainer::addChildImpl ( OverlayContainer cont  )  [virtual]

Add a nested container to this container.

virtual void Ogre::OverlayContainer::removeChild ( const String name  )  [virtual]

Removes a named element from this container.

virtual OverlayElement* Ogre::OverlayContainer::getChild ( const String name  )  [virtual]

Gets the named child of this container.

void Ogre::OverlayContainer::initialise ( void   )  [virtual]

Initialise gui element.

Implements Ogre::OverlayElement.

Reimplemented in Ogre::BorderPanelOverlayElement, and Ogre::PanelOverlayElement.

void Ogre::OverlayContainer::_addChild ( OverlayElement elem  ) 

void Ogre::OverlayContainer::_removeChild ( OverlayElement elem  ) 

Definition at line 86 of file OgreOverlayContainer.h.

References Ogre::OverlayElement::getName().

void Ogre::OverlayContainer::_removeChild ( const String name  ) 

virtual ChildIterator Ogre::OverlayContainer::getChildIterator ( void   )  [virtual]

Gets an object for iterating over all the children of this object.

virtual ChildContainerIterator Ogre::OverlayContainer::getChildContainerIterator ( void   )  [virtual]

Gets an iterator for just the container children of this object.

Remarks:
Good for cascading updates without having to use RTTI

virtual void Ogre::OverlayContainer::_positionsOutOfDate ( void   )  [virtual]

Tell the object and its children to recalculate.

Reimplemented from Ogre::OverlayElement.

virtual void Ogre::OverlayContainer::_update ( void   )  [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

Reimplemented in Ogre::BorderPanelOverlayElement.

virtual ushort Ogre::OverlayContainer::_notifyZOrder ( ushort  newZOrder  )  [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

virtual void Ogre::OverlayContainer::_notifyViewport (  )  [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

virtual void Ogre::OverlayContainer::_notifyWorldTransforms ( const Matrix4 xform  )  [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

virtual void Ogre::OverlayContainer::_notifyParent ( OverlayContainer parent,
Overlay overlay 
) [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

virtual void Ogre::OverlayContainer::_updateRenderQueue ( RenderQueue queue  )  [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

Reimplemented in Ogre::BorderPanelOverlayElement, and Ogre::PanelOverlayElement.

bool Ogre::OverlayContainer::isContainer (  )  const [virtual]

Overridden from OverlayElement.

Reimplemented from Ogre::OverlayElement.

Definition at line 120 of file OgreOverlayContainer.h.

virtual bool Ogre::OverlayContainer::isChildrenProcessEvents (  )  const [virtual]

Should this container pass events to their children.

Definition at line 124 of file OgreOverlayContainer.h.

virtual void Ogre::OverlayContainer::setChildrenProcessEvents ( bool  val  )  [virtual]

Should this container pass events to their children.

Definition at line 128 of file OgreOverlayContainer.h.

virtual OverlayElement* Ogre::OverlayContainer::findElementAt ( Real  x,
Real  y 
) [virtual]

This returns a OverlayElement at position x,y.

Reimplemented from Ogre::OverlayElement.

void Ogre::OverlayContainer::copyFromTemplate ( OverlayElement templateOverlay  )  [virtual]

Reimplemented from Ogre::OverlayElement.

virtual OverlayElement* Ogre::OverlayContainer::clone ( const String instanceName  )  [virtual]

Reimplemented from Ogre::OverlayElement.

virtual void Ogre::OverlayElement::updatePositionGeometry ( void   )  [protected, pure virtual, inherited]

Internal method which is triggered when the positions of the element get updated, meaning the element should be rebuilding it's mesh positions.

Abstract since subclasses must implement this.

Implemented in Ogre::BorderPanelOverlayElement, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.

virtual void Ogre::OverlayElement::updateTextureGeometry ( void   )  [protected, pure virtual, inherited]

Internal method which is triggered when the UVs of the element get updated, meaning the element should be rebuilding it's mesh UVs.

Abstract since subclasses must implement this.

Implemented in Ogre::BorderPanelOverlayElement, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.

virtual void Ogre::OverlayElement::addBaseParameters ( void   )  [protected, virtual, inherited]

Internal method for setting up the basic parameter definitions for a subclass.

Remarks:
Because StringInterface holds a dictionary of parameters per class, subclasses need to call this to ask the base class to add it's parameters to their dictionary as well. Can't do this in the constructor because that runs in a non-virtual context.
The subclass must have called it's own createParamDictionary before calling this method.

Reimplemented in Ogre::BorderPanelOverlayElement, Ogre::PanelOverlayElement, and Ogre::TextAreaOverlayElement.

const String& Ogre::OverlayElement::getName ( void   )  const [inherited]

Gets the name of this overlay.

Referenced by _removeChild().

virtual void Ogre::OverlayElement::show ( void   )  [virtual, inherited]

Shows this element if it was hidden.

virtual void Ogre::OverlayElement::hide ( void   )  [virtual, inherited]

Hides this element if it was visible.

bool Ogre::OverlayElement::isVisible ( void   )  const [inherited]

Returns whether or not the element is visible.

bool Ogre::OverlayElement::isEnabled (  )  const [inherited]

virtual void Ogre::OverlayElement::setEnabled ( bool  b  )  [virtual, inherited]

void Ogre::OverlayElement::setDimensions ( Real  width,
Real  height 
) [inherited]

Sets the dimensions of this element in relation to the screen (1.0 = screen width/height).

void Ogre::OverlayElement::setPosition ( Real  left,
Real  top 
) [inherited]

Sets the position of the top-left corner of the element, relative to the screen size (1.0 = screen width / height).

void Ogre::OverlayElement::setWidth ( Real  width  )  [inherited]

Sets the width of this element in relation to the screen (where 1.0 = screen width).

Real Ogre::OverlayElement::getWidth ( void   )  const [inherited]

Gets the width of this element in relation to the screen (where 1.0 = screen width).

void Ogre::OverlayElement::setHeight (