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

CEGUIFalWidgetLookFeel.h

Go to the documentation of this file.
00001 /************************************************************************
00002     filename:   CEGUIFalWidgetLookFeel.h
00003     created:    Mon Jun 13 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 #ifndef _CEGUIFalWidgetLookFeel_h_
00025 #define _CEGUIFalWidgetLookFeel_h_
00026 
00027 #include "falagard/CEGUIFalStateImagery.h"
00028 #include "falagard/CEGUIFalWidgetComponent.h"
00029 #include "falagard/CEGUIFalImagerySection.h"
00030 #include "falagard/CEGUIFalPropertyInitialiser.h"
00031 #include "falagard/CEGUIFalPropertyDefinition.h"
00032 #include "falagard/CEGUIFalNamedArea.h"
00033 #include <map>
00034 
00035 #if defined(_MSC_VER)
00036 #       pragma warning(push)
00037 #       pragma warning(disable : 4251)
00038 #endif
00039 
00040 
00041 // Start of CEGUI namespace section
00042 namespace CEGUI
00043 {
00048     class CEGUIEXPORT WidgetLookFeel
00049     {
00050     public:
00051         WidgetLookFeel(const String& name);
00052         WidgetLookFeel() {}
00053 
00061         const StateImagery& getStateImagery(const CEGUI::String& state) const;
00062 
00070         const ImagerySection& getImagerySection(const CEGUI::String& section) const;
00071 
00079         const String& getName() const;
00080 
00090         void addImagerySection(const ImagerySection& section);
00091 
00101         void addWidgetComponent(const WidgetComponent& widget);
00102 
00112         void addStateSpecification(const StateImagery& state);
00113 
00123         void addPropertyInitialiser(const PropertyInitialiser& initialiser);
00124 
00132         void clearImagerySections();
00133 
00141         void clearWidgetComponents();
00142 
00150         void clearStateSpecifications();
00151 
00159         void clearPropertyInitialisers();
00160 
00172         void initialiseWidget(Window& widget) const;
00173 
00185         bool isStateImageryPresent(const String& state) const;
00186 
00197         void addNamedArea(const NamedArea& area);
00198 
00206         void clearNamedAreas();
00207 
00218         const NamedArea& getNamedArea(const String& name) const;
00219 
00231         bool isNamedAreaDefined(const String& name) const;
00232 
00243         void layoutChildWidgets(const Window& owner) const;
00244 
00255         void addPropertyDefinition(const PropertyDefinition& propdef);
00256 
00264         void clearPropertyDefinitions();
00265 
00276         void writeXMLToStream(OutStream& out_stream) const;
00277 
00278     private:
00279         typedef std::map<String, StateImagery>    StateList;
00280         typedef std::map<String, ImagerySection>  ImageryList;
00281         typedef std::map<String, NamedArea>       NamedAreaList;
00282         typedef std::vector<WidgetComponent>      WidgetList;
00283         typedef std::vector<PropertyInitialiser>  PropertyList;
00284         typedef std::vector<PropertyDefinition>   PropertyDefinitionList;
00285 
00286         CEGUI::String   d_lookName;         
00287         ImageryList     d_imagerySections;  
00288         WidgetList      d_childWidgets;     
00289         StateList       d_stateImagery;     
00290         PropertyList    d_properties;       
00291         NamedAreaList   d_namedAreas;       
00292         mutable PropertyDefinitionList  d_propertyDefinitions;  
00293     };
00294 
00295 
00296 } // End of  CEGUI namespace section
00297 
00298 
00299 #if defined(_MSC_VER)
00300 #       pragma warning(pop)
00301 #endif
00302 
00303 #endif  // end of guard _CEGUIFalWidgetLookFeel_h_

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