MezzanineEngine 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Enumerations
Mezzanine::UI Namespace Reference

This namespace is for all the classes belonging to the Graphical User Interface Subsystem. More...

Classes

class  Action
 This class represents an action to be taken. Can have multiple inputs bound to it. More...
 
class  ActionEventArguments
 This is the base class for action specific event arguments. More...
 
class  ActionHandler
 This class is the core class responsible for the management of actions. More...
 
class  AtlasAndPosition
 This class stores how the calls to Render are to be done. More...
 
class  BruteStrategy
 This strategy uses a brute force reverse search for the hovered quad. More...
 
class  Button
 This class is a helper class, specifically for use as a button. More...
 
class  ButtonFactory
 This is the factory implementation for Button widgets. More...
 
class  Character
 This class creates and encapsultes a character that can be used in text renders. More...
 
class  CharacterTraits
 This class stores common data for determining the look of a Character. More...
 
class  CheckBox
 This is a simple widget for storing a bool value. More...
 
class  CheckBoxFactory
 This is the factory implementation for CheckBox widgets. More...
 
class  ChildFocusEventArguments
 
class  DefaultColourTag
 This class implements a character colour changing tag. More...
 
class  DefaultFontTag
 This class implements a character font changing tag. More...
 
class  DefaultMarkupParser
 This class implements the default set of tags used by the UI markup system. More...
 
class  DefaultSpriteTag
 This class implements a sprite inserting tag. More...
 
class  DefaultUIManagerFactory
 A factory responsible for the creation and destruction of the default uimanager. More...
 
class  EditBox
 Widget for handling the input and manipulation of text. More...
 
class  FontData
 This class represents a collection of Glyphs in a common visual style. More...
 
class  GenericWidgetFactory
 This is the factory implementation for generic widgets. More...
 
class  Glyph
 Class used to describe a single glyph or character available for text operations. More...
 
class  GridContainer
 This is a container class for placing child objects on a 2 dimensional grid. More...
 
class  HorizontalContainer
 A layout container that aligns it's children along a common X axis. More...
 
class  HorizontalContainerFactory
 This is the factory implementation for HorizontalContainer widgets. More...
 
class  HorizontalLayoutStrategy
 This is a specialization of a layout strategy where a group of quads are sized and placed in a linear sequence along the X axis. More...
 
class  HorizontalScrollbar
 This is a scrollbar class aligned on the X axis. More...
 
class  HorizontalScrollbarFactory
 This is the factory implementation for HorizontalScrollbar widgets. More...
 
class  HotKeyHandler
 This class is responsible for the registration and handling of hotkeys in the UI system. More...
 
class  ImageLayer
 This layer is for placing images and basic colours in it's parents' quad space. More...
 
class  InsertTagToken
 This struct represents a markup tag segment from the source string. More...
 
struct  KerningInfo
 Basic class used to describe Kerning for a given Glyph. More...
 
class  LayoutContainer
 This is the base class for container objects that automatically position it's children. More...
 
class  LayoutStrategy
 This is a base class for the algorithms used by QuadRenderables to determine how they should update their dimensions. More...
 
class  LeftToRightTextLine
 This is a TextLine specialization class for text read from the left to the right. More...
 
class  LinearContainer
 This is a container class for placing child objects in succession on a single axis. More...
 
class  LineList
 This is an object comprised of a series of lines. More...
 
class  LineListRenderer
 
class  ListBox
 This is a widget for displaying a list of captions in a box. More...
 
struct  ListItemParameters
 This is a struct for the storage of parameters to be set on created ListBox list items. More...
 
class  MarkupParser
 This is a base class for the parsing of markup texts contained in text layers. More...
 
class  MarkupTag
 This is a base class for tags that implement the functionality of a markup language. More...
 
class  MenuButton
 This is a button with additional data used to track the binding to a MenuEntry which can be serialized. More...
 
class  MenuButtonFactory
 This is the factory implementation for MenuButton widgets. More...
 
class  MenuEntry
 This class is an entry for a single window/widget in a menu. More...
 
class  MenuEntryFactory
 This is the factory implementation for MenuEntry widgets. More...
 
class  MenuStack
 This is a class designed to help MenuEntrys keep track of the Menu tree they belong to. More...
 
class  MouseHoverCheck
 Simple functor for finding which renderable the mouse is hovered over. More...
 
class  MouseHoverStrategy
 This is the base class for a method of finding which quad the mouse is hovered over. More...
 
class  MultiLineTextLayer
 This is a render layer specializing in multi-line text. More...
 
class  NineBoxCheck
 Simple functor for finding which renderable the mouse is hovered over. More...
 
class  NineBoxStrategy
 This strategy partitions the screen into 9 area's that track which Quads are in them, allowing a smaller list of quads to be checked. More...
 
struct  OgreVertex
 Simple class that facilitates conversions when inserting vertex's into the video buffer. More...
 
class  PagedContainer
 This is the base class for containers that have a render area and work area of different sizes. More...
 
class  PageProvider
 This is the base class for interpretting widget values to page positions. More...
 
class  PartitionData
 This is a helper class for storing metadata for partitions. More...
 
class  PositioningInfo
 This is a helper class designed to describe the behaviors of a quad when it needs to be repositioned. More...
 
class  QuadRenderable
 This represents a nestable quad for an object in a GUI layout. More...
 
class  QuadRenderer
 
class  RadioButton
 This is a simple widget where only one of it's selections can be selected at a time. More...
 
class  RadioButtonFactory
 This is the factory implementation for RadioButton widgets. More...
 
class  RadioButtonGroup
 This is a class designed to facilitate operations across an entire group of RadioButtons. More...
 
class  RangeTagToken
 This struct represents a markup tag segment from the source string. More...
 
class  Rect
 This class represents a box shaped area on the screen. More...
 
class  Renderable
 Basic class for all structures that get inserted into the rendering hierarchy. More...
 
class  RenderLayer
 This is the base class for the types of layers that can be added to a renderable. More...
 
struct  RenderLayerGroup
 This class stores a group of render layers that can be set to be rendered. More...
 
class  RightToLeftTextLine
 This is a TextLine specialization class for text read from the right to the left. More...
 
class  Screen
 This class is a helper class for creating UI's. It is responsible for storing and keeping track of all the elements of a single UI screen. More...
 
struct  ScreenInternalData
 Basic struct holding some of the internal bits of this class that could not be placed on the class directly. More...
 
class  ScreenRenderData
 This class stores all vertices pertaining to a layer sorted by their priority for rendering. More...
 
class  Scrollbar
 This is the scrollbar base class. More...
 
class  ScrollbarValueChangedArguments
 This is the EventArguments class for when the scrollvalue of a scrollbar is updated. More...
 
class  SimpleRenderer
 A simple class providing basic methods to generate vertices with. More...
 
class  SingleLineTextLayer
 This is a render layer specializing in single-line text. More...
 
class  SizingInfo
 This is a helper class designed to describe the behaviors of a quad when it needs to be resized. More...
 
class  Spinner
 This is a simple widget for a numeric variable in a box. More...
 
class  Sprite
 Basic class used to describe a portion of a texture to be applied to a Quad. More...
 
class  StackedContainer
 This is the base class for containers that stack their children one on top of the other. More...
 
class  TabSet
 This is a widget that stores sets of renderables but only displays one at a time. More...
 
class  TagToken
 This struct represents a markup tag segment from the source string. More...
 
class  TextCursor
 Class for encapsulating the functionality of the text cursor/carat navigation in text layers. More...
 
class  TextLayer
 This is a base class for render layers that render text. More...
 
class  TextLine
 This represents a single line of text to be rendered by a TextLayer. More...
 
class  TextToken
 This class represents a normal text segment from the source string. More...
 
class  TextureAtlas
 
class  TextureAtlasHandler
 This handles the creation, storage and overall handling of Texture Atlases. More...
 
struct  TextureAtlasInternalData
 
class  TokenString
 This is a helper class that facilitates operations with collections of tokens generated from Markup Parsers. More...
 
class  UIManager
 This class is responsible for any and all user interactions with the User interface/HUD. More...
 
class  UnifiedDim
 This class represents both the relative and absolute values that can be expressed for the values on one dimension for a UI renderable. More...
 
class  UnifiedRect
 This class represents a 2D rect which can express the size and position of a renderable on screen. More...
 
class  UnifiedVec2
 This class represents a point in 2D space using UnifiedDim's. More...
 
struct  Vertex
 Basic class describing a vertex in the UI to be rendered. More...
 
class  VertexCollectFunctor
 Simple functor for appending all vertices in the renderable tree to a vector. More...
 
struct  VertexData
 Basic class describing a vertex in the UI to be rendered. More...
 
class  VerticalContainer
 A layout container that aligns it's children along a common Y axis. More...
 
class  VerticalContainerFactory
 This is the factory implementation for VerticalContainer widgets. More...
 
class  VerticalLayoutStrategy
 This is a specialization of a layout strategy where a group of quads are sized and placed in a linear sequence along the Y axis. More...
 
class  VerticalScrollbar
 This is a scrollbar class aligned on the Y axis. More...
 
class  VerticalScrollbarFactory
 This is the factory implementation for VerticalScrollbar widgets. More...
 
class  Widget
 This is the base class for all widgets. More...
 
class  WidgetEventArguments
 This is the base class for widget specific event arguments. More...
 
class  WidgetFactory
 This is a base class for factories that construct the widgets available to the UI subsystem. More...
 
class  WidgetUpdateWorkUnit
 This is a Mezzanine::Threading::iWorkUnit for the updating of widgets in the UI system. More...
 

Typedefs

typedef CountedPtr
< CharacterTraits
CharacterTraitsPtr
 Convenience typedef for counted pointers to CharacterTraits.
 

Enumerations

enum  AspectRatioLock { ARL_Ratio_Unlocked = 0, ARL_Ratio_Locked_Expanding = 1, ARL_Ratio_Locked_Shrinking = 2 }
 Used by sizing behavior classes to determine how resizes that preserve aspect ratio should behave. More...
 
enum  Border { Border_North = 0, Border_South = 1, Border_East = 2, Border_West = 3 }
 Used by various basic renderables for border effects. More...
 
enum  CharacterStatus { CS_Clickable = 1 }
 An enum describing the status and boolean traits a Character can have. More...
 
enum  Gradient { Gradient_NorthSouth = 0, Gradient_WestEast = 1, Gradient_Diagonal_1 = 2, Gradient_Diagonal_2 = 3 }
 Used by various basic renderables for applying a gradient effect to a colour or texture on a quad. More...
 
enum  LinearAlignment { LA_TopLeft, LA_Center, LA_BottomRight }
 Used by various UI classes to determine the alignment of their child objects, such as text in text lines, or quads in a layout container. More...
 
enum  NineBoxPartition {
  NBP_TopLeft = 1, NBP_TopCenter = 2, NBP_TopRight = 4, NBP_RightCenter = 8,
  NBP_Center = 16, NBP_LeftCenter = 32, NBP_BottomLeft = 64, NBP_BottomCenter = 128,
  NBP_BottomRight = 256
}
 Enum describing the different 9-Box partitions of a screen.
 
enum  OrderingPriority { OP_Horizontal_Vertical = 1, OP_Vertical_Horizontal = 2 }
 Used by container widgets to determine which axis is considered primary for children/pages.
 
enum  PositioningFlags {
  PF_Unified_Pos = 0, PF_Top = 1, PF_Bottom = 2, PF_Left = 4,
  PF_Right = 8, PF_TopLeft = (PF_Top | PF_Left), PF_TopRight = (PF_Top | PF_Right), PF_BottomLeft = (PF_Bottom | PF_Left),
  PF_BottomRight = (PF_Bottom | PF_Right), PF_VerticalCenter = (PF_Top | PF_Bottom), PF_HorizontalCenter = (PF_Left | PF_Right), PF_Center = (PF_TopLeft | PF_BottomRight)
}
 
enum  QuadCorner { QC_TopLeft = 0, QC_TopRight = 1, QC_BottomRight = 2, QC_BottomLeft = 3 }
 Used by Sprites and Glyphs for tracking their placement on a TextureAtlas. More...
 
enum  RenderPriority { RP_Low, RP_Medium, RP_High }
 Used by UI elements created by layers to determine z-ordering within a layer. More...
 
enum  ScrollbarStyle { SB_NoButtons, SB_Separate, SB_TogetherUpLeft, SB_TogetherDownRight }
 Used by the scrollbar class to determine what styling should be used for the scrollbar. More...
 
enum  SizingRules { SR_Unified_Dims = 0, SR_Match_Other_Axis = 1, SR_Fill_Available = 2, SR_Fixed_Size = 3 }
 Used by UI container classes to determine their resize behavior on a given axis when the container is resized. More...
 
enum  SpinnerStyle { Spn_Separate, Spn_Together_Left, Spn_Together_Right }
 Used by the spinner class to determine what styling should be used for the spinner. More...
 
enum  TextOrdering { TO_Left_To_Right = 1, TO_Right_To_Left = 2 }
 This enum describes the direction of advancing characters or lines along the X axis. More...
 

Detailed Description

This namespace is for all the classes belonging to the Graphical User Interface Subsystem.

Our GUI subsystem is based on a heavily modified/forked version of Gorilla, and as such uses a similiar structure of classes and layout for it's config files(e.g. .mta files).

Enumeration Type Documentation

Used by sizing behavior classes to determine how resizes that preserve aspect ratio should behave.

Enumerator
ARL_Ratio_Unlocked 

The aspect ratio is not locked and both dimensions can resize freely.

ARL_Ratio_Locked_Expanding 

The aspect ratio is locked. When multiple axes are resized the axis with more growth is used to determine the size of the other axis.

ARL_Ratio_Locked_Shrinking 

The aspect ratio is locked. When multiple axes are resized the axis with less growth is used to determine the size of the other axis.

Definition at line 52 of file uienumerations.h.

Used by various basic renderables for border effects.

Internally border information is stored in small arrays, and this facilitates the proper index being called every time.

Definition at line 62 of file uienumerations.h.

An enum describing the status and boolean traits a Character can have.

Enumerator
CS_Clickable 
Todo:
When additional fonts are no longer needed for bold, italics, etc. style font and such, add those basic properties here.

Definition at line 55 of file charactertraits.h.

Used by various basic renderables for applying a gradient effect to a colour or texture on a quad.

Details regarding the colour or texture depends on the individual settings of the renderable the gradient is being applied to. Gradients simply allow one colour on one portion of a quad to fade into another.

Definition at line 74 of file uienumerations.h.

Used by various UI classes to determine the alignment of their child objects, such as text in text lines, or quads in a layout container.

This enum is only ever used to describe one axis at a time. Thus the values do not represent corners, but rather the appropriate side on the axis in question.

Definition at line 86 of file uienumerations.h.

Enumerator
PF_Unified_Pos 

Does not anchor to any side, using only the provided unified dimensions.

PF_Top 

Anchors to the top side of the quad.

PF_Bottom 

Anchors to the bottom side of the quad.

PF_Left 

Anchors to the left side of the quad.

PF_Right 

Anchors to the right side of the quad.

PF_TopLeft 

Anchors to the top and left sides of the quad.

PF_TopRight 

Anchors to the top and right sides of the quad.

PF_BottomLeft 

Anchors to the bottom and left sides of the quad.

PF_BottomRight 

Anchors to the bottom and right sides of the quad.

PF_VerticalCenter 

Centers along the Y axis of the quad.

PF_HorizontalCenter 

Centers along the X axis of the quad.

PF_Center 

Centers within the quad.

Definition at line 105 of file uienumerations.h.

Used by Sprites and Glyphs for tracking their placement on a TextureAtlas.

This helps to ensure the proper indexs are accessed at all times when getting UV information.

Definition at line 127 of file uienumerations.h.

Used by UI elements created by layers to determine z-ordering within a layer.

This essentially means we're adding layers to our layers without the messy and un-intuitive re-coding necessary to actually accomplish that.

Definition at line 139 of file uienumerations.h.

Used by the scrollbar class to determine what styling should be used for the scrollbar.

These values are mostly self explanitory, the scrollbar class documentation has more details.

Definition at line 149 of file uienumerations.h.

Used by UI container classes to determine their resize behavior on a given axis when the container is resized.

Enumerator
SR_Unified_Dims 

Resizing will use the provided unified dimensions with no further alterations.

SR_Match_Other_Axis 

The calculated value for the perpendicular axis will be used as the final value for this axis.

SR_Fill_Available 

Unified dimensions are ignored and will instead us all available space.

SR_Fixed_Size 

No resizing of any kind will take place.

Definition at line 159 of file uienumerations.h.

Used by the spinner class to determine what styling should be used for the spinner.

In the case of the buttons being together, the increment button will be above the decrement button.

Definition at line 170 of file uienumerations.h.

This enum describes the direction of advancing characters or lines along the X axis.

Enumerator
TO_Left_To_Right 

Characters/New Lines originate from the left, and advance to the right.

TO_Right_To_Left 

Characters/New Lines originate from the right, and advance to the left.

Definition at line 179 of file uienumerations.h.