27 #ifndef _CEGUIFalPropertyDefinition_h_
28 #define _CEGUIFalPropertyDefinition_h_
30 #include "CEGUI/falagard/FalagardPropertyBase.h"
31 #include "CEGUI/falagard/XMLHandler.h"
32 #include "CEGUI/Logger.h"
37 class PropertyDefinition :
public FalagardPropertyBase<T>
40 typedef typename TypedProperty<T>::Helper Helper;
43 PropertyDefinition(
const String& name,
const String& initialValue,
44 const String& help,
const String& origin,
45 bool redrawOnWrite,
bool layoutOnWrite,
46 const String& fireEvent,
const String& eventNamespace) :
47 FalagardPropertyBase<T>(name, help, initialValue, origin,
48 redrawOnWrite, layoutOnWrite,
49 fireEvent, eventNamespace),
55 ~PropertyDefinition() {}
71 typename Helper::safe_method_return_type
72 getNative_impl(
const PropertyReceiver* receiver)
const
74 const Window*
const wnd = static_cast<const Window*>(receiver);
85 return Helper::fromString(wnd->getUserString(d_userStringName));
87 CEGUI_CATCH (UnknownObjectException&)
89 Logger::getSingleton().logEvent(
90 "PropertyDefiniton::get: Defining new user string: " +
97 const_cast<Window*>(wnd)->
98 setUserString(d_userStringName, FalagardPropertyBase<T>::d_initialValue);
105 void setNative_impl(PropertyReceiver* receiver,
typename Helper::pass_type value)
107 setWindowUserString(static_cast<Window*>(receiver), Helper::toString(value));
108 FalagardPropertyBase<T>::setNative_impl(receiver, value);
112 void setWindowUserString(Window* window,
const String& value)
const
114 window->setUserString(d_userStringName, value);
121 writeDefinitionXMLAdditionalAttributes(xml_stream);
124 void writeDefinitionXMLAdditionalAttributes(XMLSerializer& xml_stream)
const
136 String d_userStringName;