00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_GUI_ELEMENT_FACTORY_H_INCLUDED__ 00006 #define __I_GUI_ELEMENT_FACTORY_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "EGUIElementTypes.h" 00010 00011 namespace irr 00012 { 00013 00014 namespace gui 00015 { 00016 class IGUIElement; 00017 00019 00026 class IGUIElementFactory : public virtual IReferenceCounted 00027 { 00028 public: 00029 00031 00034 virtual IGUIElement* addGUIElement(EGUI_ELEMENT_TYPE type, IGUIElement* parent=0) = 0; 00035 00037 00040 virtual IGUIElement* addGUIElement(const c8* typeName, IGUIElement* parent=0) = 0; 00041 00043 virtual s32 getCreatableGUIElementTypeCount() const = 0; 00044 00046 00048 virtual EGUI_ELEMENT_TYPE getCreateableGUIElementType(s32 idx) const = 0; 00049 00051 00053 virtual const c8* getCreateableGUIElementTypeName(s32 idx) const = 0; 00054 00056 00058 virtual const c8* getCreateableGUIElementTypeName(EGUI_ELEMENT_TYPE type) const = 0; 00059 }; 00060 00061 00062 } // end namespace gui 00063 } // end namespace irr 00064 00065 #endif // __I_GUI_ELEMENT_FACTORY_H_INCLUDED__ 00066