/** ******************************************************************************* * @file Colorize.h * @brief Editeur De N'ours : Colirizing system (header) * @author Edouard DUPIN * @date 14/12/2010 * @par Project * Edn * * @par Copyright * Copyright 2010 Edouard DUPIN, all right reserved * * This software is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY. * * Licence summary : * You can modify and redistribute the sources code and binaries. * You can send me the bug-fix * You can not earn money with this Software (if the source extract from Edn * represent less than 50% of original Sources) * Term of the licence in in the file licence.txt. * ******************************************************************************* */ #ifndef __COLORIZE_H__ #define __COLORIZE_H__ #include "Edn.h" extern "C" { typedef struct { float red; float green; float blue; } color_ts; } class Colorize { public: // Constructeur Colorize(void); Colorize(Edn::String &newColorName); ~Colorize(void); void SetName(Edn::String &newColorName); void SetName(const char *newColorName); Edn::String GetName(void); void SetFgColor(const char *myColor); void SetBgColor(const char *myColor); void ApplyFG(cairo_t * cr) { cairo_set_source_rgba(cr, m_colorFG.red, m_colorFG.green, m_colorFG.blue, 1); }; void ApplyBG(cairo_t * cr) { cairo_set_source_rgba(cr, m_colorBG.red, m_colorBG.green, m_colorBG.blue, 1); }; color_ts & GetFG(void) { return m_colorFG; }; color_ts & GetBG(void) { return m_colorBG; }; bool HaveBg(void); void SetItalic(bool enable); void SetBold(bool enable); bool GetItalic(void); bool GetBold(void); void Display(int32_t i) { EDN_INFO(" " << i << " : \"" << ColorName.c_str() << "\"" /*<< " fg="<< m_colorFG.red <<","<< m_colorFG.green <<","<< m_colorFG.blue <<" bg="<< m_colorBG.red <<","<< m_colorBG.green <<","<< m_colorBG.blue*/ ); }; private: Edn::String ColorName; //!< curent color Name color_ts m_colorFG; color_ts m_colorBG; bool italic; bool bold; bool haveFG; bool haveBG; }; #endif