1 /*
2 gc.c
3
4 Mike Hufnagel & Bill Kendrick
5 Last modified: 11/18/95
6 */
7
8 #include <X11/Xlib.h>
9 #include "gc.h"
10
CreateGC(Display * display,Drawable drawable,unsigned long forecolor,unsigned long backcolor)11 GC CreateGC(Display *display, Drawable drawable, unsigned long forecolor,
12 unsigned long backcolor)
13 {
14 XGCValues xgcvalues;
15 GC gc;
16
17 xgcvalues.foreground = forecolor;
18 xgcvalues.background = backcolor;
19 gc = XCreateGC(display,drawable,(GCForeground | GCBackground),
20 &xgcvalues);
21
22 return(gc);
23 }
24
CreateClearGC(Display * display,Drawable drawable)25 GC CreateClearGC(Display *display, Drawable drawable)
26 {
27 XGCValues xgcvalues;
28 GC gc;
29
30 xgcvalues.function = GXclear;
31 xgcvalues.fill_style = FillSolid;
32 gc = XCreateGC(display, drawable, (GCFunction), &xgcvalues);
33
34 return(gc);
35 }
36
CreateXorGC(Display * display,Drawable drawable,unsigned long forecolor,unsigned long backcolor)37 GC CreateXorGC(Display *display, Drawable drawable, unsigned long forecolor,
38 unsigned long backcolor)
39 {
40 XGCValues xgcvalues;
41 GC gc;
42
43 xgcvalues.foreground = forecolor ^ backcolor;
44 xgcvalues.background = 0;
45 xgcvalues.function = GXxor;
46
47 gc = XCreateGC(display,drawable,(GCForeground | GCBackground | GCFunction),
48 &xgcvalues);
49
50 return (gc);
51 }
52
CreateAndGC(Display * display,Drawable drawable,unsigned long forecolor,unsigned long backcolor)53 GC CreateAndGC(Display *display, Drawable drawable, unsigned long forecolor,
54 unsigned long backcolor)
55 {
56 XGCValues xgcvalues;
57 GC gc;
58
59 xgcvalues.foreground = forecolor;
60 xgcvalues.background = backcolor;
61 xgcvalues.function = GXand;
62
63 gc = XCreateGC(display,drawable,(GCForeground | GCBackground | GCFunction),
64 &xgcvalues);
65
66 return (gc);
67 }
68
69
CreateAndInvertedGC(Display * display,Drawable drawable,unsigned long forecolor,unsigned long backcolor)70 GC CreateAndInvertedGC(Display *display, Drawable drawable,
71 unsigned long forecolor, unsigned long backcolor)
72 {
73 XGCValues xgcvalues;
74 GC gc;
75
76 xgcvalues.foreground = forecolor;
77 xgcvalues.background = backcolor;
78 xgcvalues.function = GXandInverted;
79
80 gc = XCreateGC(display,drawable,(GCForeground | GCBackground | GCFunction),
81 &xgcvalues);
82
83 return (gc);
84 }
85
CreateOrGC(Display * display,Drawable drawable,unsigned long forecolor,unsigned long backcolor)86 GC CreateOrGC(Display *display, Drawable drawable, unsigned long forecolor,
87 unsigned long backcolor)
88 {
89 XGCValues xgcvalues;
90 GC gc;
91
92 xgcvalues.foreground = forecolor;
93 xgcvalues.background = backcolor;
94 xgcvalues.function = GXor;
95
96 gc = XCreateGC(display,drawable,(GCForeground | GCBackground | GCFunction),
97 &xgcvalues);
98
99 return (gc);
100 }
101