X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLColor.h;h=c6bf6cebf7c47a754bd67411c3643b61157cd712;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=ef0a2382a93f092d16e7cb9172e7f2350082ca7f;hpb=2431a4732af45523c4acad0b386091ec5fbccff7;p=lyx.git diff --git a/src/LColor.h b/src/LColor.h index ef0a2382a9..c6bf6cebf7 100644 --- a/src/LColor.h +++ b/src/LColor.h @@ -1,28 +1,36 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor +/** + * \file LColor.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * Copyright 1998-2001 The LyX Team + * \author Asger Alstrup + * \author Lars Gullik Bjønnes + * \author Matthias Ettrich + * \author Jean-Marc Lasgouttes + * \author Angus Leeming + * \author John Levon + * \author André Pönitz + * \author Martin Vermeer * - *======================================================*/ + * Full author contact details are available in file CREDITS. + */ #ifndef LCOLOR_H #define LCOLOR_H -#include +#include +#include -#include "LString.h" -/** - This is a stateless class. +namespace lyx { - It has one basic purposes: - To serve as a color-namespace container (the Color enum). - - - */ +/** + * This is a stateless class. + * + * It has one basic purposes: + * To serve as a color-namespace container (the Color enum). + */ /** * \class LColor * @@ -35,7 +43,7 @@ * - A logical color, such as no color, inherit, math */ -class LColor // : public boost::noncopyable { +class LColor // made copyable for same reasons as LyXRC was made copyable. See there for // explanation. { @@ -80,7 +88,16 @@ public: note, /// Background color of notes notebg, - + /// Text color for comments + comment, + /// Background color of comments + commentbg, + /// Text color for greyedout inset + greyedout, + /// Background color of greyedout inset + greyedoutbg, + /// Shaded box background + shadedbg, /// Color for the depth bars in the margin depthbar, @@ -107,8 +124,6 @@ public: mathmacrobg, /// Math inset frame color mathframe, - /// Math cursor color - mathcursor, /// Math line color mathline, @@ -170,56 +185,77 @@ public: ignore }; + /// LColor(); - /// set the given LyX color to the color defined by the X11 name given - void setColor(LColor::color col, string const & x11name); - /// set the given LyX color to the color defined by the X11 name given - bool setColor(string const & lyxname, string const & x11name); + /// + LColor(LColor const &); + /// + ~LColor(); + /// + LColor & operator=(LColor); - /// Get GUI name of color - string const getGUIName(LColor::color c) const; + /** set the given LyX color to the color defined by the X11 name given + * \returns true if successful. + */ + bool setColor(LColor::color col, std::string const & x11name); - /// Get X11 name of color - string const getX11Name(LColor::color c) const; + /** set the given LyX color to the color defined by the X11 + * name given \returns true if successful. A new color entry + * is created if the color is unknown + */ + bool setColor(std::string const & lyxname, std::string const & x11name); - /// Get LaTeX name of color - string const getLaTeXName(LColor::color c) const; + /// Get the GUI name of \c color. + std::string const getGUIName(LColor::color c) const; - /// Get LyX name of color - string const getLyXName(LColor::color c) const; + /// Get the X11 name of \c color. + std::string const getX11Name(LColor::color c) const; - /// get the color from the GUI name - LColor::color getFromGUIName(string const & guiname) const; - /// get the color from the LyX name - LColor::color getFromLyXName(string const & lyxname) const; + /// Get the LaTeX name of \c color. + std::string const getLaTeXName(LColor::color c) const; + + /// Get the LyX name of \c color. + std::string const getLyXName(LColor::color c) const; + + /// \returns the LColor::color associated with the GUI name. + LColor::color getFromGUIName(std::string const & guiname) const; + /// \returns the LColor::color associated with the LyX name. + LColor::color getFromLyXName(std::string const & lyxname) const; + /// \returns the LColor::color associated with the LaTeX name. + LColor::color getFromLaTeXName(std::string const & latexname) const; private: /// - struct information { - /// the name as it appears in the GUI - string guiname; - /// the name used in LaTeX - string latexname; - /// the name for X11 - string x11name; - /// the name for LyX - string lyxname; - }; + void addColor(LColor::color c, std::string const & lyxname) const; + /// + class Pimpl; + /// + boost::scoped_ptr pimpl_; +}; - /// initialise a color entry - void fill(LColor::color col, string const & gui, - string const & latex, string const & x11, - string const & lyx); - /// - typedef std::map InfoTab; - /// the table of color information - InfoTab infotab; +/** \c LColor_color is a wrapper for LColor::color. It can be forward-declared and + * passed as a function argument without having to expose LColor.h. + */ +class LColor_color { + LColor::color val_; +public: + /** The default constructor is nasty, + * but allows us to use LColor_color in STL containers. + */ + LColor_color() : val_(static_cast(-1)) {} + + LColor_color(LColor::color val) : val_(val) {} + operator LColor::color() const{ return val_; } }; + /// the current color definitions extern LColor lcolor; /// the system color definitions extern LColor system_lcolor; + +} // namespace lyx + #endif