# CEGUIFalImagerySection.h

    00001 /************************************************************************
    00002     filename:   CEGUIFalImagerySection.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 _CEGUIFalImagerySection_h_
    00025 #define _CEGUIFalImagerySection_h_
    00026
    00027 #include "falagard/CEGUIFalImageryComponent.h"
    00028 #include "falagard/CEGUIFalTextComponent.h"
    00029 #include "falagard/CEGUIFalFrameComponent.h"
    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 ImagerySection
    00044     {
    00045     public:
    00050         ImagerySection();
    00051
    00059         ImagerySection(const String& name);
    00060
    00077         void render(Window& srcWindow, float base_z, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
    00078
    00098         void render(Window& srcWindow, const Rect& baseRect, float base_z, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
    00099
    00110         void addImageryComponent(const ImageryComponent& img);
    00111
    00119         void clearImageryComponents();
    00120
    00131         void addTextComponent(const TextComponent& text);
    00132
    00140         void clearTextComponents();
    00141
    00149         void clearFrameComponents();
    00150
    00161         void addFrameComponent(const FrameComponent& frame);
    00162
    00170         const ColourRect& getMasterColours() const;
    00171
    00182         void setMasterColours(const ColourRect& cols);
    00183
    00191         const String& getName() const;
    00192
    00203         void setMasterColoursPropertySource(const String& property);
    00204
    00216         void setMasterColoursPropertyIsColourRect(bool setting = true);
    00217
    00222         Rect getBoundingRect(const Window& wnd) const;
    00223
    00228         Rect getBoundingRect(const Window& wnd, const Rect& rect) const;
    00229
    00240         void writeXMLToStream(OutStream& out_stream) const;
    00241
    00242     protected:
    00252         void initMasterColourRect(const Window& wnd, ColourRect& cr) const;
    00253
    00254     private:
    00255         typedef std::vector<ImageryComponent> ImageryList;
    00256         typedef std::vector<TextComponent> TextList;
    00257         typedef std::vector<FrameComponent> FrameList;
    00258
    00259         CEGUI::String       d_name;
    00260         CEGUI::ColourRect   d_masterColours;
    00261         FrameList           d_frames;
    00262         ImageryList         d_images;
    00263         TextList            d_texts;
    00264         String              d_colourPropertyName;
    00265         bool                d_colourProperyIsRect;
    00266     };
    00267
    00268 } // End of  CEGUI namespace section
    00269
    00270
    00271 #if defined(_MSC_VER)
    00272 #       pragma warning(pop)
    00273 #endif
    00274
    00275 #endif  // end of guard _CEGUIFalImagerySection_h_