/*************************************************************************** stylecolour.h - description ------------------- begin : Die Nov 5 2002 copyright : (C) 2002 by Andre Simon email : andre.simon1@gmx.de ***************************************************************************/ /* This file is part of Highlight. Highlight is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Highlight 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 General Public License for more details. You should have received a copy of the GNU General Public License along with Highlight. If not, see . */ #ifndef STYLECOLOUR_H #define STYLECOLOUR_H #include "enums.h" #include using namespace std; namespace highlight { /**\brief Stores colours and returns red, green and blue values in different formats * @author Andre Simon */ struct RGBVal { int iRed, ///< Red value iGreen, ///< Green value iBlue; ///< Blue value }; class Colour { public: /** Constructor \param red Red value in hex notation \param green Blue value in hex notation \param blue Green value in hex notation */ Colour ( const string & red, const string & green, const string & blue ); /** Constructor \param ColourString String with rgb values */ Colour ( const string & colourString ); Colour(); ~Colour() {}; /** Sets red, green and blue values \param ColourString String containing colour attributes */ void setRGB ( const string & colourString ); /** Sets red value \param red New red value */ void setRed ( const string & red ); /** Sets green value \param green New green value */ void setGreen ( const string & green ); /** Sets blue value \param blue New blue value */ void setBlue ( const string & blue ); /** @param type Output type @return Red value in color representation according to output type */ string getRed ( OutputType type ) const; /** @param type Output type @return Green value in color representation according to output type */ string getGreen ( OutputType type ) const; /** @param type Output type @return Blue value in color representation according to output type */ string getBlue ( OutputType type ) const; private: RGBVal rgb; string int2str ( int, std::ios_base& ( *f ) ( std::ios_base& ) ) const; string float2str ( double ) const; }; } #endif