diff options
author | David Walter Seikel | 2013-01-13 18:54:10 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 18:54:10 +1000 |
commit | 959831f4ef5a3e797f576c3de08cd65032c997ad (patch) | |
tree | e7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/source/Irrlicht/CGUIEnvironment.h | |
parent | Add info about changes to Irrlicht. (diff) | |
download | SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2 SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz |
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to '')
-rw-r--r-- | libraries/irrlicht-1.8/source/Irrlicht/CGUIEnvironment.h | 646 |
1 files changed, 323 insertions, 323 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CGUIEnvironment.h b/libraries/irrlicht-1.8/source/Irrlicht/CGUIEnvironment.h index 6b3be3b..cbe692f 100644 --- a/libraries/irrlicht-1.8/source/Irrlicht/CGUIEnvironment.h +++ b/libraries/irrlicht-1.8/source/Irrlicht/CGUIEnvironment.h | |||
@@ -1,323 +1,323 @@ | |||
1 | // Copyright (C) 2002-2012 Nikolaus Gebhardt | 1 | // Copyright (C) 2002-2012 Nikolaus Gebhardt |
2 | // This file is part of the "Irrlicht Engine". | 2 | // This file is part of the "Irrlicht Engine". |
3 | // For conditions of distribution and use, see copyright notice in irrlicht.h | 3 | // For conditions of distribution and use, see copyright notice in irrlicht.h |
4 | 4 | ||
5 | #ifndef __C_GUI_ENVIRONMENT_H_INCLUDED__ | 5 | #ifndef __C_GUI_ENVIRONMENT_H_INCLUDED__ |
6 | #define __C_GUI_ENVIRONMENT_H_INCLUDED__ | 6 | #define __C_GUI_ENVIRONMENT_H_INCLUDED__ |
7 | 7 | ||
8 | #include "IrrCompileConfig.h" | 8 | #include "IrrCompileConfig.h" |
9 | #ifdef _IRR_COMPILE_WITH_GUI_ | 9 | #ifdef _IRR_COMPILE_WITH_GUI_ |
10 | 10 | ||
11 | #include "IGUIEnvironment.h" | 11 | #include "IGUIEnvironment.h" |
12 | #include "IGUIElement.h" | 12 | #include "IGUIElement.h" |
13 | #include "irrArray.h" | 13 | #include "irrArray.h" |
14 | #include "IFileSystem.h" | 14 | #include "IFileSystem.h" |
15 | #include "IOSOperator.h" | 15 | #include "IOSOperator.h" |
16 | 16 | ||
17 | namespace irr | 17 | namespace irr |
18 | { | 18 | { |
19 | namespace io | 19 | namespace io |
20 | { | 20 | { |
21 | class IXMLWriter; | 21 | class IXMLWriter; |
22 | } | 22 | } |
23 | namespace gui | 23 | namespace gui |
24 | { | 24 | { |
25 | 25 | ||
26 | class CGUIEnvironment : public IGUIEnvironment, public IGUIElement | 26 | class CGUIEnvironment : public IGUIEnvironment, public IGUIElement |
27 | { | 27 | { |
28 | public: | 28 | public: |
29 | 29 | ||
30 | //! constructor | 30 | //! constructor |
31 | CGUIEnvironment(io::IFileSystem* fs, video::IVideoDriver* driver, IOSOperator* op); | 31 | CGUIEnvironment(io::IFileSystem* fs, video::IVideoDriver* driver, IOSOperator* op); |
32 | 32 | ||
33 | //! destructor | 33 | //! destructor |
34 | virtual ~CGUIEnvironment(); | 34 | virtual ~CGUIEnvironment(); |
35 | 35 | ||
36 | //! draws all gui elements | 36 | //! draws all gui elements |
37 | virtual void drawAll(); | 37 | virtual void drawAll(); |
38 | 38 | ||
39 | //! returns the current video driver | 39 | //! returns the current video driver |
40 | virtual video::IVideoDriver* getVideoDriver() const; | 40 | virtual video::IVideoDriver* getVideoDriver() const; |
41 | 41 | ||
42 | //! returns pointer to the filesystem | 42 | //! returns pointer to the filesystem |
43 | virtual io::IFileSystem* getFileSystem() const; | 43 | virtual io::IFileSystem* getFileSystem() const; |
44 | 44 | ||
45 | //! returns a pointer to the OS operator | 45 | //! returns a pointer to the OS operator |
46 | virtual IOSOperator* getOSOperator() const; | 46 | virtual IOSOperator* getOSOperator() const; |
47 | 47 | ||
48 | //! posts an input event to the environment | 48 | //! posts an input event to the environment |
49 | virtual bool postEventFromUser(const SEvent& event); | 49 | virtual bool postEventFromUser(const SEvent& event); |
50 | 50 | ||
51 | //! This sets a new event receiver for gui events. Usually you do not have to | 51 | //! This sets a new event receiver for gui events. Usually you do not have to |
52 | //! use this method, it is used by the internal engine. | 52 | //! use this method, it is used by the internal engine. |
53 | virtual void setUserEventReceiver(IEventReceiver* evr); | 53 | virtual void setUserEventReceiver(IEventReceiver* evr); |
54 | 54 | ||
55 | //! removes all elements from the environment | 55 | //! removes all elements from the environment |
56 | virtual void clear(); | 56 | virtual void clear(); |
57 | 57 | ||
58 | //! called if an event happened. | 58 | //! called if an event happened. |
59 | virtual bool OnEvent(const SEvent& event); | 59 | virtual bool OnEvent(const SEvent& event); |
60 | 60 | ||
61 | //! returns the current gui skin | 61 | //! returns the current gui skin |
62 | virtual IGUISkin* getSkin() const; | 62 | virtual IGUISkin* getSkin() const; |
63 | 63 | ||
64 | //! Sets a new GUI Skin | 64 | //! Sets a new GUI Skin |
65 | virtual void setSkin(IGUISkin* skin); | 65 | virtual void setSkin(IGUISkin* skin); |
66 | 66 | ||
67 | //! Creates a new GUI Skin based on a template. | 67 | //! Creates a new GUI Skin based on a template. |
68 | /** \return Returns a pointer to the created skin. | 68 | /** \return Returns a pointer to the created skin. |
69 | If you no longer need the skin, you should call IGUISkin::drop(). | 69 | If you no longer need the skin, you should call IGUISkin::drop(). |
70 | See IReferenceCounted::drop() for more information. */ | 70 | See IReferenceCounted::drop() for more information. */ |
71 | virtual IGUISkin* createSkin(EGUI_SKIN_TYPE type); | 71 | virtual IGUISkin* createSkin(EGUI_SKIN_TYPE type); |
72 | 72 | ||
73 | //! Creates the image list from the given texture. | 73 | //! Creates the image list from the given texture. |
74 | virtual IGUIImageList* createImageList( video::ITexture* texture, | 74 | virtual IGUIImageList* createImageList( video::ITexture* texture, |
75 | core::dimension2d<s32> imageSize, bool useAlphaChannel ); | 75 | core::dimension2d<s32> imageSize, bool useAlphaChannel ); |
76 | 76 | ||
77 | //! returns the font | 77 | //! returns the font |
78 | virtual IGUIFont* getFont(const io::path& filename); | 78 | virtual IGUIFont* getFont(const io::path& filename); |
79 | 79 | ||
80 | //! add an externally loaded font | 80 | //! add an externally loaded font |
81 | virtual IGUIFont* addFont(const io::path& name, IGUIFont* font); | 81 | virtual IGUIFont* addFont(const io::path& name, IGUIFont* font); |
82 | 82 | ||
83 | //! remove loaded font | 83 | //! remove loaded font |
84 | virtual void removeFont(IGUIFont* font); | 84 | virtual void removeFont(IGUIFont* font); |
85 | 85 | ||
86 | //! returns default font | 86 | //! returns default font |
87 | virtual IGUIFont* getBuiltInFont() const; | 87 | virtual IGUIFont* getBuiltInFont() const; |
88 | 88 | ||
89 | //! returns the sprite bank | 89 | //! returns the sprite bank |
90 | virtual IGUISpriteBank* getSpriteBank(const io::path& filename); | 90 | virtual IGUISpriteBank* getSpriteBank(const io::path& filename); |
91 | 91 | ||
92 | //! returns the sprite bank | 92 | //! returns the sprite bank |
93 | virtual IGUISpriteBank* addEmptySpriteBank(const io::path& name); | 93 | virtual IGUISpriteBank* addEmptySpriteBank(const io::path& name); |
94 | 94 | ||
95 | //! adds an button. The returned pointer must not be dropped. | 95 | //! adds an button. The returned pointer must not be dropped. |
96 | virtual IGUIButton* addButton(const core::rect<s32>& rectangle, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0,const wchar_t* tooltiptext = 0); | 96 | virtual IGUIButton* addButton(const core::rect<s32>& rectangle, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0,const wchar_t* tooltiptext = 0); |
97 | 97 | ||
98 | //! adds a window. The returned pointer must not be dropped. | 98 | //! adds a window. The returned pointer must not be dropped. |
99 | virtual IGUIWindow* addWindow(const core::rect<s32>& rectangle, bool modal = false, | 99 | virtual IGUIWindow* addWindow(const core::rect<s32>& rectangle, bool modal = false, |
100 | const wchar_t* text=0, IGUIElement* parent=0, s32 id=-1); | 100 | const wchar_t* text=0, IGUIElement* parent=0, s32 id=-1); |
101 | 101 | ||
102 | //! adds a modal screen. The returned pointer must not be dropped. | 102 | //! adds a modal screen. The returned pointer must not be dropped. |
103 | virtual IGUIElement* addModalScreen(IGUIElement* parent); | 103 | virtual IGUIElement* addModalScreen(IGUIElement* parent); |
104 | 104 | ||
105 | //! Adds a message box. | 105 | //! Adds a message box. |
106 | virtual IGUIWindow* addMessageBox(const wchar_t* caption, const wchar_t* text=0, | 106 | virtual IGUIWindow* addMessageBox(const wchar_t* caption, const wchar_t* text=0, |
107 | bool modal = true, s32 flag = EMBF_OK, IGUIElement* parent=0, s32 id=-1, video::ITexture* image=0); | 107 | bool modal = true, s32 flag = EMBF_OK, IGUIElement* parent=0, s32 id=-1, video::ITexture* image=0); |
108 | 108 | ||
109 | //! adds a scrollbar. The returned pointer must not be dropped. | 109 | //! adds a scrollbar. The returned pointer must not be dropped. |
110 | virtual IGUIScrollBar* addScrollBar(bool horizontal, const core::rect<s32>& rectangle, | 110 | virtual IGUIScrollBar* addScrollBar(bool horizontal, const core::rect<s32>& rectangle, |
111 | IGUIElement* parent=0, s32 id=-1); | 111 | IGUIElement* parent=0, s32 id=-1); |
112 | 112 | ||
113 | //! Adds an image element. | 113 | //! Adds an image element. |
114 | virtual IGUIImage* addImage(video::ITexture* image, core::position2d<s32> pos, | 114 | virtual IGUIImage* addImage(video::ITexture* image, core::position2d<s32> pos, |
115 | bool useAlphaChannel=true, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0); | 115 | bool useAlphaChannel=true, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0); |
116 | 116 | ||
117 | //! adds an image. The returned pointer must not be dropped. | 117 | //! adds an image. The returned pointer must not be dropped. |
118 | virtual IGUIImage* addImage(const core::rect<s32>& rectangle, | 118 | virtual IGUIImage* addImage(const core::rect<s32>& rectangle, |
119 | IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0, bool useAlphaChannel=true); | 119 | IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0, bool useAlphaChannel=true); |
120 | 120 | ||
121 | //! adds a checkbox | 121 | //! adds a checkbox |
122 | virtual IGUICheckBox* addCheckBox(bool checked, const core::rect<s32>& rectangle, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0); | 122 | virtual IGUICheckBox* addCheckBox(bool checked, const core::rect<s32>& rectangle, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0); |
123 | 123 | ||
124 | //! adds a list box | 124 | //! adds a list box |
125 | virtual IGUIListBox* addListBox(const core::rect<s32>& rectangle, | 125 | virtual IGUIListBox* addListBox(const core::rect<s32>& rectangle, |
126 | IGUIElement* parent=0, s32 id=-1, bool drawBackground=false); | 126 | IGUIElement* parent=0, s32 id=-1, bool drawBackground=false); |
127 | 127 | ||
128 | //! adds a tree view | 128 | //! adds a tree view |
129 | virtual IGUITreeView* addTreeView(const core::rect<s32>& rectangle, | 129 | virtual IGUITreeView* addTreeView(const core::rect<s32>& rectangle, |
130 | IGUIElement* parent=0, s32 id=-1, bool drawBackground=false, | 130 | IGUIElement* parent=0, s32 id=-1, bool drawBackground=false, |
131 | bool scrollBarVertical = true, bool scrollBarHorizontal = false); | 131 | bool scrollBarVertical = true, bool scrollBarHorizontal = false); |
132 | 132 | ||
133 | //! adds an mesh viewer. The returned pointer must not be dropped. | 133 | //! adds an mesh viewer. The returned pointer must not be dropped. |
134 | virtual IGUIMeshViewer* addMeshViewer(const core::rect<s32>& rectangle, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0); | 134 | virtual IGUIMeshViewer* addMeshViewer(const core::rect<s32>& rectangle, IGUIElement* parent=0, s32 id=-1, const wchar_t* text=0); |
135 | 135 | ||
136 | //! Adds a file open dialog. | 136 | //! Adds a file open dialog. |
137 | virtual IGUIFileOpenDialog* addFileOpenDialog(const wchar_t* title = 0, | 137 | virtual IGUIFileOpenDialog* addFileOpenDialog(const wchar_t* title = 0, |
138 | bool modal=true, IGUIElement* parent=0, s32 id=-1, | 138 | bool modal=true, IGUIElement* parent=0, s32 id=-1, |
139 | bool restoreCWD=false, io::path::char_type* startDir=0); | 139 | bool restoreCWD=false, io::path::char_type* startDir=0); |
140 | 140 | ||
141 | //! Adds a color select dialog. | 141 | //! Adds a color select dialog. |
142 | virtual IGUIColorSelectDialog* addColorSelectDialog(const wchar_t* title = 0, bool modal=true, IGUIElement* parent=0, s32 id=-1); | 142 | virtual IGUIColorSelectDialog* addColorSelectDialog(const wchar_t* title = 0, bool modal=true, IGUIElement* parent=0, s32 id=-1); |
143 | 143 | ||
144 | //! adds a static text. The returned pointer must not be dropped. | 144 | //! adds a static text. The returned pointer must not be dropped. |
145 | virtual IGUIStaticText* addStaticText(const wchar_t* text, const core::rect<s32>& rectangle, | 145 | virtual IGUIStaticText* addStaticText(const wchar_t* text, const core::rect<s32>& rectangle, |
146 | bool border=false, bool wordWrap=true, IGUIElement* parent=0, s32 id=-1, bool drawBackground = false); | 146 | bool border=false, bool wordWrap=true, IGUIElement* parent=0, s32 id=-1, bool drawBackground = false); |
147 | 147 | ||
148 | //! Adds an edit box. The returned pointer must not be dropped. | 148 | //! Adds an edit box. The returned pointer must not be dropped. |
149 | virtual IGUIEditBox* addEditBox(const wchar_t* text, const core::rect<s32>& rectangle, | 149 | virtual IGUIEditBox* addEditBox(const wchar_t* text, const core::rect<s32>& rectangle, |
150 | bool border=false, IGUIElement* parent=0, s32 id=-1); | 150 | bool border=false, IGUIElement* parent=0, s32 id=-1); |
151 | 151 | ||
152 | //! Adds a spin box to the environment | 152 | //! Adds a spin box to the environment |
153 | virtual IGUISpinBox* addSpinBox(const wchar_t* text, const core::rect<s32>& rectangle, | 153 | virtual IGUISpinBox* addSpinBox(const wchar_t* text, const core::rect<s32>& rectangle, |
154 | bool border=false,IGUIElement* parent=0, s32 id=-1); | 154 | bool border=false,IGUIElement* parent=0, s32 id=-1); |
155 | 155 | ||
156 | //! Adds a tab control to the environment. | 156 | //! Adds a tab control to the environment. |
157 | virtual IGUITabControl* addTabControl(const core::rect<s32>& rectangle, | 157 | virtual IGUITabControl* addTabControl(const core::rect<s32>& rectangle, |
158 | IGUIElement* parent=0, bool fillbackground=false, bool border=true, s32 id=-1); | 158 | IGUIElement* parent=0, bool fillbackground=false, bool border=true, s32 id=-1); |
159 | 159 | ||
160 | //! Adds tab to the environment. | 160 | //! Adds tab to the environment. |
161 | virtual IGUITab* addTab(const core::rect<s32>& rectangle, | 161 | virtual IGUITab* addTab(const core::rect<s32>& rectangle, |
162 | IGUIElement* parent=0, s32 id=-1); | 162 | IGUIElement* parent=0, s32 id=-1); |
163 | 163 | ||
164 | //! Adds a context menu to the environment. | 164 | //! Adds a context menu to the environment. |
165 | virtual IGUIContextMenu* addContextMenu(const core::rect<s32>& rectangle, | 165 | virtual IGUIContextMenu* addContextMenu(const core::rect<s32>& rectangle, |
166 | IGUIElement* parent=0, s32 id=-1); | 166 | IGUIElement* parent=0, s32 id=-1); |
167 | 167 | ||
168 | //! Adds a menu to the environment. | 168 | //! Adds a menu to the environment. |
169 | virtual IGUIContextMenu* addMenu(IGUIElement* parent=0, s32 id=-1); | 169 | virtual IGUIContextMenu* addMenu(IGUIElement* parent=0, s32 id=-1); |
170 | 170 | ||
171 | //! Adds a toolbar to the environment. It is like a menu is always placed on top | 171 | //! Adds a toolbar to the environment. It is like a menu is always placed on top |
172 | //! in its parent, and contains buttons. | 172 | //! in its parent, and contains buttons. |
173 | virtual IGUIToolBar* addToolBar(IGUIElement* parent=0, s32 id=-1); | 173 | virtual IGUIToolBar* addToolBar(IGUIElement* parent=0, s32 id=-1); |
174 | 174 | ||
175 | //! Adds a combo box to the environment. | 175 | //! Adds a combo box to the environment. |
176 | virtual IGUIComboBox* addComboBox(const core::rect<s32>& rectangle, | 176 | virtual IGUIComboBox* addComboBox(const core::rect<s32>& rectangle, |
177 | IGUIElement* parent=0, s32 id=-1); | 177 | IGUIElement* parent=0, s32 id=-1); |
178 | 178 | ||
179 | //! Adds a table element. | 179 | //! Adds a table element. |
180 | virtual IGUITable* addTable(const core::rect<s32>& rectangle, | 180 | virtual IGUITable* addTable(const core::rect<s32>& rectangle, |
181 | IGUIElement* parent=0, s32 id=-1, bool drawBackground=false); | 181 | IGUIElement* parent=0, s32 id=-1, bool drawBackground=false); |
182 | 182 | ||
183 | //! sets the focus to an element | 183 | //! sets the focus to an element |
184 | virtual bool setFocus(IGUIElement* element); | 184 | virtual bool setFocus(IGUIElement* element); |
185 | 185 | ||
186 | //! removes the focus from an element | 186 | //! removes the focus from an element |
187 | virtual bool removeFocus(IGUIElement* element); | 187 | virtual bool removeFocus(IGUIElement* element); |
188 | 188 | ||
189 | //! Returns if the element has focus | 189 | //! Returns if the element has focus |
190 | virtual bool hasFocus(IGUIElement* element) const; | 190 | virtual bool hasFocus(IGUIElement* element) const; |
191 | 191 | ||
192 | //! Returns the element with the focus | 192 | //! Returns the element with the focus |
193 | virtual IGUIElement* getFocus() const; | 193 | virtual IGUIElement* getFocus() const; |
194 | 194 | ||
195 | //! Returns the element last known to be under the mouse | 195 | //! Returns the element last known to be under the mouse |
196 | virtual IGUIElement* getHovered() const; | 196 | virtual IGUIElement* getHovered() const; |
197 | 197 | ||
198 | //! Adds an element for fading in or out. | 198 | //! Adds an element for fading in or out. |
199 | virtual IGUIInOutFader* addInOutFader(const core::rect<s32>* rectangle=0, IGUIElement* parent=0, s32 id=-1); | 199 | virtual IGUIInOutFader* addInOutFader(const core::rect<s32>* rectangle=0, IGUIElement* parent=0, s32 id=-1); |
200 | 200 | ||
201 | //! Returns the root gui element. | 201 | //! Returns the root gui element. |
202 | virtual IGUIElement* getRootGUIElement(); | 202 | virtual IGUIElement* getRootGUIElement(); |
203 | 203 | ||
204 | virtual void OnPostRender( u32 time ); | 204 | virtual void OnPostRender( u32 time ); |
205 | 205 | ||
206 | //! Returns the default element factory which can create all built in elements | 206 | //! Returns the default element factory which can create all built in elements |
207 | virtual IGUIElementFactory* getDefaultGUIElementFactory() const; | 207 | virtual IGUIElementFactory* getDefaultGUIElementFactory() const; |
208 | 208 | ||
209 | //! Adds an element factory to the gui environment. | 209 | //! Adds an element factory to the gui environment. |
210 | /** Use this to extend the gui environment with new element types which it should be | 210 | /** Use this to extend the gui environment with new element types which it should be |
211 | able to create automaticly, for example when loading data from xml files. */ | 211 | able to create automaticly, for example when loading data from xml files. */ |
212 | virtual void registerGUIElementFactory(IGUIElementFactory* factoryToAdd); | 212 | virtual void registerGUIElementFactory(IGUIElementFactory* factoryToAdd); |
213 | 213 | ||
214 | //! Returns amount of registered scene node factories. | 214 | //! Returns amount of registered scene node factories. |
215 | virtual u32 getRegisteredGUIElementFactoryCount() const; | 215 | virtual u32 getRegisteredGUIElementFactoryCount() const; |
216 | 216 | ||
217 | //! Returns a scene node factory by index | 217 | //! Returns a scene node factory by index |
218 | virtual IGUIElementFactory* getGUIElementFactory(u32 index) const; | 218 | virtual IGUIElementFactory* getGUIElementFactory(u32 index) const; |
219 | 219 | ||
220 | //! Adds a GUI Element by its name | 220 | //! Adds a GUI Element by its name |
221 | virtual IGUIElement* addGUIElement(const c8* elementName, IGUIElement* parent=0); | 221 | virtual IGUIElement* addGUIElement(const c8* elementName, IGUIElement* parent=0); |
222 | 222 | ||
223 | //! Saves the current gui into a file. | 223 | //! Saves the current gui into a file. |
224 | /** \param filename: Name of the file. | 224 | /** \param filename: Name of the file. |
225 | \param start: The element to start saving from. | 225 | \param start: The element to start saving from. |
226 | if not specified, the root element will be used */ | 226 | if not specified, the root element will be used */ |
227 | virtual bool saveGUI( const io::path& filename, IGUIElement* start=0); | 227 | virtual bool saveGUI( const io::path& filename, IGUIElement* start=0); |
228 | 228 | ||
229 | //! Saves the current gui into a file. | 229 | //! Saves the current gui into a file. |
230 | /** \param file: The file to save the GUI to. | 230 | /** \param file: The file to save the GUI to. |
231 | \param start: The element to start saving from. | 231 | \param start: The element to start saving from. |
232 | if not specified, the root element will be used */ | 232 | if not specified, the root element will be used */ |
233 | virtual bool saveGUI(io::IWriteFile* file, IGUIElement* start=0); | 233 | virtual bool saveGUI(io::IWriteFile* file, IGUIElement* start=0); |
234 | 234 | ||
235 | //! Loads the gui. Note that the current gui is not cleared before. | 235 | //! Loads the gui. Note that the current gui is not cleared before. |
236 | /** \param filename: Name of the file. | 236 | /** \param filename: Name of the file. |
237 | \param parent: The parent of all loaded GUI elements, | 237 | \param parent: The parent of all loaded GUI elements, |
238 | if not specified, the root element will be used */ | 238 | if not specified, the root element will be used */ |
239 | virtual bool loadGUI(const io::path& filename, IGUIElement* parent=0); | 239 | virtual bool loadGUI(const io::path& filename, IGUIElement* parent=0); |
240 | 240 | ||
241 | //! Loads the gui. Note that the current gui is not cleared before. | 241 | //! Loads the gui. Note that the current gui is not cleared before. |
242 | /** \param file: IReadFile to load the GUI from | 242 | /** \param file: IReadFile to load the GUI from |
243 | \param parent: The parent of all loaded GUI elements, | 243 | \param parent: The parent of all loaded GUI elements, |
244 | if not specified, the root element will be used */ | 244 | if not specified, the root element will be used */ |
245 | virtual bool loadGUI(io::IReadFile* file, IGUIElement* parent=0); | 245 | virtual bool loadGUI(io::IReadFile* file, IGUIElement* parent=0); |
246 | 246 | ||
247 | //! Writes attributes of the environment | 247 | //! Writes attributes of the environment |
248 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const; | 248 | virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const; |
249 | 249 | ||
250 | //! Reads attributes of the environment. | 250 | //! Reads attributes of the environment. |
251 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0); | 251 | virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0); |
252 | 252 | ||
253 | //! writes an element | 253 | //! writes an element |
254 | virtual void writeGUIElement(io::IXMLWriter* writer, IGUIElement* node); | 254 | virtual void writeGUIElement(io::IXMLWriter* writer, IGUIElement* node); |
255 | 255 | ||
256 | //! reads an element | 256 | //! reads an element |
257 | virtual void readGUIElement(io::IXMLReader* reader, IGUIElement* node); | 257 | virtual void readGUIElement(io::IXMLReader* reader, IGUIElement* node); |
258 | 258 | ||
259 | private: | 259 | private: |
260 | 260 | ||
261 | IGUIElement* getNextElement(bool reverse=false, bool group=false); | 261 | IGUIElement* getNextElement(bool reverse=false, bool group=false); |
262 | 262 | ||
263 | void updateHoveredElement(core::position2d<s32> mousePos); | 263 | void updateHoveredElement(core::position2d<s32> mousePos); |
264 | 264 | ||
265 | void loadBuiltInFont(); | 265 | void loadBuiltInFont(); |
266 | 266 | ||
267 | struct SFont | 267 | struct SFont |
268 | { | 268 | { |
269 | io::SNamedPath NamedPath; | 269 | io::SNamedPath NamedPath; |
270 | IGUIFont* Font; | 270 | IGUIFont* Font; |
271 | 271 | ||
272 | bool operator < (const SFont& other) const | 272 | bool operator < (const SFont& other) const |
273 | { | 273 | { |
274 | return (NamedPath < other.NamedPath); | 274 | return (NamedPath < other.NamedPath); |
275 | } | 275 | } |
276 | }; | 276 | }; |
277 | 277 | ||
278 | struct SSpriteBank | 278 | struct SSpriteBank |
279 | { | 279 | { |
280 | io::SNamedPath NamedPath; | 280 | io::SNamedPath NamedPath; |
281 | IGUISpriteBank* Bank; | 281 | IGUISpriteBank* Bank; |
282 | 282 | ||
283 | bool operator < (const SSpriteBank& other) const | 283 | bool operator < (const SSpriteBank& other) const |
284 | { | 284 | { |
285 | return (NamedPath < other.NamedPath); | 285 | return (NamedPath < other.NamedPath); |
286 | } | 286 | } |
287 | }; | 287 | }; |
288 | 288 | ||
289 | struct SToolTip | 289 | struct SToolTip |
290 | { | 290 | { |
291 | IGUIStaticText* Element; | 291 | IGUIStaticText* Element; |
292 | u32 LastTime; | 292 | u32 LastTime; |
293 | u32 EnterTime; | 293 | u32 EnterTime; |
294 | u32 LaunchTime; | 294 | u32 LaunchTime; |
295 | u32 RelaunchTime; | 295 | u32 RelaunchTime; |
296 | }; | 296 | }; |
297 | 297 | ||
298 | SToolTip ToolTip; | 298 | SToolTip ToolTip; |
299 | 299 | ||
300 | core::array<IGUIElementFactory*> GUIElementFactoryList; | 300 | core::array<IGUIElementFactory*> GUIElementFactoryList; |
301 | 301 | ||
302 | core::array<SFont> Fonts; | 302 | core::array<SFont> Fonts; |
303 | core::array<SSpriteBank> Banks; | 303 | core::array<SSpriteBank> Banks; |
304 | video::IVideoDriver* Driver; | 304 | video::IVideoDriver* Driver; |
305 | IGUIElement* Hovered; | 305 | IGUIElement* Hovered; |
306 | IGUIElement* HoveredNoSubelement; // subelements replaced by their parent, so you only have 'real' elements here | 306 | IGUIElement* HoveredNoSubelement; // subelements replaced by their parent, so you only have 'real' elements here |
307 | IGUIElement* Focus; | 307 | IGUIElement* Focus; |
308 | core::position2d<s32> LastHoveredMousePos; | 308 | core::position2d<s32> LastHoveredMousePos; |
309 | IGUISkin* CurrentSkin; | 309 | IGUISkin* CurrentSkin; |
310 | io::IFileSystem* FileSystem; | 310 | io::IFileSystem* FileSystem; |
311 | IEventReceiver* UserReceiver; | 311 | IEventReceiver* UserReceiver; |
312 | IOSOperator* Operator; | 312 | IOSOperator* Operator; |
313 | static const io::path DefaultFontName; | 313 | static const io::path DefaultFontName; |
314 | }; | 314 | }; |
315 | 315 | ||
316 | } // end namespace gui | 316 | } // end namespace gui |
317 | } // end namespace irr | 317 | } // end namespace irr |
318 | 318 | ||
319 | #endif // _IRR_COMPILE_WITH_GUI_ | 319 | #endif // _IRR_COMPILE_WITH_GUI_ |
320 | 320 | ||
321 | #endif // __C_GUI_ENVIRONMENT_H_INCLUDED__ | 321 | #endif // __C_GUI_ENVIRONMENT_H_INCLUDED__ |
322 | 322 | ||
323 | 323 | ||