]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/Color.h
sourcedoc-friendly files.
[lyx.git] / src / frontends / xforms / Color.h
1 // -*- C++ -*-
2 /**
3  * \file Color.h
4  * Copyright 1995 Matthias Ettrich
5  * Copyright 1995-2002 The LyX Team.
6  * Read the file COPYING
7  *
8  * \author Angus Leeming, a.leeming@ic.ac.uk
9  */
10
11 /* structs RGBColor and HSVColor to enable simple conversion between
12  * color spaces.
13  */
14
15 #ifndef COLOR_H
16 #define COLOR_H
17
18 #ifdef __GNUG_
19 #pragma interface
20 #endif
21
22 #include "LString.h"
23
24 struct RGBColor;
25
26 struct HSVColor {
27         double h;
28         double s;
29         double v;
30         HSVColor() : h(0.0), s(0.0), v(0.0) {}
31         HSVColor(double hue, double sat, double val)
32                 : h(hue), s(sat), v(val) {}
33         HSVColor(RGBColor const &);
34 };
35
36 struct RGBColor {
37         int r;
38         int g;
39         int b;
40         RGBColor() : r(0), g(0), b(0) {}
41         RGBColor(int red, int green, int blue)
42                 : r(red), g(green), b(blue) {}
43         RGBColor(HSVColor const &);
44 };
45
46 struct NamedColor : public RGBColor {
47         string name;
48         NamedColor() : RGBColor() {}
49         NamedColor(string const & n, RGBColor const & c)
50                 : RGBColor(c), name(n) {}
51         RGBColor const & color() const { return *this; }
52         string const & getname() const { return name; }
53 };
54
55 inline
56 bool operator==(RGBColor const & c1, RGBColor const & c2)
57 {
58         return (c1.r == c2.r && c1.g == c2.g && c1.b == c2.b);
59 }
60
61
62 inline
63 bool operator!=(RGBColor const & c1, RGBColor const & c2)
64 {
65         return !(c1 == c2);
66 }
67
68 #endif