Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CEGUIFalPropertyDefinition.cpp

Go to the documentation of this file.
00001 /************************************************************************
00002     filename:   CEGUIFalPropertyDefinition.cpp
00003     created:    Sun Jun 26 2005
00004     author:     Paul D Turner <paul@cegui.org.uk>
00005 *************************************************************************/
00006 /*************************************************************************
00007     Crazy Eddie's GUI System (http://www.cegui.org.uk)
00008     Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk)
00009  
00010     This library is free software; you can redistribute it and/or
00011     modify it under the terms of the GNU Lesser General Public
00012     License as published by the Free Software Foundation; either
00013     version 2.1 of the License, or (at your option) any later version.
00014  
00015     This library is distributed in the hope that it will be useful,
00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018     Lesser General Public License for more details.
00019  
00020     You should have received a copy of the GNU Lesser General Public
00021     License along with this library; if not, write to the Free Software
00022     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00023 *************************************************************************/
00024 #include "falagard/CEGUIFalPropertyDefinition.h"
00025 #include "CEGUIWindow.h"
00026 #include <iostream>
00027 
00028 // Start of CEGUI namespace section
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     // abstract members from Property
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 } // End of  CEGUI namespace section

Generated on Wed Sep 7 09:56:31 2005 for Crazy Eddies GUI System by  doxygen 1.4.3