summaryrefslogtreecommitdiff
path: root/src/FbTk
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbTk')
-rw-r--r--src/FbTk/Color.cc17
-rw-r--r--src/FbTk/Color.hh5
2 files changed, 17 insertions, 5 deletions
diff --git a/src/FbTk/Color.cc b/src/FbTk/Color.cc
index 7d050d3..dd80bd3 100644
--- a/src/FbTk/Color.cc
+++ b/src/FbTk/Color.cc
@@ -31,11 +31,9 @@
31using namespace std; 31using namespace std;
32 32
33namespace { 33namespace {
34unsigned char maxValue(unsigned short colval) {
35 if (colval == 65535)
36 return 0xFF;
37 34
38 return static_cast<unsigned char>(colval/0xFF); 35inline unsigned char maxValue(unsigned short colval) {
36 return colval == 65535 ? 0xFF : static_cast<unsigned char>(colval/0xFF);
39} 37}
40 38
41}; 39};
@@ -106,6 +104,17 @@ bool Color::setFromString(const char *color_string, int screen) {
106 return true; 104 return true;
107} 105}
108 106
107bool Color::validColorString(const char *color_string, int screen) {
108 XColor color;
109 Display *disp = App::instance()->display();
110 Colormap colm = DefaultColormap(disp, screen);
111 // trim white space
112 string color_string_tmp = color_string;
113 StringUtil::removeFirstWhitespace(color_string_tmp);
114 StringUtil::removeTrailingWhitespace(color_string_tmp);
115
116 return XParseColor(disp, colm, color_string_tmp.c_str(), &color) != 0;
117}
109 118
110Color &Color::operator = (const Color &col_copy) { 119Color &Color::operator = (const Color &col_copy) {
111 // check for aliasing 120 // check for aliasing
diff --git a/src/FbTk/Color.hh b/src/FbTk/Color.hh
index b17dd95..7536d89 100644
--- a/src/FbTk/Color.hh
+++ b/src/FbTk/Color.hh
@@ -54,7 +54,10 @@ public:
54 inline unsigned short green() const { return m_green; } 54 inline unsigned short green() const { return m_green; }
55 inline unsigned short blue() const { return m_blue; } 55 inline unsigned short blue() const { return m_blue; }
56 inline unsigned long pixel() const { return m_pixel; } 56 inline unsigned long pixel() const { return m_pixel; }
57 57
58 /// @return true if the color name in color_string is resolved, else false
59 static bool validColorString(const char *color_string, int screen);
60
58private: 61private:
59 void free(); 62 void free();
60 void copy(const Color &col); 63 void copy(const Color &col);