summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Color.cc21
-rw-r--r--src/Color.hh6
2 files changed, 20 insertions, 7 deletions
diff --git a/src/Color.cc b/src/Color.cc
index d8b75b2..e848def 100644
--- a/src/Color.cc
+++ b/src/Color.cc
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: Color.cc,v 1.2 2002/09/14 13:49:51 fluxgen Exp $ 22// $Id: Color.cc,v 1.3 2002/09/20 13:02:39 fluxgen Exp $
23 23
24#include "Color.hh" 24#include "Color.hh"
25 25
@@ -57,7 +57,8 @@ m_screen(screen) {
57} 57}
58 58
59Color::Color(const char *color_string, int screen): 59Color::Color(const char *color_string, int screen):
60m_allocated(false) { 60m_allocated(false),
61m_screen(screen) {
61 setFromString(color_string, screen); 62 setFromString(color_string, screen);
62} 63}
63 64
@@ -94,10 +95,16 @@ bool Color::setFromString(const char *color_string, int screen) {
94 return true; 95 return true;
95} 96}
96 97
98/*
97Color &Color::Color::operator = (const Color &col_copy) { 99Color &Color::Color::operator = (const Color &col_copy) {
100 // check for aliasing
101 if (this == &col_copy)
102 return *this;
103
98 copy(col_copy); 104 copy(col_copy);
99 return *this; 105 return *this;
100} 106}
107*/
101 108
102void Color::free() { 109void Color::free() {
103 if (isAllocated()) { 110 if (isAllocated()) {
@@ -113,9 +120,11 @@ void Color::free() {
113void Color::copy(const Color &col_copy) { 120void Color::copy(const Color &col_copy) {
114 if (!col_copy.isAllocated()) { 121 if (!col_copy.isAllocated()) {
115 free(); 122 free();
123 setRGB(col_copy.red(), col_copy.green(), col_copy.blue());
124 setPixel(col_copy.pixel());
116 return; 125 return;
117 } 126 }
118 127
119 free(); 128 free();
120 129
121 allocate(col_copy.red(), 130 allocate(col_copy.red(),
@@ -131,8 +140,9 @@ void Color::allocate(unsigned char red, unsigned char green, unsigned char blue,
131 XColor color; 140 XColor color;
132 // fill xcolor structure 141 // fill xcolor structure
133 color.red = red; 142 color.red = red;
143 color.green = green;
134 color.blue = blue; 144 color.blue = blue;
135 color.green = green; 145
136 146
137 if (!XAllocColor(disp, DefaultColormap(disp, screen), &color)) { 147 if (!XAllocColor(disp, DefaultColormap(disp, screen), &color)) {
138 cerr<<"FbTk::Color: Allocation error."<<endl; 148 cerr<<"FbTk::Color: Allocation error."<<endl;
@@ -143,6 +153,8 @@ void Color::allocate(unsigned char red, unsigned char green, unsigned char blue,
143 setPixel(color.pixel); 153 setPixel(color.pixel);
144 setAllocated(true); 154 setAllocated(true);
145 } 155 }
156
157 m_screen = screen;
146} 158}
147 159
148void Color::setRGB(unsigned char red, unsigned char green, unsigned char blue) { 160void Color::setRGB(unsigned char red, unsigned char green, unsigned char blue) {
@@ -150,4 +162,5 @@ void Color::setRGB(unsigned char red, unsigned char green, unsigned char blue) {
150 m_green = green; 162 m_green = green;
151 m_blue = blue; 163 m_blue = blue;
152} 164}
165
153}; 166};
diff --git a/src/Color.hh b/src/Color.hh
index bec7cc9..b26c575 100644
--- a/src/Color.hh
+++ b/src/Color.hh
@@ -22,7 +22,7 @@
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.2 2002/09/14 13:49:09 fluxgen Exp $ 25// $Id: Color.hh,v 1.3 2002/09/20 13:02:40 fluxgen Exp $
26 26
27#ifndef FBTK_COLOR_HH 27#ifndef FBTK_COLOR_HH
28#define FBTK_COLOR_HH 28#define FBTK_COLOR_HH
@@ -45,8 +45,8 @@ public:
45 bool setFromString(const char *color_string, int screen); 45 bool setFromString(const char *color_string, int screen);
46 /// TODO don't like this 46 /// TODO don't like this
47 void setPixel(unsigned long pixel) { m_pixel = pixel; } 47 void setPixel(unsigned long pixel) { m_pixel = pixel; }
48 48 // TODO
49 Color &operator = (const Color &col_copy); 49 //Color &operator = (const Color &col_copy);
50 50
51 bool isAllocated() const { return m_allocated; } 51 bool isAllocated() const { return m_allocated; }
52 unsigned char red() const { return m_red; } 52 unsigned char red() const { return m_red; }