]> git.lyx.org Git - lyx.git/blobdiff - src/LColor.h
Add a Buffer::fully_loaded member function, returning true only when
[lyx.git] / src / LColor.h
index 83a5a3d8e15868ea684fd18003fb30ff84410ba7..40c656db88c65fe42582df6c5fbf49f94a96facc 100644 (file)
@@ -1,19 +1,26 @@
 // -*- 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 <map>
-
-#include "LString.h"
+#include <boost/scoped_ptr.hpp>
+#include <string>
 
 /**
   This is a stateless class.
@@ -35,7 +42,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,6 +87,14 @@ 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,
 
 
                /// Color for the depth bars in the margin
@@ -107,8 +122,6 @@ public:
                mathmacrobg,
                /// Math inset frame color
                mathframe,
-               /// Math cursor color
-               mathcursor,
                /// Math line color
                mathline,
 
@@ -131,8 +144,8 @@ public:
                eolmarker,
                /// Added space colour
                added_space,
-               /// Appendix line color
-               appendixline,
+               /// Appendix marker color
+               appendix,
                /// changebar color
                changebar,
                /// strike-out color
@@ -170,53 +183,78 @@ public:
                ignore
        };
 
+
        ///
        LColor();
+       ///
+       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, string const & x11name);
+       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(string const & lyxname, string const & x11name);
+       bool setColor(std::string const & lyxname, std::string const & x11name);
 
        /// Get GUI name of color
-       string const 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 const 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 const 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 const getLyXName(LColor::color c) const;
+       std::string const getLyXName(LColor::color c) const;
+       /// (string-to-string version not needed as it is identity)
+
+       ///
+       size_t size() const;
 
        /// get the color from the GUI name
-       LColor::color getFromGUIName(string const & guiname) const;
+       LColor::color getFromGUIName(std::string const & guiname) const;
        /// get the color from the LyX name
-       LColor::color getFromLyXName(string const & lyxname) const;
+       LColor::color getFromLyXName(std::string const & lyxname) 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;
-       };
+       struct Pimpl;
+       ///
+       boost::scoped_ptr<Pimpl> 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<LColor::color, information> 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<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