Extend commit 25680305095bfcedaa46cb017182544183ab743b to the whole cpu object.
[monky] / src / colours.c
index b50337d..290455e 100644 (file)
@@ -10,7 +10,7 @@
  * Please see COPYING for details
  *
  * Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
- * Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al.
+ * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al.
  *     (see AUTHORS)
  * All rights reserved.
  *
@@ -163,3 +163,30 @@ unsigned long *do_gradient(int width, unsigned long first_colour, unsigned long
        return colours;
 }
 
+#ifdef X11
+long get_x11_color(const char *name)
+{
+       XColor color;
+
+       color.pixel = 0;
+       if (!XParseColor(display, DefaultColormap(display, screen), name, &color)) {
+               /* lets check if it's a hex colour with the # missing in front
+                * if yes, then do something about it */
+               char newname[DEFAULT_TEXT_BUFFER_SIZE];
+
+               newname[0] = '#';
+               strncpy(&newname[1], name, DEFAULT_TEXT_BUFFER_SIZE - 1);
+               /* now lets try again */
+               if (!XParseColor(display, DefaultColormap(display, screen), &newname[0],
+                                       &color)) {
+                       NORM_ERR("can't parse X color '%s'", name);
+                       return 0xFF00FF;
+               }
+       }
+       if (!XAllocColor(display, DefaultColormap(display, screen), &color)) {
+               NORM_ERR("can't allocate X color '%s'", name);
+       }
+
+       return (long) color.pixel;
+}
+#endif