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

CEGUIFalComponentBase.h

Go to the documentation of this file.
00001 /************************************************************************
00002     filename:   CEGUIFalComponentBase.h
00003     created:    Mon Jul 18 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 _CEGUIFalComponentBase_h_
00025 #define _CEGUIFalComponentBase_h_
00026 
00027 #include "falagard/CEGUIFalDimensions.h"
00028 #include "CEGUIWindow.h"
00029 
00030 // Start of CEGUI namespace section
00031 namespace CEGUI
00032 {
00037     class CEGUIEXPORT FalagardComponentBase
00038     {
00039     public:
00044         FalagardComponentBase();
00045 
00050         virtual ~FalagardComponentBase();
00051 
00070         void render(Window& srcWindow, float base_z, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
00071 
00093         void render(Window& srcWindow, const Rect& baseRect, float base_z, const CEGUI::ColourRect* modColours = 0, const Rect* clipper = 0, bool clipToDisplay = false) const;
00094 
00102         const ComponentArea& getComponentArea() const;
00103 
00114         void setComponentArea(const ComponentArea& area);
00115 
00123         const ColourRect& getColours() const;
00124 
00132         void setColours(const ColourRect& cols);
00133 
00144         void setColoursPropertySource(const String& property);
00145 
00157         void setColoursPropertyIsColourRect(bool setting = true);
00158 
00169         void setVertFormattingPropertySource(const String& property);
00170 
00181         void setHorzFormattingPropertySource(const String& property);
00182 
00183     protected:
00193         void initColoursRect(const Window& wnd, const ColourRect* modCols, ColourRect& cr) const;
00194 
00199         virtual void render_impl(Window& srcWindow, Rect& destRect, float base_z, const CEGUI::ColourRect* modColours, const Rect* clipper, bool clipToDisplay) const = 0;
00200 
00212         bool writeColoursXML(OutStream& out_stream) const;
00213 
00225         bool writeVertFormatXML(OutStream& out_stream) const;
00226 
00238         bool writeHorzFormatXML(OutStream& out_stream) const;
00239 
00240 
00241         // data fields
00242         ComponentArea   d_area;                 
00243         ColourRect      d_colours;              
00244         String          d_colourPropertyName;   
00245         bool            d_colourProperyIsRect;  
00246         String          d_vertFormatPropertyName;   
00247         String          d_horzFormatPropertyName;   
00248     };
00249 } // End of  CEGUI namespace section
00250 
00251 
00252 #endif  // end of guard _CEGUIFalComponentBase_h_

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