X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLColor.h;h=40c656db88c65fe42582df6c5fbf49f94a96facc;hb=78046794ccfce3a20751e00b35295c290853afd6;hp=685d0ac518b77cce27cac2bdc784c7b74d238a1a;hpb=85798535a19919e82cc94a177a8414c542a9c5bf;p=lyx.git diff --git a/src/LColor.h b/src/LColor.h index 685d0ac518..40c656db88 100644 --- a/src/LColor.h +++ b/src/LColor.h @@ -1,40 +1,51 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1998-2000 The LyX Team +/** + * \file LColor.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \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 -#ifdef __GNUG__ -#pragma interface -#endif - -#include - -#include "LString.h" - -using std::map; +#include +#include /** - This is a stateless class. + This is a stateless class. It has one basic purposes: To serve as a color-namespace container (the Color enum). - - A color can be one of the following kinds: - - A real, predefined color, such as black, white, red or green. - - A logical color, such as no color, inherit, math */ - -class LColor { +/** + * \class LColor + * + * A class holding color definitions and associated names for + * LaTeX, X11, the GUI, and LyX internally. + * + * A color can be one of the following kinds: + * + * - A real, predefined color, such as black, white, red or green. + * - A logical color, such as no color, inherit, math + */ + +class LColor +// made copyable for same reasons as LyXRC was made copyable. See there for +// explanation. +{ public: /// Names of colors, including all logical colors enum color { @@ -57,8 +68,10 @@ public: /// yellow, - /// Needed interface colors + // Needed interface colors + /// Cursor color + cursor, /// Background color background, /// Foreground color @@ -67,16 +80,27 @@ public: selection, /// Text color in LaTeX mode latex, - /// Titles color of floats - floats, + /// The color used for previews + preview, /// Text color for notes note, /// Background color of notes notebg, - /// Frame color for notes - noteframe, + /// Text color for comments + comment, + /// Background color of comments + commentbg, + /// Text color for greyedout inset + greyedout, + /// Background color of greyedout inset + greyedoutbg, + + /// Color for the depth bars in the margin + depthbar, + /// Color for marking foreign language words + language, /// Text color for command insets command, @@ -85,42 +109,30 @@ public: /// Frame color for command insets commandframe, - /// Text color for accents we can't handle nicely - accent, - /// - accentbg, - /// - accentframe, - - /// Minipage line color - minipageline, - /// Special chars text color special, + /// Graphics inset background color + graphicsbg, /// Math inset text color math, /// Math inset background color mathbg, + /// Macro math inset background color + mathmacrobg, /// Math inset frame color mathframe, - /// Math cursor color - mathcursor, /// Math line color mathline, - /// Footnote marker text - footnote, - /// Footnote marker background color - footnotebg, - /// Footnote line color - footnoteframe, - - /// ERT marker text - ert, - - /// Text color for inset marker - inset, + /// caption frame color + captionframe, + + /// collapsable insets text + collapsable, + /// collapsable insets frame + collapsableframe, + /// Inset marker background color insetbg, /// Inset marker frame color @@ -130,19 +142,28 @@ public: error, /// EOL marker color eolmarker, - /// Appendix line color - appendixline, - /// VFill line color - vfillline, + /// Added space colour + added_space, + /// Appendix marker color + appendix, + /// changebar color + changebar, + /// strike-out color + strikeout, + /// added text color + newtext, /// Top and bottom line color topline, /// Table line color - tableline, + tabularline, + /// Table line color + tabularonoffline, /// Bottom area color bottomarea, /// Page break color pagebreak, + // FIXME: why are the next four separate ?? /// Color used for top of boxes top, /// Color used for bottom of boxes @@ -154,7 +175,7 @@ public: /// Color used for bottom background buttonbg, - /// Logical attributes + // Logical attributes /// Color is inherited inherit, @@ -162,46 +183,81 @@ public: ignore }; + /// LColor(); /// - void setColor(LColor::color col, string const & x11name); + LColor(LColor const &); + /// + ~LColor(); + /// + void operator=(LColor const &); + + /// + void fill(LColor::color c, + std::string const & lyxname, + std::string const & x11name = std::string(), + std::string const & latexname = std::string(), + std::string const & guiname = std::string()); + + /// set the given LyX color to the color defined by the X11 name given + void setColor(LColor::color col, std::string const & x11name); + /// set the given LyX color to the color defined by the X11 name given + bool setColor(std::string const & lyxname, std::string const & x11name); + /// Get GUI name of color - string getGUIName(LColor::color c) const; + std::string const getGUIName(LColor::color c) const; + /// + std::string const getGUIName(std::string const & s) const; /// Get X11 name of color - string getX11Name(LColor::color c) const; + std::string const getX11Name(LColor::color c) const; + /// + std::string const getX11Name(std::string const & s) const; /// Get LaTeX name of color - string getLaTeXName(LColor::color c) const; + std::string const getLaTeXName(LColor::color c) const; + /// + std::string const getLaTeXName(std::string const & s) const; /// Get LyX name of color - string getLyXName(LColor::color c) const; - /// - LColor::color getFromGUIName(string const & guiname) const; + std::string const getLyXName(LColor::color c) const; + /// (string-to-string version not needed as it is identity) + /// - LColor::color getFromLyXName(string const & lyxname) const; + size_t size() const; + + /// get the color from the GUI name + LColor::color getFromGUIName(std::string const & guiname) const; + /// get the color from the LyX name + LColor::color getFromLyXName(std::string const & lyxname) const; private: /// - struct information { - string guiname; - string latexname; - string x11name; - string lyxname; - }; - + struct Pimpl; /// - void fill(LColor::color col, string const & gui, - string const & latex, string const & x11, - string const & lyx); + boost::scoped_ptr pimpl_; +}; - /// - //typedef map > InfoTab; - typedef map InfoTab; - 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; #endif