29 #ifndef _TplWindowRendererProperty_h_
30 #define _TplWindowRendererProperty_h_
32 #include "CEGUI/TplProperty.h"
38 template<
class C,
typename T>
39 class TplWindowRendererProperty :
public TplProperty<C, T>
42 TplWindowRendererProperty(
43 const String& name,
const String& help,
const String& origin,
44 typename TplProperty<C, T>::Setter setter,
45 typename TplProperty<C, T>::GetterFunctor getter,
46 typename TplProperty<C, T>::Helper::pass_type defaultValue = T(),
47 bool writesXML =
true) :
49 TplProperty<C, T>(name, help, origin,
51 defaultValue, writesXML)
56 return CEGUI_NEW_AO TplWindowRendererProperty<C, T>(*
this);
64 C* instance = static_cast<C*>(
65 static_cast<const Window*>(receiver)->getWindowRenderer());
67 CEGUI_CALL_MEMBER_FN(*instance, this->d_setter)(value);
74 const C* instance = static_cast<const C*>(
75 static_cast<const Window*>(receiver)->getWindowRenderer());
77 return this->d_getter(instance);
90 #define CEGUI_DEFINE_WINDOW_RENDERER_PROPERTY(class_type, property_native_type, name, help, setter, getter, default_value)\
92 static ::CEGUI::TplWindowRendererProperty<class_type, property_native_type> sProperty(\
93 name, help, TypeName, setter, getter, default_value);\
95 this->registerProperty(&sProperty);\
110 #define CEGUI_DEFINE_WINDOW_RENDERER_PROPERTY_NO_XML(class_type, property_native_type, name, help, setter, getter, default_value)\
112 static ::CEGUI::TplWindowRendererProperty<class_type, property_native_type> sProperty(\
113 name, help, TypeName, setter, getter, default_value, false);\
115 this->registerProperty(&sProperty,true);\
119 #endif // end of guard _TplWindowRendererProperty_h_