Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
GUILayout_xmlHandler.h
1/***********************************************************************
2 created: 5/7/2004
3 author: Paul D Turner
4
5 purpose: Interface to XML parser for GUILayout files
6*************************************************************************/
7/***************************************************************************
8 * Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining
11 * a copy of this software and associated documentation files (the
12 * "Software"), to deal in the Software without restriction, including
13 * without limitation the rights to use, copy, modify, merge, publish,
14 * distribute, sublicense, and/or sell copies of the Software, and to
15 * permit persons to whom the Software is furnished to do so, subject to
16 * the following conditions:
17 *
18 * The above copyright notice and this permission notice shall be
19 * included in all copies or substantial portions of the Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27 * OTHER DEALINGS IN THE SOFTWARE.
28 ***************************************************************************/
29#ifndef _CEGUIGUILayout_xmlHandler_h_
30#define _CEGUIGUILayout_xmlHandler_h_
31
32#include "CEGUI/WindowManager.h"
33#include "CEGUI/Window.h"
34#include "CEGUI/XMLHandler.h"
35
36#include <vector>
37
38// Start of CEGUI namespace section
39namespace CEGUI
40{
46{
47 typedef WindowManager::PropertyCallback PropertyCallback;
48public:
49 static const String NativeVersion;
50
51 /*************************************************************************
52 Construction & Destruction
53 *************************************************************************/
58 GUILayout_xmlHandler(PropertyCallback* callback = 0, void* userdata = 0) :
59 d_root(0),
60 d_propertyCallback(callback),
61 d_userData(userdata)
62 {}
63
68 virtual ~GUILayout_xmlHandler(void) {}
69
70 virtual const String& getSchemaName() const;
71 virtual const String& getDefaultResourceGroup() const;
72
73 /*************************************************************************
74 SAX2 Handler overrides
75 *************************************************************************/
80 virtual void elementStart(const String& element, const XMLAttributes& attributes);
81 virtual void elementEnd(const String& element);
82 virtual void text(const String& text);
83
84 /*************************************************************************
85 Functions used by our implementation
86 *************************************************************************/
92
93
99
102 static const String EventElement;
108
109private:
118 void elementGUILayoutStart(const XMLAttributes& attributes);
119
124 void elementWindowStart(const XMLAttributes& attributes);
125
130 void elementAutoWindowStart(const XMLAttributes& attributes);
131
136 void elementUserStringStart(const XMLAttributes& attributes);
137
142 void elementPropertyStart(const XMLAttributes& attributes);
143
148 void elementLayoutImportStart(const XMLAttributes& attributes);
149
154 void elementEventStart(const XMLAttributes& attributes);
155
160 void elementWindowEnd();
161
166 void elementAutoWindowEnd();
167
172 void elementUserStringEnd();
173
178 void elementPropertyEnd();
179
180 void operator=(const GUILayout_xmlHandler&) {}
181
182 /*************************************************************************
183 Implementation Data
184 *************************************************************************/
185 typedef std::pair<Window*, bool> WindowStackEntry;
186 typedef std::vector<WindowStackEntry
187 CEGUI_VECTOR_ALLOC(WindowStackEntry)> WindowStack;
188 Window* d_root;
189 WindowStack d_stack;
190 PropertyCallback* d_propertyCallback;
191 void* d_userData;
192 String d_stringItemName;
193 String d_stringItemValue;
194};
195
196
197} // End of CEGUI namespace section
198
199
200#endif // end of guard _CEGUIGUILayout_xmlHandler_h_
Handler class used to parse the GUILayout XML files using SAX2.
Definition GUILayout_xmlHandler.h:46
Window * getLayoutRootWindow(void) const
Return a pointer to the 'root' window created.
static const String LayoutImportResourceGroupAttribute
Attribute name that stores the resource group identifier used when loading imported file.
Definition GUILayout_xmlHandler.h:104
static const String GUILayoutElement
Tag name for GUILayout elements.
Definition GUILayout_xmlHandler.h:100
virtual ~GUILayout_xmlHandler(void)
Destructor for GUILayout_xmlHandler objects.
Definition GUILayout_xmlHandler.h:68
static const String EventNameAttribute
Attribute name that stores the event name to be subscribed.
Definition GUILayout_xmlHandler.h:105
static const String EventElement
Tag name for Event elements.
Definition GUILayout_xmlHandler.h:102
static const String EventFunctionAttribute
Attribute name that stores the name of the scripted function to be bound.
Definition GUILayout_xmlHandler.h:106
virtual void elementEnd(const String &element)
Method called to notify the handler at the end of each XML element encountered.
virtual void elementStart(const String &element, const XMLAttributes &attributes)
document processing (only care about elements, schema validates format)
static const String LayoutImportFilenameAttribute
Attribute name that stores the file name of the layout to import.
Definition GUILayout_xmlHandler.h:103
virtual const String & getDefaultResourceGroup() const
Retrieves the default resource group to be used when handling files.
static const String GUILayoutVersionAttribute
Attribute name that stores the xml file version.
Definition GUILayout_xmlHandler.h:107
static const String LayoutImportElement
Tag name for LayoutImport elements.
Definition GUILayout_xmlHandler.h:101
GUILayout_xmlHandler(PropertyCallback *callback=0, void *userdata=0)
Constructor for GUILayout_xmlHandler objects.
Definition GUILayout_xmlHandler.h:58
static const String NativeVersion
The only version that we will allow to load.
Definition GUILayout_xmlHandler.h:49
virtual void text(const String &text)
Method called to notify text node, several successiv text node are agregated.
virtual const String & getSchemaName() const
Retrieves the schema file name to use with resources handled by this handler.
void cleanupLoadedWindows(void)
Destroy all windows created so far.
String class used within the GUI system.
Definition String.h:64
base class for properties able to do native set/get
Definition TypedProperty.h:50
bool PropertyCallback(Window *window, String &propname, String &propvalue, void *userdata)
Function type that is used as a callback when loading layouts from XML; the function is called for ea...
Definition WindowManager.h:105
An abstract base class providing common functionality and specifying the required interface for deriv...
Definition Window.h:151
Class representing a block of attributes associated with an XML element.
Definition XMLAttributes.h:48
Definition XMLHandler.h:37
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1