29 #ifndef _CEGUIWindowRenderer_h_
30 #define _CEGUIWindowRenderer_h_
32 #include "CEGUI/Window.h"
33 #include "CEGUI/Property.h"
38 # pragma warning(push)
39 # pragma warning(disable : 4251)
50 class CEGUIEXPORT WindowRenderer :
51 public AllocatedObject<WindowRenderer>
68 WindowRenderer(
const String& name,
const String& class_name=
"Window");
74 virtual ~WindowRenderer();
87 virtual void render() = 0;
93 const String& getName()
const {
return d_name;}
99 Window* getWindow()
const {
return d_window;}
105 const String& getClass()
const {
return d_class;}
111 const WidgetLookFeel& getLookNFeel()
const;
118 virtual Rectf getUnclippedInnerRect()
const;
125 virtual void performChildWindowLayout() {}
132 virtual void getRenderingContext(RenderingContext& ctx)
const;
135 virtual void update(
float ) {}
154 virtual bool handleFontRenderSizeChange(
const Font*
const font);
174 void registerProperty(
Property* property,
const bool ban_from_xml);
185 void registerProperty(
Property* property);
191 virtual void onAttach();
197 virtual void onDetach();
203 virtual void onLookNFeelAssigned() {}
209 virtual void onLookNFeelUnassigned() {}
216 const String d_class;
219 typedef std::pair<Property*, bool> PropertyEntry;
221 typedef std::vector<PropertyEntry
222 CEGUI_VECTOR_ALLOC(PropertyEntry)> PropertyList;
223 PropertyList d_properties;
230 WindowRenderer& operator=(
const WindowRenderer&) {
return *
this; }
237 class CEGUIEXPORT WindowRendererFactory
247 WindowRendererFactory(
const String& name) : d_factoryName(name) {}
253 virtual ~WindowRendererFactory() {}
259 const String& getName()
const {
return d_factoryName;}
265 virtual WindowRenderer* create() = 0;
279 #if defined(_MSC_VER)
280 # pragma warning(pop)
283 #endif // _CEGUIWindowRenderer_h_