Spinning Topp Logo BlackTopp Studios
inc
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...
 
struct  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  ChildSelectedArguments
 This is the EventArguments class for when a child of a paged container is selected. More...
 
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  DropDownList
 This is a widget that displays one selection from a list that can have it's visibility toggled. More...
 
class  DropDownListFactory
 This is the factory implementation for DropDownList widgets. More...
 
class  EditBox
 Widget for handling the input and manipulation of text. More...
 
class  EditBoxFactory
 This is the factory implementation for EditBox widgets. 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  GridContainerFactory
 This is the factory implementation for GridContainer widgets. More...
 
struct  GridRect
 Simple rect used to represent a complete transform on a grid. More...
 
struct  GridVector2
 Simple class used to represent positions or sizes on a grid. More...
 
struct  GroupOrderEntry
 This is a small convenience class used to store a RenderLayerGroup ID and a ZOrder on that RenderLayerGroup. 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
 This is a renderer class specifically designed to draw lines. More...
 
class  ListBox
 This is a widget for displaying a list of captions in a box. More...
 
class  ListBoxFactory
 This is the factory implementation for ListBox widgets. 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  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  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  MultiImageData
 This is an image layer that supports rendering of multiple images within it's space. More...
 
class  MultiImageLayer
 This is an image layer that supports rendering of multiple images within it's space. 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...
 
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...
 
class  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...
 
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  SingleImageLayer
 This is an image layer that supports rendering only a single image/sprite. 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  SpinnerFactory
 This is the factory implementation for Spinner widgets. More...
 
class  SpinnerValueChangedArguments
 This is the EventArguments class for when the spinvalue of a Spinner is updated. More...
 
class  Sprite
 Basic class used to describe a portion of a texture to be applied to a Quad. More...
 
class  StackButton
 This is a button with additional data used to track the binding to a StackedContainer which can be serialized. More...
 
class  StackButtonFactory
 This is the factory implementation for StackButton widgets. 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  TabSetFactory
 This is the factory implementation for TabSet widgets. 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
 This is a collection of smaller textures packed into a larger texture, intended to increase UI performance. More...
 
class  TextureAtlasHandler
 This handles the creation, storage and overall handling of Texture Atlases. More...
 
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...
 
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< CharacterTraitsCharacterTraitsPtr
 Convenience typedef for counted pointers to CharacterTraits.
 
typedef CountedPtr< ChildSelectedArgumentsChildSelectedArgumentsPtr
 Convenience typedef for passing around ChildSelectedArguments.
 
typedef std::vector< GroupOrderEntryGroupOrderEntryVector
 Convenience container type for GroupOrderEntry storage.
 
typedef CountedPtr< ScrollbarValueChangedArgumentsScrollbarValueChangedArgumentsPtr
 Convenience typedef for passing around ScrollbarValueChangedArguments.
 
typedef CountedPtr< SpinnerValueChangedArgumentsSpinnerValueChangedArgumentsPtr
 Convenience typedef for passing around SpinnerValueChangedArguments.
 
typedef CountedPtr< WidgetEventArgumentsWidgetEventArgumentsPtr
 Convenience typedef for passing around WidgetEventArguments.
 

Enumerations

enum  AspectRatioLock { ARL_Ratio_Unlocked = 0, ARL_Ratio_Y_Axis = 1, ARL_Ratio_Locked_Expanding = 2, ARL_Ratio_Locked_Shrinking = 3 }
 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_Anchor_Prev_Offset = 1, PF_Anchor_ParentSize = 2, PF_Anchor_SelfSize = 4,
  PF_Anchor_Top = 8, PF_Anchor_Bottom = 16, PF_Anchor_Left = 32, PF_Anchor_Right = 64,
  PF_Anchor_TopLeft = (PF_Anchor_Top | PF_Anchor_Left), PF_Anchor_TopRight = (PF_Anchor_Top | PF_Anchor_Right), PF_Anchor_BottomLeft = (PF_Anchor_Bottom | PF_Anchor_Left), PF_Anchor_BottomRight = (PF_Anchor_Bottom | PF_Anchor_Right),
  PF_Anchor_VerticalCenter = (PF_Anchor_Top | PF_Anchor_Bottom), PF_Anchor_HorizontalCenter = (PF_Anchor_Left | PF_Anchor_Right), PF_Anchor_Center = (PF_Anchor_TopLeft | PF_Anchor_BottomRight)
}
 Used by UI container classes to determine their movement behavior when the container is resized. More...
 
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  RenderLayerType {
  RLT_Line = 1, RLT_MultiImage = 2, RLT_MultiLineText = 3, RLT_SingleImage = 4,
  RLT_SingleLineText = 5
}
 This enum describes the type of RenderLayer this is for use in casting. 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_Match_Other_Axis_Unified = 2, SR_Fill_Available = 4,
  SR_Size_For_Text = 8, SR_Fixed_Size = 16
}
 Used by UI container classes to determine their resize behavior on a given axis when the container is resized. More...
 
enum  SpinnerStyle { Spn_Separate_Horizontal, Spn_Separate_Vertical, 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_Y_Axis 

The X axis is limited by the change to the Y axis. The Y axis 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 51 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 61 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 54 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 72 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 83 of file uienumerations.h.

Used by UI container classes to determine their movement behavior when the container is resized.

These flags are not used if the container object is simply repositioned. Only when a new position is needed after the container is resized. If rules for one axis isn't covered, the Unified position is used.

If PF_Anchor_Prev_Offset, PF_Anchor_ParentSize, or PF_Anchor_SelfSize are not specified in the positioning bitfield for a quad, an offset of 0 will be used on the specified edge.

Enumerator
PF_Unified_Pos 

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

PF_Anchor_Prev_Offset 

Uses the offset of the old transform to determine the offset for the new transform, preserving absolute distance between updates.

PF_Anchor_ParentSize 

Uses the parents updated size of as the offset for the new transform, and applies the Unified Dim of the appropriate axis to it.

PF_Anchor_SelfSize 

Uses the its own updated size as the offset for the new transform, and applies the Unified Dim of the appropriate axis to it.

PF_Anchor_Top 

Anchors to the top side of the quad.

PF_Anchor_Bottom 

Anchors to the bottom side of the quad.

PF_Anchor_Left 

Anchors to the left side of the quad.

PF_Anchor_Right 

Anchors to the right side of the quad.

PF_Anchor_TopLeft 

Anchors to the top and left sides of the quad.

PF_Anchor_TopRight 

Anchors to the top and right sides of the quad.

PF_Anchor_BottomLeft 

Anchors to the bottom and left sides of the quad.

PF_Anchor_BottomRight 

Anchors to the bottom and right sides of the quad.

PF_Anchor_VerticalCenter 

Centers along the Y axis of the quad.

PF_Anchor_HorizontalCenter 

Centers along the X axis of the quad.

PF_Anchor_Center 

Centers within the quad.

Definition at line 103 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.

This enum describes the type of RenderLayer this is for use in casting.

Enumerator
RLT_Line 

Value representing a LineLayer.

RLT_MultiImage 

Value representing a MultiImageLayer.

RLT_MultiLineText 

Value representing a MultiLineTextLayer.

RLT_SingleImage 

Value representing a SingleImageLayer.

RLT_SingleLineText 

Value representing a SingleLineTextLayer.

Definition at line 136 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. This is the default for most QuadRenderables.

SR_Match_Other_Axis 

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

SR_Match_Other_Axis_Unified 

Blended Mode. This will do the same as "SR_Match_Other_Axis" and will also apply Unified Dim of the calculating axis to the result.

SR_Fill_Available 

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

SR_Size_For_Text 

Sizes the container so all text in layers will be visible. Only valid for Vertical sizing(exception will be thrown).

SR_Fixed_Size 

No resizing of any kind will take place.

Definition at line 158 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.