Spinning Topp Logo BlackTopp Studios
inc
dropdownlist.cpp
1 // © Copyright 2010 - 2016 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 #ifndef _uidropdownlist_cpp
41 #define _uidropdownlist_cpp
42 
43 #include "UI/uimanager.h"
44 #include "UI/dropdownlist.h"
45 #include "UI/listbox.h"
46 #include "UI/checkbox.h"
47 #include "UI/scrollbar.h"
48 #include "UI/screen.h"
49 #include "UI/verticalcontainer.h"
50 #include "UI/singlelinetextlayer.h"
51 #include "UI/renderlayergroup.h"
52 #include "UI/horizontallayoutstrategy.h"
53 
54 #include "stringtool.h"
55 
56 namespace Mezzanine
57 {
58  namespace UI
59  {
60  ///////////////////////////////////////////////////////////////////////////////
61  // DropDownList Static Members
62 
63  const String DropDownList::TypeName = "DropDownList";
64 
65  ///////////////////////////////////////////////////////////////////////////////
66  // DropDownList Methods
67 
69  Widget(Parent)
70  { }
71 
72  DropDownList::DropDownList(const String& RendName, const UI::ScrollbarStyle& Style, Screen* Parent) :
73  Widget(RendName,Parent)
74  { this->ConstructDropDownList(Style); }
75 
76  DropDownList::DropDownList(const String& RendName, const UnifiedRect& RendRect, const UI::ScrollbarStyle& Style, Screen* Parent) :
77  Widget(RendName,RendRect,Parent)
78  { this->ConstructDropDownList(Style); }
79 
80  DropDownList::DropDownList(const XML::Node& XMLNode, Screen* Parent) :
81  Widget(Parent)
82  { this->ProtoDeSerialize(XMLNode); }
83 
85  {
86  this->RemoveChild( this->SelectionDisplay );
88  this->RemoveChild( this->ListToggle );
89  this->ParentScreen->DestroyWidget( this->ListToggle );
90  this->RemoveChild( this->SelectionList );
92  }
93 
95  {
96  this->SelectionDisplay = this->ParentScreen->CreateWidget(this->Name+".Display",UnifiedRect(0,0,1,1,0,0,0,0));
99  this->AddChild(this->SelectionDisplay,1);
100  this->ListToggle = this->ParentScreen->CreateCheckBox(this->Name+".Toggle",UnifiedRect(0,0,1,1,0,0,0,0));
104  this->AddChild(this->ListToggle,2);
105  this->SelectionList = this->ParentScreen->CreateListBox(this->Name+".List",UnifiedRect(0,1,1,5,0,1,0,0),Style);
106  this->AddChild(this->SelectionList,3);
107  this->SelectionList->Hide();
108 
110  this->SelectionDisplay->AddLayerToGroup(DisplayText,5,Widget::WG_Normal);
111  this->SelectionDisplay->AddLayerToGroup(DisplayText,5,Widget::WG_Hovered);
112 
116  }
117 
118  ///////////////////////////////////////////////////////////////////////////////
119  // Utility Methods
120 
122  {
123  return DropDownList::TypeName;
124  }
125 
126  void DropDownList::UpdateDimensions(const Rect& OldSelfRect, const Rect& NewSelfRect)
127  {
128  // Update the personal data first
129  this->ActDims = NewSelfRect;
130 
131  // Update the children
132  this->LayoutStrat->Layout(OldSelfRect,NewSelfRect,this->ChildWidgets);
133 
134  // Set the visibility
135  this->SelectionList->SetVisible( this->ListToggle->IsSelected() );
136 
137  // Update our width to the appropriate size
138  this->SelectionList->SetScrollbarWidth( UnifiedDim(this->ListToggle->GetActualSize().X / NewSelfRect.Size.X,0.0) );
139  // Next prepare the new rect for the selection list
140  const Rect OldListRect = this->SelectionList->GetRect();
141  Rect NewListRect;
142  NewListRect.Size = this->LayoutStrat->HandleChildSizing(OldSelfRect,NewSelfRect,this->SelectionList);
143  NewListRect.Position = this->LayoutStrat->HandleChildPositioning(OldSelfRect,NewSelfRect,NewListRect.Size,this->SelectionList);
144 
145  // Finally update the list
146  this->SelectionList->UpdateDimensions(OldListRect,NewListRect);
147 
148  // We done got icky
149  this->_MarkAllLayersDirty();
150  }
151 
153  {
154  if( NewSelection != NULL ) {
155  RenderLayerGroup* NewSelectionActive = NewSelection->GetActiveGroup();
156  RenderLayerGroup* DisSelectionActive = this->SelectionDisplay->GetActiveGroup();
157  if( NewSelectionActive != NULL && DisSelectionActive != NULL ) {
158  /// @todo This currently assumes the default ZOrder assigned to text layers in list items. If that should change or be more conveniently
159  /// configurable, this should be updated.
160  RenderLayer* UncastedNewText = NewSelectionActive->GetLayerByZOrder(5);
161  RenderLayer* UncastedDisText = DisSelectionActive->GetLayerByZOrder(5);
162  if( ( UncastedNewText != NULL && UncastedNewText->IsTextLayer() ) &&
163  ( UncastedDisText != NULL && UncastedDisText->IsTextLayer() ) )
164  {
165  TextLayer* CastedNewText = static_cast<TextLayer*>( UncastedNewText );
166  TextLayer* CastedDisText = static_cast<TextLayer*>( UncastedDisText );
167  CastedDisText->SetDefaultFont( CastedNewText->GetDefaultFont() );
168  CastedDisText->SetAutoTextScale( CastedNewText->GetAutoTextScalingMode(), CastedNewText->GetAutoTextScalar() );
169  CastedDisText->SetText( CastedNewText->GetText() );
170  }
171  }
172  }
173  }
174 
176  {
177  RenderLayerGroup* DisSelectionActive = this->SelectionDisplay->GetActiveGroup();
178  if( DisSelectionActive != NULL ) {
179  RenderLayer* UncastedDisText = DisSelectionActive->GetLayerByZOrder(5);
180  if( UncastedDisText != NULL && UncastedDisText->IsTextLayer() ) {
181  return static_cast<TextLayer*>( UncastedDisText )->GetText();
182  }else{
183  return "";
184  }
185  }else{
186  return "";
187  }
188  }
189 
190  ///////////////////////////////////////////////////////////////////////////////
191  // Visibility and Priority Methods
192 
194  {
195  if( CanSee ) {
196  if( this->ListToggle->IsSelected() ) {
197  this->Widget::SetVisible(CanSee);
198  }else{
199  this->_OnVisibilityShown();
200  this->SelectionDisplay->SetVisible(CanSee);
201  this->ListToggle->SetVisible(CanSee);
202  }
203  }else{
204  this->Widget::SetVisible(CanSee);
205  }
206  }
207 
209  {
210  if( this->ListToggle->IsSelected() ) {
211  this->Widget::Show();
212  }else{
213  this->_OnVisibilityShown();
214  this->SelectionDisplay->Show();
215  this->ListToggle->Show();
216  }
217  }
218 
220  {
221  this->Widget::Hide();
222  }
223 
224  ///////////////////////////////////////////////////////////////////////////////
225  // DropDownList Properties
226 
227  ///////////////////////////////////////////////////////////////////////////////
228  // DropDownList Configuration
229 
231  { return this->SelectionDisplay; }
232 
234  { return this->ListToggle; }
235 
237  { return this->SelectionList; }
238 
239  ///////////////////////////////////////////////////////////////////////////////
240  // Serialization
241 
243  {
244  this->Widget::ProtoSerializeProperties(SelfRoot);
245  }
246 
248  {
250  }
251 
253  {
254  this->Widget::ProtoDeSerializeProperties(SelfRoot);
255  }
256 
258  {
260 
261  // Assign the SelectionDisplay
262  this->SelectionDisplay = static_cast<Widget*>( this->GetChild(this->Name+".Display") );
263  if( this->SelectionDisplay == NULL ) {
264  MEZZ_EXCEPTION(ExceptionBase::INVALID_STATE_EXCEPTION,"Selection Display not found after DropDownList deserialization.");
265  }
266 
267  // Assign the ListToggle
268  this->ListToggle = static_cast<CheckBox*>( this->GetChild(this->Name+".Toggle") );
269  if( this->ListToggle == NULL ) {
270  MEZZ_EXCEPTION(ExceptionBase::INVALID_STATE_EXCEPTION,"List Toggle not found after DropDownList deserialization.");
271  }
272 
273  // Assign the SelectionList
274  this->SelectionList = static_cast<ListBox*>( this->GetChild(this->Name+".List") );
275  if( this->SelectionList == NULL ) {
276  MEZZ_EXCEPTION(ExceptionBase::INVALID_STATE_EXCEPTION,"Selection List not found after DropDownList deserialization.");
277  }
278 
282  this->SelectionList->Hide();
283  }
284 
286  {
287  return DropDownList::TypeName;
288  }
289 
290  ///////////////////////////////////////////////////////////////////////////////
291  // Internal Event Methods
292 
293  ///////////////////////////////////////////////////////////////////////////////
294  // Internal Methods
295 
297  {
298  WidgetEventArgumentsPtr WidArgs = CountedPtrCast<WidgetEventArguments>(Args);
299  Widget* EventWidget = this->ParentScreen->GetWidget(WidArgs->WidgetName);
300 
301  if( EventWidget == this->ListToggle ) {
302  if( WidArgs->EventName == CheckBox::EventSelected ) {
303  this->SelectionList->Show();
304  }else if( WidArgs->EventName == CheckBox::EventDeselected ) {
305  this->SelectionList->Hide();
306  }
307  }
308 
309  if( EventWidget == this->SelectionList->GetListContainer() ) {
310  if( WidArgs->EventName == PagedContainer::EventChildSelected ) {
311  ChildSelectedArgumentsPtr SelectedArgs = CountedPtrCast<ChildSelectedArguments>(WidArgs);
312  if( SelectedArgs->Selected ) {
313  Widget* NewSelected = this->ParentScreen->GetWidget( SelectedArgs->ChildName );
314  if( NewSelected != NULL ) {
315  this->UpdateCurrentSelection( NewSelected );
316  this->ListToggle->ManualSelect(false);
317  }
318  }
319  }
320  }
321  }
322 
323  ///////////////////////////////////////////////////////////////////////////////
324  // DropDownListFactory Methods
325 
327  { return DropDownList::TypeName; }
328 
330  {
331  DropDownList* Ret = new DropDownList(RendName,Style,Parent);
333  return Ret;
334  }
335 
336  DropDownList* DropDownListFactory::CreateDropDownList(const String& RendName, const UnifiedRect& RendRect, const UI::ScrollbarStyle& Style, Screen* Parent)
337  {
338  DropDownList* Ret = new DropDownList(RendName,RendRect,Style,Parent);
340  return Ret;
341  }
342 
344  {
345  DropDownList* Ret = new DropDownList(XMLNode,Parent);
347  return Ret;
348  }
349 
351  {
352  DropDownList* Ret = new DropDownList(Parent);
354  return Ret;
355  }
356 
357  Widget* DropDownListFactory::CreateWidget(const String& RendName, const NameValuePairMap& Params, Screen* Parent)
358  {
359  UI::ScrollbarStyle Style = UI::SB_NoButtons;
360 
361  NameValuePairMap::const_iterator ParamIt;
362  ParamIt = Params.find("ScrollbarStyle");
363  if( ParamIt != Params.end() )
364  Style = static_cast<UI::ScrollbarStyle>( StringTools::ConvertToUInt32( (*ParamIt).second ) );
365 
366  return this->CreateDropDownList(RendName,Style,Parent);
367  }
368 
369  Widget* DropDownListFactory::CreateWidget(const String& RendName, const UnifiedRect& RendRect, const NameValuePairMap& Params, Screen* Parent)
370  {
371  UI::ScrollbarStyle Style = UI::SB_NoButtons;
372 
373  NameValuePairMap::const_iterator ParamIt;
374  ParamIt = Params.find("ScrollbarStyle");
375  if( ParamIt != Params.end() )
376  Style = static_cast<UI::ScrollbarStyle>( StringTools::ConvertToUInt32( (*ParamIt).second ) );
377 
378  return this->CreateDropDownList(RendName,RendRect,Style,Parent);
379  }
380 
382  { return this->CreateDropDownList(XMLNode,Parent); }
383 
385  { delete static_cast<DropDownList*>( ToBeDestroyed ); }
386  }//UI
387 }//Mezzanine
388 
389 #endif
This is a render layer specializing in single-line text.
virtual void ProtoSerializeChildQuads(XML::Node &SelfRoot) const
Convert the child quads of this class to an XML::Node ready for serialization.
virtual String GetSelectionText() const
Gets the text being displayed by the current selection.
virtual Rect GetRect() const
Gets this QuadRenderables' Rect.
virtual void Show()
Forces this renderable to be shown.
Definition: widget.cpp:257
virtual const String & GetTypeName() const
Gets the type of widget this is.
UInt32 ConvertToUInt32(const String &ToConvert)
Converts a string into a UInt32.
Definition: stringtool.cpp:456
virtual ~DropDownList()
Class destructor.
bool Boole
Generally acts a single bit, true or false.
Definition: datatypes.h:173
virtual Widget * GetSelectionDisplay() const
Gets the Widget displaying the current selection.
virtual void Show()
Forces this renderable to be shown.
virtual Vector2 HandleChildSizing(const Rect &OldSelfRect, const Rect &NewSelfRect, QuadRenderable *Child)
Handles the sizing of a child that needs it's dimensions updated.
virtual Boole IsSelected()
Gets whether this checkbox is selected or not.
Definition: checkbox.cpp:110
virtual void _MarkAllLayersDirty()
Tells this QuadRenderable that all of it's layers are dirty.
Vector2 Size
Vector2 representing the width and height of the rect.
Definition: rect.h:71
virtual void _OnVisibilityShown()
Self logic to be executed when this widget becomes visible.
Definition: widget.cpp:519
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.
Definition: textlayer.cpp:466
Unified dimensions are ignored and will instead us all available space.
virtual CheckBox * CreateCheckBox(const String &RendName)
Creates a CheckBox.
Definition: screen.cpp:672
#define MEZZ_EXCEPTION(num, desc)
An easy way to throw exceptions with rich information.
Definition: exception.h:3048
virtual void ProtoDeSerializeChildQuads(const XML::Node &SelfRoot)
Take the data stored in an XML Node and overwrite the ChildQuads of this object with it...
virtual void SetHorizontalPositioningRules(const Whole Rules)
Sets the behavior this quad will have when it is positioned automatically on the X axis...
virtual void UpdateDimensions(const Rect &OldSelfRect, const Rect &NewSelfRect)
Updates the dimensions of this QuadRenderable based on the transform of it's parent.
Definition: listbox.cpp:192
A simple reference counting pointer.
Definition: countedptr.h:70
virtual void ProtoSerializeProperties(XML::Node &SelfRoot) const
Convert the properties of this class to an XML::Node ready for serialization.
Definition: widget.cpp:278
EventSubscriberSlot * Subscribe(const String &EventName, EventSubscriber *Sub)
Adds a subscriber to this event.
virtual String GetWidgetTypeName() const
Gets the name of the Widget that is created by this factory.
virtual void SetVisible(Boole CanSee)
Sets the visibility of this renderable.
This class represents a box shaped area on the screen.
Definition: rect.h:55
ScrollbarStyle
Used by the scrollbar class to determine what styling should be used for the scrollbar.
virtual VerticalContainer * GetListContainer() const
Gets the ListItem container within this widget.
Definition: listbox.cpp:287
static const String EventChildSelected
Event name for when a child of this widget gets selected.
virtual Widget * GetChild(const UInt16 Zorder) const
Gets a child by it's ZOrder.
ChildContainer ChildWidgets
This is a container storing all the children that belong to this Quad.
virtual void ProtoSerializeChildQuads(XML::Node &SelfRoot) const
Convert the child quads of this class to an XML::Node ready for serialization.
static const String EventSelected
Event name for when this checkbox is Selected.
Definition: checkbox.h:73
virtual void _NotifyEvent(EventArgumentsPtr Args)
Notifies this subscriber of an event being fired.
static String GetSerializableName()
Get the name of the the XML tag the Renderable class will leave behind as its instances are serialize...
CheckBox * ListToggle
A pointer to the CheckBox that will toggle the visibility of the Selection List.
Definition: dropdownlist.h:70
Rect ActDims
The actual (pixel) position and size of this Quad on the screen it belongs to.
RenderLayer * GetLayerByZOrder(const UInt16 ZOrder) const
Gets a RenderLayer in this group by it's ZOrder.
virtual Real GetAutoTextScalar() const
Gets the relative scalar being used to automatically scale text generated by this layer...
Definition: textlayer.cpp:481
This class represents a 2D rect which can express the size and position of a renderable on screen...
Definition: unifieddim.h:661
virtual DropDownList * CreateDropDownList(const String &RendName, const UI::ScrollbarStyle &Style, Screen *Parent)
Creates a new DropDownList.
Resizing will use the provided unified dimensions with no further alterations. This is the default fo...
virtual void RemoveChild(Widget *ToBeRemoved)
Removes a child Widget from this quadrenderable.
The calculated value for the perpendicular axis will be used as the final value for this axis...
virtual void DestroyWidget(Widget *ToBeDestroyed)
Destroys a widget.
Definition: screen.cpp:585
A light-weight handle for manipulating nodes in DOM tree.
Definition: node.h:89
static const String TypeName
String containing the type name for this class: "DropDownList".
Definition: dropdownlist.h:63
Real X
Coordinate on the X vector.
Definition: vector2.h:67
virtual FontData * GetDefaultFont()
Gets the default font in use by this layer.
Definition: textlayer.cpp:511
This is the base class for all widgets.
Definition: widget.h:126
virtual void SetScrollbarWidth(const UnifiedDim &ScrollWidth)
Sets the Unified width of the child scrollbar in this ListBox.
Definition: listbox.cpp:180
ListBox * SelectionList
A pointer to the ListBox holding all possible selections.
Definition: dropdownlist.h:73
virtual void SetHorizontalSizingRules(const Whole Rules)
Sets the behavior this quad will have on the X axis when it is resized.
virtual void UpdateCurrentSelection(Widget *NewSelection)
Configures the selection display of this DropDownList to match the new selection. ...
virtual Vector2 GetActualSize() const
Gets the pixel size of this widget.
virtual void ProtoSerializeProperties(XML::Node &SelfRoot) const
Convert the properties of this class to an XML::Node ready for serialization.
RenderLayerGroup * GetActiveGroup() const
Gets the current RenderLayerGroup used for rendering.
void AddLayerToGroup(RenderLayer *Layer, const UInt16 LayerZOrder, const UInt16 GroupID)
Adds a RenderLayer to the specified group.
virtual void Layout(const Rect &OldSelfRect, const Rect &NewSelfRect, const ChildContainer &ChildQuads)
Updates the dimensions of a collection of QuadRenderables.
String Name
The unique name of this Renderable.
Definition: renderable.h:81
virtual void Hide()
Forces this renderable to hide.
virtual String GetText() const
Gets the text displayed within this layer.
Definition: textlayer.cpp:434
Thrown when the available information should have worked but failed for unknown reasons.
Definition: exception.h:113
virtual TextLayer::ScalingMode GetAutoTextScalingMode() const
Gets the automatic scaling mode being used by this textlayer.
Definition: textlayer.cpp:476
virtual void AddChild(Widget *Child)
Adds a Widget to this as a child of this quad.
virtual void _SetLayoutStrat(LayoutStrategy *ToSet)
Sets a new LayoutStrategy for this quad to use.
Widget * SelectionDisplay
A pointer to a copy of the ListItem that is the current selection.
Definition: dropdownlist.h:67
virtual Boole IsTextLayer() const
Gets whether or not this is a TextLayer.
DropDownList(Screen *Parent)
Blank constructor.
This class stores a group of render layers that can be set to be rendered.
static const String EventDeselected
Event name for when this checkbox is Deselected.
Definition: checkbox.h:75
virtual Widget * CreateWidget(Screen *Parent)
Creates a Widget of the type represented by this factory.
virtual void Hide()
Forces this renderable to hide.
Definition: widget.cpp:266
This class represents both the relative and absolute values that can be expressed for the values on o...
Definition: unifieddim.h:56
virtual ListBox * CreateListBox(const String &RendName, const UI::ScrollbarStyle Style)
Creates a ListBox.
Definition: screen.cpp:798
virtual Widget * GetWidget(const String &Name)
Gets a widget in this screen by name.
Definition: screen.cpp:573
The bulk of the engine components go in this namspace.
Definition: actor.cpp:56
virtual void SetVerticalSizingRules(const Whole Rules)
Sets the behavior this quad will have on the Y axis when it is resized.
virtual void ConstructDropDownList(const UI::ScrollbarStyle &Style)
Convenience method for the construction of a DropDownList.
virtual ListBox * GetSelectionList() const
Gets the ListBox containing all the list options.
virtual void DestroyWidget(Widget *ToBeDestroyed)
Destroys a Widget created by this factory.
virtual void SetVisible(Boole CanSee)
Sets the visibility of this renderable.
Definition: widget.cpp:229
virtual Vector2 HandleChildPositioning(const Rect &OldSelfRect, const Rect &NewSelfRect, const Vector2 &NewChildSize, QuadRenderable *Child)
Handles the positioning of a child that needs it's dimensions updated.
virtual void ManualSelect(Boole Select)
Manually select or deselect this checkbox.
Definition: checkbox.cpp:120
Anchors to the right side of the quad.
virtual void ProtoDeSerialize(const XML::Node &SelfRoot)
Take the data stored in an XML Node and overwrite this object with it.
virtual void ProtoDeSerializeProperties(const XML::Node &SelfRoot)
Take the data stored in an XML Node and overwrite the properties of this object with it...
Definition: widget.cpp:337
This is a simple widget for storing a bool value.
Definition: checkbox.h:55
virtual void UpdateDimensions()
Updates the dimensions of this QuadRenderable based on the transform of it's parent.
SingleLineTextLayer * CreateSingleLineTextLayer()
Creats a SingleLineTextLayer for this renderable.
Vector2 Position
Vector2 representing the top-left position of the rect.
Definition: rect.h:69
virtual void SetDefaultFont(FontData *NewFont)
Sets the default font to be used with this layer.
Definition: textlayer.cpp:489
virtual void ProtoDeSerializeProperties(const XML::Node &SelfRoot)
Take the data stored in an XML Node and overwrite the properties of this object with it...
virtual void SetText(const String &Text)
Sets the text displayed within this layer.
Definition: textlayer.cpp:411
std::map< String, String > NameValuePairMap
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
Definition: datatypes.h:209
virtual void ProtoDeSerializeChildQuads(const XML::Node &SelfRoot)
Take the data stored in an XML Node and overwrite the ChildQuads of this object with it...
This class is a helper class for creating UI's. It is responsible for storing and keeping track of al...
Definition: screen.h:142
LayoutStrategy * LayoutStrat
This is a pointer to the strategy being used by this Quad to determine the positions and sizes of chi...
std::string String
A datatype used to a series of characters.
Definition: datatypes.h:159
This is a base class for render layers that render text.
Definition: textlayer.h:64
This is a specialization of a layout strategy where a group of quads are sized and placed in a linear...
virtual CheckBox * GetListToggle() const
Gets the CheckBox that toggles the selection list visibility.
This is the base class for the types of layers that can be added to a renderable. ...
Definition: renderlayer.h:58
This is a widget that displays one selection from a list that can have it's visibility toggled...
Definition: dropdownlist.h:59
Screen * ParentScreen
A pointer to the Screen that created this Renderable.
Definition: renderable.h:72
This is a widget for displaying a list of captions in a box.
Definition: listbox.h:63
virtual Widget * CreateWidget(const XML::Node &WidgetNode)
Creates a widget from an XML::Node.
Definition: screen.cpp:542