# CEGUIFalSectionSpecification.h

    00001 /************************************************************************
    00002     filename:   CEGUIFalSectionSpecification.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 _CEGUIFalSectionSpecification_h_
    00025 #define _CEGUIFalSectionSpecification_h_
    00026
    00027 #include "CEGUIWindow.h"
    00028
    00029
    00030 // Start of CEGUI namespace section
    00031 namespace CEGUI
    00032 {
    00033     // forward refs
    00034     class WidgetLookFeel;
    00035
    00043     class CEGUIEXPORT SectionSpecification
    00044     {
    00045     public:
    00056         SectionSpecification(const String& owner, const String& sectionName);
    00057
    00071         SectionSpecification(const String& owner, const String& sectionName, const ColourRect& cols);
    00072
    00086         void render(Window& srcWindow, float base_z, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
    00087
    00104         void render(Window& srcWindow, const Rect& baseRect, float base_z, const ColourRect* modcols = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
    00105
    00113         const String& getOwnerWidgetLookFeel() const;
    00114
    00122         const String& getSectionName() const;
    00123
    00132         const ColourRect& getOverrideColours() const;
    00133
    00144         void setOverrideColours(const ColourRect& cols);
    00145
    00154         bool isUsingOverrideColours() const;
    00155
    00167         void setUsingOverrideColours(bool setting = true);
    00168
    00179         void setOverrideColoursPropertySource(const String& property);
    00180
    00192         void setOverrideColoursPropertyIsColourRect(bool setting = true);
    00193
    00204         void writeXMLToStream(OutStream& out_stream) const;
    00205
    00206     protected:
    00217         void initColourRectForOverride(const Window& wnd, ColourRect& cr) const;
    00218
    00219     private:
    00220         String          d_owner;
    00221         String          d_sectionName;
    00222         ColourRect      d_coloursOverride;
    00223         bool            d_usingColourOverride;
    00224         String          d_colourPropertyName;
    00225         bool            d_colourProperyIsRect;
    00226     };
    00227
    00228
    00229 } // End of  CEGUI namespace section
    00230
    00231
    00232 #endif  // end of guard _CEGUIFalSectionSpecification_h_