1 /*
2    color.c
3 
4    Bill Kendrick & Mike Hufnagel
5    Last modified: 11/18/95 (combined color.c with colormap.c)
6 */
7 
8 #include <X11/Xlib.h>
9 #include <X11/Xutil.h>
10 #include "color.h"
11 
AllocNamedColor(Display * display,Colormap colormap,char * colorname,unsigned long default_color)12 unsigned long AllocNamedColor(Display *display, Colormap colormap,
13                               char* colorname, unsigned long default_color)
14 {
15   XColor hardwarecolor,exactcolor;
16   unsigned long color;
17   int status;
18 
19   status = XAllocNamedColor(display,colormap,colorname,&hardwarecolor,
20 			  &exactcolor);
21   if (status != 0)
22     color = hardwarecolor.pixel;
23   else
24     color = default_color;
25 
26   return(color);
27 }
28 
SetUpColormap(Display * display,int screen,Window window,Visual * visual,Colormap * colormap)29 int SetUpColormap(Display *display, int screen, Window window, Visual *visual,
30 		  Colormap *colormap)
31 {
32   int status = False;
33 
34   if (visual == DefaultVisual(display,screen))
35     {
36       *colormap = DefaultColormap(display,screen);
37       status = True;
38     }
39   else
40     {
41       *colormap = XCreateColormap(display,window,visual,AllocNone);
42       if (*colormap != None)
43         {
44           XSetWindowColormap(display,window,*colormap);
45           status = True;
46         }
47       else
48         *colormap = DefaultColormap(display,screen);
49     }
50 
51   return(status);
52 }
53 
54