/************************************************************************ filename: CEGUIFalStateImagery.h created: Mon Jun 13 2005 author: Paul D Turner *************************************************************************/ /************************************************************************* Crazy Eddie's GUI System (http://www.cegui.org.uk) Copyright (C)2004 - 2005 Paul D Turner (paul@cegui.org.uk) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************/ #ifndef _CEGUIFalStateImagery_h_ #define _CEGUIFalStateImagery_h_ #include "falagard/CEGUIFalLayerSpecification.h" #include "CEGUIWindow.h" #include #if defined(_MSC_VER) # pragma warning(push) # pragma warning(disable : 4251) #endif // Start of CEGUI namespace section namespace CEGUI { /*! \brief Class the encapsulates imagery for a given widget state. */ class CEGUIEXPORT StateImagery { public: /*! \brief Constructor */ StateImagery() {} /*! \brief Constructor \param name Name of the state */ StateImagery(const String& name); /*! \brief Render imagery for this state. \param srcWindow Window to use when convering BaseDim values to pixels. \return Nothing. */ void render(Window& srcWindow, const ColourRect* modcols = 0, const Rect* clipper = 0) const; /*! \brief Render imagery for this state. \param srcWindow Window to use when convering BaseDim values to pixels. \param baseRect Rect to use when convering BaseDim values to pixels. \return Nothing. */ void render(Window& srcWindow, const Rect& baseRect, const ColourRect* modcols = 0, const Rect* clipper = 0) const; /*! \brief Add an imagery LayerSpecification to this state. \param layer LayerSpecification to be added to this state (will be copied) \return Nothing. */ void addLayer(const LayerSpecification& layer); /*! \brief Removed all LayerSpecifications from this state. \return Nothing. */ void clearLayers(); /*! \brief Return the name of this state. \return String object holding the name of the StateImagery object. */ const String& getName() const; /*! \brief Return whether this state imagery should be clipped to the display rather than the target window. Clipping to the display effectively implies that the imagery should be rendered unclipped. /return - true if the imagery will be clipped to the display area. - false if the imagery will be clipped to the target window area. */ bool isClippedToDisplay() const; /*! \brief Set whether this state imagery should be clipped to the display rather than the target window. Clipping to the display effectively implies that the imagery should be rendered unclipped. \param setting - true if the imagery should be clipped to the display area. - false if the imagery should be clipped to the target window area. \return Nothing. */ void setClippedToDisplay(bool setting); /*! \brief Writes an xml representation of this StateImagery to \a out_stream. \param out_stream Stream where xml data should be output. \return Nothing. */ void writeXMLToStream(OutStream& out_stream) const; private: typedef std::multiset LayersList; CEGUI::String d_stateName; //!< Name of this state. LayersList d_layers; //!< Collection of LayerSpecification objects to be drawn for this state. bool d_clipToDisplay; //!< true if Imagery for this state should be clipped to the display instead of winodw (effectively, not clipped). }; } // End of CEGUI namespace section #if defined(_MSC_VER) # pragma warning(pop) #endif #endif // end of guard _CEGUIFalStateImagery_h_