30 #ifndef _CEGUIWindowFactory_h_
31 #define _CEGUIWindowFactory_h_
33 #include "CEGUIBase.h"
34 #include "CEGUIString.h"
35 #include "CEGUIWindow.h"
56 #define CEGUI_DECLARE_WINDOW_FACTORY( T )\
57 class T ## Factory : public WindowFactory\
60 T ## Factory() : WindowFactory( T::WidgetTypeName ) {}\
61 Window* createWindow(const String& name)\
63 return new T (d_type, name);\
65 void destroyWindow(Window* window)\
70 T ## Factory& get ## T ## Factory();
77 #define CEGUI_DEFINE_WINDOW_FACTORY( T )\
78 T ## Factory& get ## T ## Factory()\
80 static T ## Factory s_factory;\
89 #define CEGUI_WINDOW_FACTORY( T ) (get ## T ## Factory())
128 virtual void destroyWindow(
Window* window) = 0;
146 virtual ~WindowFactory(
void) {}
157 #endif // end of guard _CEGUIWindowFactory_h_