]> git.lyx.org Git - lyx.git/blobdiff - src/LColor.h
* languages: use nb_NO instead of no_NO for norwegian (bug 2850).
[lyx.git] / src / LColor.h
index 6768a0615e7f442dfc47dc349d6d1ae1dc342f31..c6bf6cebf7c47a754bd67411c3643b61157cd712 100644 (file)
@@ -1,27 +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 "LString.h"
 #include <boost/scoped_ptr.hpp>
+#include <string>
 
-/**
-  This is a stateless class.
 
-  It has one basic purposes:
-  To serve as a color-namespace container (the Color enum).
+namespace lyx {
 
-
-  */
+/**
+ * This is a stateless class.
+ *
+ * It has one basic purposes:
+ * To serve as a color-namespace container (the Color enum).
+ */
 /**
  * \class LColor
  *
@@ -34,7 +43,7 @@
  * - A logical color, such as no color, inherit, math
  */
 
-class LColor 
+class LColor
 // made copyable for same reasons as LyXRC was made copyable. See there for
 // explanation.
 {
@@ -87,7 +96,8 @@ public:
                greyedout,
                /// Background color of greyedout inset
                greyedoutbg,
-
+               /// Shaded box background
+               shadedbg,
 
                /// Color for the depth bars in the margin
                depthbar,
@@ -175,7 +185,7 @@ public:
                ignore
        };
 
-       
+
        ///
        LColor();
        ///
@@ -183,56 +193,69 @@ public:
        ///
        ~LColor();
        ///
-       void operator=(LColor const &);
+       LColor & operator=(LColor);
 
-       ///
-       void LColor::fill(LColor::color c, 
-                       string const & lyxname,
-                       string const & x11name = string(),
-                       string const & latexname = string(), 
-                       string const & guiname = string()); 
-
-       /// 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);
-
-       /// Get GUI name of color
-       string const getGUIName(LColor::color c) const;
-       ///
-       string const getGUIName(string const & s) 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;
-       ///
-       string const getX11Name(string const & s) 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;
-       ///
-       string const getLaTeXName(string const & s) 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;
-       /// (string-to-string version not needed as it is identity)
+       /// Get the X11 name of \c color.
+       std::string const getX11Name(LColor::color c) const;
 
-       ///
-       size_t size() const;
+       /// Get the LaTeX name of \c color.
+       std::string const getLaTeXName(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 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 Pimpl;
+       void addColor(LColor::color c, std::string const & lyxname) const;
+       ///
+       class Pimpl;
        ///
        boost::scoped_ptr<Pimpl> pimpl_;
 };
 
+
+/** \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<LColor::color>(-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