# CEGUIFalLayerSpecification.h

    00001 /************************************************************************
    00002     filename:   CEGUIFalLayerSpecification.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 _CEGUIFalLayerSpecification_h_
    00025 #define _CEGUIFalLayerSpecification_h_
    00026
    00027 #include "falagard/CEGUIFalSectionSpecification.h"
    00028 #include "CEGUIWindow.h"
    00029
    00030 #if defined(_MSC_VER)
    00031 #       pragma warning(push)
    00032 #       pragma warning(disable : 4251)
    00033 #endif
    00034
    00035 // Start of CEGUI namespace section
    00036 namespace CEGUI
    00037 {
    00042     class CEGUIEXPORT LayerSpecification
    00043     {
    00044     public:
    00053         LayerSpecification(uint priority);
    00054
    00068         void render(Window& srcWindow, float base_z, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
    00069
    00086         void render(Window& srcWindow, const Rect& baseRect, float base_z, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
    00087
    00100         void addSectionSpecification(const SectionSpecification& section);
    00101
    00109         void clearSectionSpecifications();
    00110
    00118         uint getLayerPriority() const;
    00119
    00120         // required to sort layers according to priority
    00121         bool operator<(const LayerSpecification& other) const;
    00122
    00133         void writeXMLToStream(OutStream& out_stream) const;
    00134
    00135     private:
    00136         typedef std::vector<SectionSpecification> SectionList;
    00137
    00138         SectionList d_sections;
    00139         uint        d_layerPriority;
    00140     };
    00141
    00142 } // End of  CEGUI namespace section
    00143
    00144
    00145 #if defined(_MSC_VER)
    00146 #       pragma warning(pop)
    00147 #endif
    00148
    00149 #endif  // end of guard _CEGUIFalLayerSpecification_h_