]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/Color.h
Change glob() API to accept a dir parameter.
[lyx.git] / src / frontends / xforms / Color.h
index 48b1d88599a829ec305b2a6d1a609877d18ae87f..498f3e9e9ba3c5aa0c2b4a47598461b8471f93b6 100644 (file)
@@ -1,24 +1,37 @@
 // -*- C++ -*-
-/* This file is part of
- * ======================================================
- * 
- *           LyX, The Document Processor
- *      
- *         Copyright 1995 Matthias Ettrich
- *          Copyright 1995-2001 The LyX Team.
+/**
+ * \file Color.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *======================================================*/
+ * \author Angus Leeming
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+/* structs RGBColor and HSVColor to enable simple conversion between
+ * color spaces.
+ */
 
 #ifndef COLOR_H
 #define COLOR_H
 
-#ifdef __GNUG_
-#pragma interface
-#endif
+#include <string>
 
-#include "LString.h"
+class LColor_color;
+
+namespace lyx {
+namespace frontend {
+
+/** Given col, fills r, g, b in the range 0-255.
+    The function returns true if successful.
+    It returns false on failure and sets r, g, b to 0. */
+bool getRGBColor(LColor_color col,
+                unsigned int & r, unsigned int & g, unsigned int & b);
 
 struct RGBColor;
+/// returns a string of form #rrggbb, given an RGBColor struct
+std::string const X11hexname(RGBColor const & col);
 
 struct HSVColor {
        double h;
@@ -31,22 +44,25 @@ struct HSVColor {
 };
 
 struct RGBColor {
-       int r;
-       int g;
-       int b;
+       unsigned int r;
+       unsigned int g;
+       unsigned int b;
        RGBColor() : r(0), g(0), b(0) {}
-       RGBColor(int red, int green, int blue)
+       RGBColor(unsigned int red, unsigned int green, unsigned int blue)
                : r(red), g(green), b(blue) {}
        RGBColor(HSVColor const &);
+       /// \param x11hexname is of the form "#ffa071"
+       RGBColor(std::string const & x11hexname);
 };
 
 struct NamedColor : public RGBColor {
-       string name;
+       std::string lyxname;
+       std::string guiname;
        NamedColor() : RGBColor() {}
-       NamedColor(string const & n, RGBColor const & c )
-               : RGBColor(c), name(n) {}
+       NamedColor(std::string const & lyx, std::string const & gui,
+                  RGBColor const & c)
+               : RGBColor(c), lyxname(lyx), guiname(gui) {}
        RGBColor const & color() const { return *this; }
-       string const & getname() const { return name; }
 };
 
 inline
@@ -62,4 +78,7 @@ bool operator!=(RGBColor const & c1, RGBColor const & c2)
        return !(c1 == c2);
 }
 
+} // namespace frontend
+} // namespace lyx
+
 #endif