4 * Copyright 1995 Matthias Ettrich
5 * This file is part of LyX, the document processor.
6 * Licence details can be found in the file COPYING.
8 * \author Angus Leeming
10 * Full author contact details are available in file CREDITS
13 /* structs RGBColor and HSVColor to enable simple conversion between
24 /** Given col, fills r, g, b in the range 0-255.
25 The function returns true if successful.
26 It returns false on failure and sets r, g, b to 0. */
27 bool getRGBColor(LColor::color col,
28 unsigned int & r, unsigned int & g, unsigned int & b);
36 HSVColor() : h(0.0), s(0.0), v(0.0) {}
37 HSVColor(double hue, double sat, double val)
38 : h(hue), s(sat), v(val) {}
39 HSVColor(RGBColor const &);
46 RGBColor() : r(0), g(0), b(0) {}
47 RGBColor(unsigned int red, unsigned int green, unsigned int blue)
48 : r(red), g(green), b(blue) {}
49 RGBColor(HSVColor const &);
52 struct NamedColor : public RGBColor {
54 NamedColor() : RGBColor() {}
55 NamedColor(string const & n, RGBColor const & c)
56 : RGBColor(c), name(n) {}
57 RGBColor const & color() const { return *this; }
58 string const & getname() const { return name; }
62 bool operator==(RGBColor const & c1, RGBColor const & c2)
64 return (c1.r == c2.r && c1.g == c2.g && c1.b == c2.b);
69 bool operator!=(RGBColor const & c1, RGBColor const & c2)