aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/source/Irrlicht/CDefaultGUIElementFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/source/Irrlicht/CDefaultGUIElementFactory.h')
-rw-r--r--src/others/irrlicht-1.8.1/source/Irrlicht/CDefaultGUIElementFactory.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/source/Irrlicht/CDefaultGUIElementFactory.h b/src/others/irrlicht-1.8.1/source/Irrlicht/CDefaultGUIElementFactory.h
new file mode 100644
index 0000000..fd92c6d
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/source/Irrlicht/CDefaultGUIElementFactory.h
@@ -0,0 +1,70 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __C_DEFAULT_GUI_ELEMENT_FACTORY_H_INCLUDED__
6#define __C_DEFAULT_GUI_ELEMENT_FACTORY_H_INCLUDED__
7
8#include "IrrCompileConfig.h"
9#ifdef _IRR_COMPILE_WITH_GUI_
10
11#include "IGUIElementFactory.h"
12
13namespace irr
14{
15namespace gui
16{
17 class IGUIElement;
18 class IGUIEnvironment;
19
20 //! This interface makes it possible to dynamically create gui elements.
21 class CDefaultGUIElementFactory : public IGUIElementFactory
22 {
23 public:
24
25 CDefaultGUIElementFactory(IGUIEnvironment* env);
26
27 //! Adds an element to the gui environment based on its type id.
28 /** \param type: Type of the element to add.
29 \param parent: Parent scene node of the new element. A value of 0 adds it to the root.
30 \return Returns pointer to the new element or 0 if unsuccessful. */
31 virtual IGUIElement* addGUIElement(EGUI_ELEMENT_TYPE type, IGUIElement* parent=0);
32
33 //! Adds a GUI element to the GUI Environment based on its type name.
34 /** \param typeName: Type name of the element to add. Taken from the GUIElementTypeNames c8* array.
35 \param parent: Parent scene node of the new element. A value of 0 adds it to the root.
36 \return Returns pointer to the new element or 0 if unsuccessful. */
37 virtual IGUIElement* addGUIElement(const c8* typeName, IGUIElement* parent=0);
38
39 //! Returns the amount of GUI element types this factory is able to create.
40 virtual s32 getCreatableGUIElementTypeCount() const;
41
42 //! Returns the type of a createable GUI element type based on the index.
43 /** \param idx: Index of the element type in this factory. The value must be equal or greater than 0
44 and lower than getCreatableGUIElementTypeCount(). */
45 virtual EGUI_ELEMENT_TYPE getCreateableGUIElementType(s32 idx) const;
46
47 //! Returns the type name of a createable GUI element type based on the index.
48 /** \param idx: Index of the element type in this factory. The value must be equal or greater than 0
49 and lower than getCreatableGUIElementTypeCount(). */
50 virtual const c8* getCreateableGUIElementTypeName(s32 idx) const;
51
52 //! Returns the type name of a createable GUI element based on its type.
53 /** \param type: Type of the GUI element.
54 \return: Returns the name of the type if this factory can create it, otherwise it returns 0. */
55 virtual const c8* getCreateableGUIElementTypeName(EGUI_ELEMENT_TYPE type) const;
56
57 private:
58
59 EGUI_ELEMENT_TYPE getTypeFromName(const c8* name) const;
60
61 IGUIEnvironment* Environment;
62 };
63
64
65} // end namespace gui
66} // end namespace irr
67
68#endif // _IRR_COMPILE_WITH_GUI_
69
70#endif // __C_DEFAULT_GUI_ELEMENT_FACTORY_H_INCLUDED__