summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Color.hh42
1 files changed, 28 insertions, 14 deletions
diff --git a/src/Color.hh b/src/Color.hh
index 9c457eb..bec7cc9 100644
--- a/src/Color.hh
+++ b/src/Color.hh
@@ -1,5 +1,5 @@
1// Color.hh for Fluxbox Window Manager 1// Color.hh for Fluxbox Window Manager
2// Copyright (c) 2002 Henrik Kinnunen (fluxbox@linuxmail.org) 2// Copyright (c) 2002 Henrik Kinnunen (fluxgen@users.sourceforge.net)
3// 3//
4// from Image.hh for Blackbox - an X11 Window manager 4// from Image.hh for Blackbox - an X11 Window manager
5// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) 5// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
@@ -22,36 +22,50 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Color.hh,v 1.1 2002/07/23 16:23:15 fluxgen Exp $ 25// $Id: Color.hh,v 1.2 2002/09/14 13:49:09 fluxgen Exp $
26 26
27#ifndef FBTK_COLOR_HH 27#ifndef FBTK_COLOR_HH
28#define FBTK_COLOR_HH 28#define FBTK_COLOR_HH
29 29
30#include "NotCopyable.hh"
31
30namespace FbTk { 32namespace FbTk {
31/** 33/**
32 Holds rgb color and pixel value 34 Holds rgb color and pixel value
33*/ 35*/
34class Color { 36class Color {
35public: 37public:
36 Color(unsigned char red = 0, unsigned char green = 0, unsigned char blue = 0): 38 Color();
37 m_red(red), m_green(green), m_blue(blue), m_pixel(0), m_allocated(false) { } 39 explicit Color(unsigned long pixel);
40 Color(const Color &col_copy);
41 Color(unsigned char red, unsigned char green, unsigned char blue, int screen);
42 Color(const char *color_string, int screen);
43 ~Color();
38 44
45 bool setFromString(const char *color_string, int screen);
46 /// TODO don't like this
47 void setPixel(unsigned long pixel) { m_pixel = pixel; }
48
49 Color &operator = (const Color &col_copy);
50
51 bool isAllocated() const { return m_allocated; }
52 unsigned char red() const { return m_red; }
53 unsigned char green() const { return m_green; }
54 unsigned char blue() const { return m_blue; }
55 unsigned long pixel() const { return m_pixel; }
56
57private:
58 void free();
59 void copy(const Color &col);
60 void allocate(unsigned char red, unsigned char green, unsigned char blue, int screen);
39 inline void setAllocated(bool a) { m_allocated = a; } 61 inline void setAllocated(bool a) { m_allocated = a; }
40 inline void setRGB(char red, char green, char blue) { m_red = red; m_green = green; m_blue = blue; } 62 void setRGB(unsigned char red, unsigned char green, unsigned char blue);
41 inline void setPixel(unsigned long pixel) { m_pixel = pixel; }
42
43 inline bool isAllocated() const { return m_allocated; }
44 63
45 inline unsigned char red() const { return m_red; }
46 inline unsigned char green() const { return m_green; }
47 inline unsigned char blue() const { return m_blue; }
48 64
49 inline unsigned long pixel() const { return m_pixel; }
50
51private:
52 unsigned char m_red, m_green, m_blue; 65 unsigned char m_red, m_green, m_blue;
53 unsigned long m_pixel; 66 unsigned long m_pixel;
54 bool m_allocated; 67 bool m_allocated;
68 int m_screen;
55}; 69};
56 70
57}; // end namespace FbTk 71}; // end namespace FbTk