00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "falagard/CEGUIFalPropertyDefinition.h"
00025 #include "CEGUIWindow.h"
00026 #include <iostream>
00027
00028
00029 namespace CEGUI
00030 {
00031 PropertyDefinition::PropertyDefinition(const String& name, const String& initialValue, bool redrawOnWrite, bool layoutOnWrite) :
00032 Property(name, "Falagard custom property definition - gets/sets a named user string.", initialValue),
00033 d_userStringName(name + "_fal_auto_prop__"),
00034 d_writeCausesRedraw(redrawOnWrite),
00035 d_writeCausesLayout(layoutOnWrite)
00036 {
00037 }
00038
00039
00040 String PropertyDefinition::get(const PropertyReceiver* receiver) const
00041 {
00042 return static_cast<const Window*>(receiver)->getUserString(d_userStringName);
00043 }
00044
00045 void PropertyDefinition::set(PropertyReceiver* receiver, const String& value)
00046 {
00047 static_cast<Window*>(receiver)->setUserString(d_userStringName, value);
00048
00049 if (d_writeCausesLayout)
00050 static_cast<Window*>(receiver)->performChildWindowLayout();
00051
00052 if (d_writeCausesRedraw)
00053 static_cast<Window*>(receiver)->requestRedraw();
00054 }
00055
00056 void PropertyDefinition::writeXMLToStream(OutStream& out_stream) const
00057 {
00058 out_stream << "<PropertyDefinition name=\"" << d_name << "\" ";
00059
00060 if (!d_default.empty())
00061 out_stream << "initialValue=\"" << d_default << "\" ";
00062
00063 if (d_writeCausesRedraw)
00064 out_stream << "redrawOnWrite=\"true\" ";
00065
00066 if (d_writeCausesLayout)
00067 out_stream << "layoutOnWrite=\"true\" ";
00068
00069 out_stream << "/>" << std::endl;
00070 }
00071
00072 }