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

This is a render layer specializing in multi-line text. More...

#include <multilinetextlayer.h>

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

Public Member Functions

 MultiLineTextLayer (QuadRenderable *ParentRenderable)
 No-Font constructor. More...
 
 MultiLineTextLayer (const String &FontName, QuadRenderable *ParentRenderable)
 Class constructor. More...
 
 MultiLineTextLayer (const Real &LineHeight, QuadRenderable *ParentRenderable)
 Text-Scaling constructor. More...
 
virtual ~MultiLineTextLayer ()
 Class destructor.
 
virtual String GetDerivedSerializableName () const
 Gets the most derived serializable name of this Renderable. More...
 
virtual
RenderLayer::RenderLayerType 
GetLayerType () const
 Gets the type of render layer this is. 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...
 
- Public Member Functions inherited from Mezzanine::UI::TextLayer
CharacterIterator BeginCharacter ()
 Gets an iterator to the first Character. More...
 
ConstCharacterIterator BeginCharacter () const
 Gets a const iterator to the first Character. More...
 
virtual TextLineIterator BeginTextLine ()
 Gets an iterator to the first TextLine. More...
 
virtual ConstTextLineIterator BeginTextLine () const
 Gets a const iterator to the first TextLine. More...
 
virtual void ClearAllTextLines ()
 Removes all characters from all TextLines belonging to this layer.
 
virtual void ClearHighlights ()
 Clears all the highlights in this layer.
 
virtual TextLineCreateTextLine ()
 Creates a new TextLine. More...
 
virtual void DestroyAllCharacters ()
 Destroy's all characters in this TextLayer.
 
virtual void DestroyAllTextLines ()
 Destroys all TextLines in this layer.
 
CharacterIterator EndCharacter ()
 Gets an iterator to one passed the last Character. More...
 
ConstCharacterIterator EndCharacter () const
 Gets an iterator to one passed the last Character. More...
 
virtual TextLineIterator EndTextLine ()
 Gets an iterator to one passed the last TextLine. More...
 
virtual ConstTextLineIterator EndTextLine () const
 Gets a const iterator to one passed the last TextLine. More...
 
virtual const ColourValueGetActiveHighlightBackgroundColour () const
 Gets the colour of the highlight when the quad is being focused. More...
 
virtual Real GetAutoTextScalar () const
 Gets the relative scalar being used to automatically scale text generated by this layer. More...
 
virtual TextLayer::ScalingMode GetAutoTextScalingMode () const
 Gets the automatic scaling mode being used by this textlayer. More...
 
virtual CharacterGetCharacterAtIndex (const Integer Index) const
 Gets a Character by index. More...
 
virtual CharacterGetCharacterAtOffset (const Vector2 &Offset) const
 Gets a Character by offset position. More...
 
virtual CharacterIterator GetCharacterIteratorAtIndex (const Integer Index)
 Gets an iterator to the character at the specified index. More...
 
virtual ConstCharacterIterator GetCharacterIteratorAtIndex (const Integer Index) const
 Gets a const iterator to the character at the specified index. More...
 
virtual TextCursorGetCursor () const
 Gets the TextCursor in use by this layer. More...
 
virtual bool GetCursorEnabled () const
 Gets whether or not the Text Cursor is enabled. More...
 
virtual FontDataGetDefaultFont ()
 Gets the default font in use by this layer. More...
 
virtual Real GetDesiredLineHeight () const
 Gets the height in pixels this layer is configured to render it's text. More...
 
virtual Integer GetHighlightEnd () const
 Gets the index of this last character that is highlighted in this layer. More...
 
virtual Integer GetHighlightStart () const
 Gets the index of the first character that is highlighted in this layer. More...
 
virtual const ColourValueGetInactiveHighlightBackgroundColour () const
 Gets the colour of the highlight when the quad is being focused. More...
 
virtual CharIndexPair GetIndexAtOffset (const Vector2 &Offset)
 Gets the index of the character at the specified offset position. More...
 
virtual const Vector2GetManualTextScale () const
 Gets the scaling currently being applied to the rendered text. More...
 
virtual MarkupParserGetMarkupParser () const
 Gets the MarkupParser being used by this TextLayer. More...
 
virtual Whole GetNumCharacters () const
 Gets the number of characters being rendered by this TextLayer. More...
 
virtual UInt32 GetNumTextLines () const
 Gets the number of TextLines this layer contains. More...
 
virtual CharOffsetPair GetOffsetAtIndex (const Integer Index)
 Gets the offset position of the character at the provided index. More...
 
virtual String GetText () const
 Gets the text displayed within this layer. More...
 
virtual const ColourValueGetTextColour () const
 Gets the default colour of the tect being rendered by this layer. More...
 
virtual TextLineGetTextLineAtOffset (const Real &Offset)
 Gets the TextLine at the specified offset position. More...
 
virtual UI::LinearAlignment GetTextlineVerticalAlignment () const
 Gets the current set alignment for positioning textlines in this layer. More...
 
virtual UI::TextOrdering GetTextOrder () const
 Gets the currently set direction of advancement for characters on the horizontal axis created by this layer. More...
 
virtual Real GetTotalHeight () const
 Gets the combined height of all the text lines in this layer. More...
 
virtual void Highlight ()
 Highlights all characters in this layer.
 
virtual void Highlight (const Integer Index)
 Highlights the character at the specified index. More...
 
virtual void Highlight (const Integer StartIndex, const Integer EndIndex)
 Highlights all characters in a provided range. More...
 
virtual void InsertCharacterAtIndex (const Integer Index, const UInt32 GlyphID)
 Creates a character from a Glyph ID and inserts it into the layer at the specified index. More...
 
virtual void InsertCharactersAtIndex (const Integer Index, const Char8 *Characters, const UInt32 BufSize)
 Creates a series of characters from a UTF-8 encoded string to be inserted into this layer. More...
 
virtual void InsertCharactersAtIndex (const Integer Index, const UInt32 *Characters, const UInt32 BufSize)
 Creates a series of characters from a UTF-32 encoded string to be inserted into this layer. More...
 
virtual void PopulateTextLines ()
 Populates text lines in this layer with parsed characters.
 
virtual void ProtoDeSerialize (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite this object with it. More...
 
virtual void ProtoDeSerializeCursor (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the TextCursor of this object with it. More...
 
virtual void ProtoDeSerializeText (const XML::Node &SelfRoot)
 Take the data stored in an XML Node and overwrite the Text 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 ProtoSerializeCursor (XML::Node &SelfRoot) const
 Convert the TextCursor of this class to an XML::Node ready for seriailization. More...
 
virtual void ProtoSerializeText (XML::Node &SelfRoot) const
 Convert the Text of this class to an XML::Node ready for serialization. More...
 
virtual void RemoveCharacterAtIndex (const Integer Index)
 Removes a character from the layer at the specified index. More...
 
virtual void RemoveCharacterRange (const Integer First, const Integer Last)
 Removes a range of characters from the text in this layer. More...
 
virtual void RemoveCharactersAtIndex (const Integer Index, const UInt32 Length)
 Removes a length of characters from this layer at the specified index. More...
 
virtual void SetActiveHighlightBackgroundColour (const ColourValue &Colour)
 Sets the colour of the highlight when the quad is being focused. More...
 
virtual void SetAutoTextScale (const TextLayer::ScalingMode Mode, const Real Scalar)
 Sets the mode and scaler of auto-scaling applied to the text generated by this textlayer. More...
 
virtual void SetCursorEnabled (bool Enable)
 Enables (or disables) the cursor for use in this layer. More...
 
virtual void SetDefaultFont (FontData *NewFont)
 Sets the default font to be used with this layer. More...
 
virtual void SetDefaultFont (const String &FontName)
 Sets the default font to be used with this layer. More...
 
virtual void SetDefaultFont (const String &FontName, const String &Atlas)
 Sets the default font to be used with this layer. More...
 
virtual void SetInactiveHighlightBackgroundColour (const ColourValue &Colour)
 Sets the colour of the highlight when the quad is not focused. More...
 
virtual void SetManualTextScale (const Vector2 &Scale)
 Sets the scaling to be applied to the text being rendered. More...
 
virtual bool SetMarkupParser (MarkupParser *Parser)
 Sets the MarkupParser to be used by this TextLayer. More...
 
virtual bool SetMarkupParser (const String &ParserName)
 Sets the MarkupParser to be used by this TextLayer via it's registered name. More...
 
virtual void SetScale (const Vector2 &Scaling)
 Sets the scaling to be applied to this render layer. More...
 
virtual void SetText (const String &Text)
 Sets the text displayed within this layer. More...
 
virtual void SetTextColour (const ColourValue &Colour)
 Sets the default colour of the text being rendered by this layer. More...
 
virtual void SetTextlineVerticalAlignment (const UI::LinearAlignment Align)
 Sets the alignment used to determine the start position of the textlines in this layer. More...
 
virtual void SetTextOrder (const UI::TextOrdering Order)
 Sets the ordering for characters in this layer. More...
 
- Public Member Functions inherited from Mezzanine::UI::RenderLayer
virtual ~RenderLayer ()
 Class destructor.
 
virtual void _MarkDirty ()
 Marks this renderable as well as all parent objects as dirty. More...
 
virtual void _UpdateIndex (const Whole Index)
 Notifies this RenderLayer that it's index in the parent QuadRenderable has been updated. More...
 
virtual Rect GetAreaRect () const
 Gets a rect containing the actual position and size of this layer. More...
 
virtual Whole GetIndex () const
 Gets the index position of this RenderLayer in it's parent. More...
 
virtual QuadRenderableGetParent () const
 Gets the parent of this render layer. More...
 
virtual Real GetRotationDegrees () const
 Gets the current rotation applied to this renderable in degrees. More...
 
virtual Real GetRotationRadians () const
 Gets the current rotation applied to this renderable in radians. More...
 
virtual Vector2 GetScale () const
 Gets the scaling currently applied to this render layer. More...
 
virtual ScreenGetScreen () const
 Gets the screen the parent renderable is being rendered on. More...
 
virtual void NotifyActive ()
 Notifies this RenderLayer that the group this layer belongs to has become the active group. More...
 
virtual void NotifyInactive ()
 Notifies this RenderLayer that the group this layer belongs to is no longer the active group. More...
 
virtual void SetRotationDegrees (const Real &Degrees)
 Sets the rotation to be applied to this renderable. More...
 
virtual void SetRotationRadians (const Real &Radians)
 Sets the rotation to be applied to this renderable. 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::TextLayer
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::RenderLayer
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::QuadRenderer
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::SimpleRenderer
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 CharIndexPair GetIndexAtOffsetImpl (const Vector2 &Offset)
 
virtual CharOffsetPair GetOffsetAtIndexImpl (const Integer Index)
 Gets the offset position of the character at the provided index. More...
 
virtual TextLineGetOrCreateTextLine (const UInt32 &Index)
 Gets the TextLine at the requested index, or creates one if it doesn't exist. More...
 
virtual void PopulateTextLinesImpl ()
 Clears and then places characters belonging to this layer in the appropriate text lines. More...
 
- Protected Member Functions inherited from Mezzanine::UI::TextLayer
 TextLayer (QuadRenderable *ParentRenderable)
 No-Font constructor. More...
 
 TextLayer (const String &FontName, QuadRenderable *ParentRenderable)
 Class constructor. More...
 
 TextLayer (const Real &LineHeight, QuadRenderable *ParentRenderable)
 Text-Scaling constructor. More...
 
virtual ~TextLayer ()
 Class destructor.
 
virtual void RecalculateOffsets ()
 Recalculates the offset for every text line in this layer. More...
 
virtual void RedrawImpl (bool Force)
 Provides the class specific implementation for regenerating vertices for this renderable. More...
 
- Protected Member Functions inherited from Mezzanine::UI::RenderLayer
 RenderLayer (QuadRenderable *ParentRenderable)
 Class constructor. More...
 
virtual void RotationTransform (Vector2 &Point, const Vector2 &RotationCenter)
 Applies rotation to a point in 2D space. More...
 
virtual void RotationTransform (Vector2 &TopLeft, Vector2 &TopRight, Vector2 &BottomLeft, Vector2 &BottomRight)
 Applies rotation to a quad in 2D space. More...
 
- Protected Member Functions inherited from Mezzanine::UI::QuadRenderer
 QuadRenderer ()
 Class constructor.
 
virtual ~QuadRenderer ()
 Class destructor.
 
virtual void PushQuad (Vector2 *Positions, Vector2 *UVs, ColourValue *Colours, const String &Atlas)
 Pushes vertex information for a quad to a vector. Equivalent to calling "PushTriangle" twice.
 
virtual void PushQuad2 (Vector2 *Positions, Vector2 *UVs, const ColourValue &Colour, const String &Atlas)
 Pushes vertex information for a quad to a vector. Equivalent to calling "PushTriangle" twice.
 
- Protected Member Functions inherited from Mezzanine::UI::SimpleRenderer
 SimpleRenderer ()
 Class constructor.
 
virtual ~SimpleRenderer ()
 Class destructor.
 
virtual void PushTriangle (const Vector2 &A, const Vector2 &B, const Vector2 &C, const Vector2 &UV, const ColourValue &Colour, const String &Atlas)
 Pushes vertex information for a triangle to a vector. Equivalent to calling "PushVertex" three times. More...
 
virtual void PushVertex (const Real &X, const Real &Y, const Vector2 &UV, const ColourValue &Colour, const String &Atlas)
 Collects all the relevant information for a single vertex and pushes it to a vector. More...
 

Additional Inherited Members

- Public Types inherited from Mezzanine::UI::TextLayer
typedef std::list< Character * > CharacterContainer
 Basic container type for the storage of Character instances by this class.
 
typedef
CharacterContainer::iterator 
CharacterIterator
 Iterator type for Character instances stored by this class.
 
typedef std::pair
< CharacterIterator,
CharacterIterator
CharacterIteratorPair
 An std::pair type storing two character iterators, usually used to express a range.
 
typedef std::pair< Boolean,
Integer
CharIndexPair
 An std::pair type used as a return for index-offset conversions.
 
typedef std::pair< Boolean,
Vector2
CharOffsetPair
 An std::pair type used as a return for index-offset conversions.
 
typedef
CharacterContainer::const_iterator 
ConstCharacterIterator
 Const Iterator type for Character instances stored by this class.
 
typedef
CharacterContainer::const_reverse_iterator 
ConstReverseCharacterIterator
 Const Reverse Iterator type for Character instances stored by this class.
 
typedef
TextLineContainer::const_iterator 
ConstTextLineIterator
 Const Iterator type for TextLine instances stored by this class.
 
typedef
CharacterContainer::reverse_iterator 
ReverseCharacterIterator
 Reverse Iterator type for Character instances stored by this class.
 
enum  ScalingMode { SM_NoAutoScaling = 0, SM_ScreenRelative = 1, SM_ParentRelative = 2, SM_LayerRelative = 3 }
 
typedef std::vector< TextLine * > TextLineContainer
 Basic container type for the storate of TextLine instances by this class.
 
typedef TextLineContainer::iterator TextLineIterator
 Iterator type for TextLine instances stored by this class.
 
- Protected Attributes inherited from Mezzanine::UI::TextLayer
ColourValue ActiveHLColour
 The colour of the highlight when this layer belongs to a focused widget. More...
 
Real AutoCharScaling
 The auto-scaling height the text is to be in relative units. More...
 
ScalingMode AutoCharScalingMode
 The auto-scaling mode that is to be used on text generated by this textlayer. More...
 
CharacterContainer Characters
 Container with all this layers Characters. More...
 
TextCursorCursor
 The cursor to be used for insert and manipulation operations. More...
 
CharacterTraits DefaultCharTraits
 Default set of traits all characters generated inside this layer are to have. More...
 
Integer HighlightEnd
 The index of the character at the end of the highlight sequence. More...
 
Integer HighlightStart
 The index of the character at the start of the highlight sequence. More...
 
UI::TextOrdering HorizontalOrder
 The order text will have in TextLines. More...
 
ColourValue InactiveHLColour
 The colour of the highlight when this layer belongs to a widget not being focused. More...
 
Vector2 ManualCharScaling
 The scaling to apply to all characters in this layer. More...
 
MarkupParserMUParser
 The parser to use when converting raw strings to renderable characters. More...
 
Boolean ScalingChanged
 Flag indicating the scaling for the layer has been altered. More...
 
TextLineContainer TextLines
 Container with all this layers TextLines. More...
 
TokenStringTextTokens
 The actual text parsed into tokens used for generating characters. More...
 
UI::LinearAlignment VerticalAlign
 The alignment TextLines will have. More...
 

Detailed Description

This is a render layer specializing in multi-line text.

Definition at line 56 of file multilinetextlayer.h.

Constructor & Destructor Documentation

Mezzanine::UI::MultiLineTextLayer::MultiLineTextLayer ( QuadRenderable ParentRenderable)

No-Font constructor.

Parameters
ParentRenderableThe renderable that created this layer.

Definition at line 55 of file multilinetextlayer.cpp.

Mezzanine::UI::MultiLineTextLayer::MultiLineTextLayer ( const String FontName,
QuadRenderable ParentRenderable 
)

Class constructor.

Parameters
FontNameThe name of the font to use for this layer.
ParentRenderableThe renderable that created this layer.

Definition at line 59 of file multilinetextlayer.cpp.

Mezzanine::UI::MultiLineTextLayer::MultiLineTextLayer ( const Real LineHeight,
QuadRenderable ParentRenderable 
)

Text-Scaling constructor.

Note
This constructor defaults to Screen Relative text, but this can be altered after construction.
Parameters
LineHeightThe relative scalar to be used when determining the size of characters generated by this text layer.
ParentRenderableThe renderable that created this layer.

Definition at line 63 of file multilinetextlayer.cpp.

Member Function Documentation

String Mezzanine::UI::MultiLineTextLayer::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::TextLayer.

Definition at line 278 of file multilinetextlayer.cpp.

TextLayer::CharIndexPair Mezzanine::UI::MultiLineTextLayer::GetIndexAtOffsetImpl ( const Vector2 Offset)
protectedvirtual

Implements Mezzanine::UI::TextLayer.

Definition at line 201 of file multilinetextlayer.cpp.

RenderLayer::RenderLayerType Mezzanine::UI::MultiLineTextLayer::GetLayerType ( ) const
virtual

Gets the type of render layer this is.

Returns
Returns a RenderLayerType describing the type of layer this is.

Implements Mezzanine::UI::RenderLayer.

Definition at line 257 of file multilinetextlayer.cpp.

TextLayer::CharOffsetPair Mezzanine::UI::MultiLineTextLayer::GetOffsetAtIndexImpl ( const Integer  Index)
protectedvirtual

Gets the offset position of the character at the provided index.

Parameters
IndexThe index of the character position to retrieve.
Returns
Returns a CharOffsetPair where the first value is a bool which will be false if the index is invalid for any reason, and the second value is the offset position of the character at the specified index if the first value is true.

Implements Mezzanine::UI::TextLayer.

Definition at line 224 of file multilinetextlayer.cpp.

TextLine * Mezzanine::UI::MultiLineTextLayer::GetOrCreateTextLine ( const UInt32 Index)
protectedvirtual

Gets the TextLine at the requested index, or creates one if it doesn't exist.

Definition at line 248 of file multilinetextlayer.cpp.

String Mezzanine::UI::MultiLineTextLayer::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 283 of file multilinetextlayer.cpp.

void Mezzanine::UI::MultiLineTextLayer::PopulateTextLinesImpl ( )
protectedvirtual

Clears and then places characters belonging to this layer in the appropriate text lines.

Implements Mezzanine::UI::TextLayer.

Definition at line 70 of file multilinetextlayer.cpp.

void Mezzanine::UI::MultiLineTextLayer::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::TextLayer.

Definition at line 273 of file multilinetextlayer.cpp.

void Mezzanine::UI::MultiLineTextLayer::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::TextLayer.

Definition at line 268 of file multilinetextlayer.cpp.


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