~baltix/+junk/irrlicht-test

« back to all changes in this revision

Viewing changes to source/Irrlicht/CDefaultGUIElementFactory.h

  • Committer: Mantas Kriaučiūnas
  • Date: 2011-07-18 13:06:25 UTC
  • Revision ID: mantas@akl.lt-20110718130625-c5pvifp61e7kj1ol
Included whole irrlicht SVN libraries to work around launchpad recipe issue with quilt, see https://answers.launchpad.net/launchpad/+question/165193

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (C) 2002-2011 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
 
 
13
namespace irr
 
14
{
 
15
namespace 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__