/************************************************************************ filename: CEGUIListboxTextItem.h created: 12/6/2004 author: Paul D Turner purpose: Interface for list box text items *************************************************************************/ /************************************************************************* 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 _CEGUIListboxTextItem_h_ #define _CEGUIListboxTextItem_h_ #include "elements/CEGUIListboxItem.h" // Start of CEGUI namespace section namespace CEGUI { /*! \brief Class used for textual items in a list box. */ class CEGUIEXPORT ListboxTextItem : public ListboxItem { public: /************************************************************************* Constants *************************************************************************/ static const colour DefaultTextColour; //!< Default text colour. /************************************************************************* Construction and Destruction *************************************************************************/ /*! \brief base class constructor */ ListboxTextItem(const String& text, uint item_id = 0, void* item_data = NULL, bool disabled = false, bool auto_delete = true); /*! \brief base class destructor */ virtual ~ListboxTextItem(void) {} /************************************************************************* Accessor methods *************************************************************************/ /*! \brief Return a pointer to the font being used by this ListboxTextItem This method will try a number of places to find a font to be used. If no font can be found, NULL is returned. \return Font to be used for rendering this item */ const Font* getFont(void) const; /*! \brief Return the current colours used for text rendering. \return ColourRect object describing the currently set colours */ ColourRect getTextColours(void) const {return d_textCols;} /************************************************************************* Manipulator methods *************************************************************************/ /*! \brief Set the font to be used by this ListboxTextItem \param font Font to be used for rendering this item \return Nothing */ void setFont(const Font* font) {d_font = font;} /*! \brief Set the font to be used by this ListboxTextItem \param font_name String object containing the name of the Font to be used for rendering this item \return Nothing */ void setFont(const String& font_name); /*! \brief Set the colours used for text rendering. \param cols ColourRect object describing the colours to be used. \return Nothing. */ void setTextColours(const ColourRect& cols) {d_textCols = cols;} /*! \brief Set the colours used for text rendering. \param top_left_colour Colour (as ARGB value) to be applied to the top-left corner of each text glyph rendered. \param top_right_colour Colour (as ARGB value) to be applied to the top-right corner of each text glyph rendered. \param bottom_left_colour Colour (as ARGB value) to be applied to the bottom-left corner of each text glyph rendered. \param bottom_right_colour Colour (as ARGB value) to be applied to the bottom-right corner of each text glyph rendered. \return Nothing. */ void setTextColours(colour top_left_colour, colour top_right_colour, colour bottom_left_colour, colour bottom_right_colour); /*! \brief Set the colours used for text rendering. \param col colour value to be used when rendering. \return Nothing. */ void setTextColours(colour col) {setTextColours(col, col, col, col);} /************************************************************************* Required implementations of pure virtuals from the base class. *************************************************************************/ /*! \brief Return the rendered pixel size of this list box item. \return Size object describing the size of the list box item in pixels. */ virtual Size getPixelSize(void) const; /*! \brief Draw the list box item in its current state. \param position Vecor3 object describing the upper-left corner of area that should be rendered in to for the draw operation. \param alpha Alpha value to be used when rendering the item (between 0.0f and 1.0f). \param clipper Rect object describing the clipping rectangle for the draw operation. \return Nothing. */ virtual void draw(const Vector3& position, float alpha, const Rect& clipper) const; protected: /************************************************************************* Implementation Data *************************************************************************/ ColourRect d_textCols; //!< Colours used for rendering the text. const Font* d_font; //!< Font used for rendering text. }; } // End of CEGUI namespace section #endif // end of guard _CEGUIListboxTextItem_h_