# CEGUIFalStateImagery.h

    00001 /************************************************************************
    00002     filename:   CEGUIFalStateImagery.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 _CEGUIFalStateImagery_h_
    00025 #define _CEGUIFalStateImagery_h_
    00026
    00027 #include "falagard/CEGUIFalLayerSpecification.h"
    00028 #include "CEGUIWindow.h"
    00029 #include <set>
    00030
    00031 #if defined(_MSC_VER)
    00032 #       pragma warning(push)
    00033 #       pragma warning(disable : 4251)
    00034 #endif
    00035
    00036 // Start of CEGUI namespace section
    00037 namespace CEGUI
    00038 {
    00043     class CEGUIEXPORT StateImagery
    00044     {
    00045     public:
    00050         StateImagery() {}
    00051
    00059         StateImagery(const String& name);
    00060
    00071         void render(Window& srcWindow, const ColourRect* modcols = 0, const Rect* clipper = 0) const;
    00072
    00086         void render(Window& srcWindow, const Rect& baseRect, const ColourRect* modcols = 0, const Rect* clipper = 0) const;
    00087
    00098         void addLayer(const LayerSpecification& layer);
    00099
    00107         void clearLayers();
    00108
    00116         const String& getName() const;
    00117
    00128         bool isClippedToDisplay() const;
    00129
    00143         void setClippedToDisplay(bool setting);
    00144
    00155         void writeXMLToStream(OutStream& out_stream) const;
    00156
    00157     private:
    00158         typedef std::multiset<LayerSpecification> LayersList;
    00159
    00160         CEGUI::String   d_stateName;
    00161         LayersList      d_layers;
    00162         bool            d_clipToDisplay;
    00163     };
    00164
    00165 } // End of  CEGUI namespace section
    00166
    00167
    00168 #if defined(_MSC_VER)
    00169 #       pragma warning(pop)
    00170 #endif
    00171
    00172 #endif  // end of guard _CEGUIFalStateImagery_h_