CTWM
Toggle main menu visibility
Loading...
Searching...
No Matches
/usr/src/RPM/BUILD/ctwm-4.1.0/gc.c
Go to the documentation of this file.
1
/*
2
* Copyright 1988 by Evans & Sutherland Computer Corporation,
3
* Salt Lake City, Utah
4
* Portions Copyright 1989 by the Massachusetts Institute of Technology
5
* Cambridge, Massachusetts
6
*
7
* Copyright 1992 Claude Lecommandeur.
8
*/
9
10
/**********************************************************************
11
*
12
* $XConsortium: gc.c,v 1.22 91/01/09 17:13:12 rws Exp $
13
*
14
* Open the fonts and create the GCs
15
*
16
* 31-Mar-88 Tom LaStrange Initial Version.
17
*
18
* Do the necessary modification to be integrated in ctwm.
19
* Can no longer be used for the standard twm.
20
*
21
* 22-April-92 Claude Lecommandeur.
22
*
23
*
24
**********************************************************************/
25
26
#include "
ctwm.h
"
27
28
#include <stdio.h>
29
30
#include "gram.tab.h"
31
#include "
screen.h
"
32
#include "
gc.h
"
33
34
/***********************************************************************
35
*
36
* Procedure:
37
* CreateGCs - open fonts and create all the needed GC's. I only
38
* want to do this once, hence the first_time flag.
39
*
40
***********************************************************************
41
*/
42
43
void
CreateGCs
(
void
)
44
{
45
static
ScreenInfo
*prevScr = NULL;
46
XGCValues gcv;
47
unsigned
long
gcm;
48
static
unsigned
char
greypattern [] = {0x0f, 0x05, 0x0f, 0x0a};
49
Pixmap greypixmap;
50
static
char
dashlist [2] = {1, 1};
51
52
if
(!
Scr
->FirstTime || prevScr ==
Scr
) {
53
return
;
54
}
55
56
prevScr =
Scr
;
57
58
/* create GC's */
59
60
gcm = 0;
61
gcm |= GCFunction;
62
gcv.function = GXxor;
63
gcm |= GCLineWidth;
64
gcv.line_width = 0;
65
gcm |= GCForeground;
66
gcv.foreground =
Scr
->XORvalue;
67
gcm |= GCSubwindowMode;
68
gcv.subwindow_mode = IncludeInferiors;
69
70
Scr
->DrawGC = XCreateGC(
dpy
,
Scr
->Root, gcm, &gcv);
71
72
gcm = 0;
73
gcm |= GCForeground;
74
gcv.foreground =
Scr
->MenuC.fore;
75
gcm |= GCBackground;
76
gcv.background =
Scr
->MenuC.back;
77
78
Scr
->MenuGC = XCreateGC(
dpy
,
Scr
->Root, gcm, &gcv);
79
80
gcm = 0;
81
gcm |= GCPlaneMask;
82
gcv.plane_mask = AllPlanes;
83
/*
84
* Prevent GraphicsExpose and NoExpose events. We'd only get NoExpose
85
* events anyway; they cause BadWindow errors from XGetWindowAttributes
86
* call in FindScreenInfo (events.c) (since drawable is a pixmap).
87
*/
88
gcm |= GCGraphicsExposures;
89
gcv.graphics_exposures = False;
90
gcm |= GCLineWidth;
91
gcv.line_width = 0;
92
93
Scr
->NormalGC = XCreateGC(
dpy
,
Scr
->Root, gcm, &gcv);
94
95
greypixmap = XCreatePixmapFromBitmapData(
dpy
,
Scr
->Root,
96
(
char
*) greypattern, 4, 4, 1, 0, 1);
97
98
if
(
Scr
->Monochrome != COLOR) {
99
gcm = 0;
100
gcm |= GCStipple;
101
gcv.stipple = greypixmap;
102
gcm |= GCFillStyle;
103
gcv.fill_style = FillOpaqueStippled;
104
gcm |= GCForeground;
105
gcv.foreground =
Scr
->Black;
106
gcm |= GCBackground;
107
gcv.background =
Scr
->White;
108
Scr
->BorderGC = XCreateGC(
dpy
,
Scr
->Root, gcm, &gcv);
109
XSetDashes(
dpy
,
Scr
->BorderGC, 1, dashlist, 2);
110
}
111
else
if
(
Scr
->BeNiceToColormap) {
112
gcm = 0;
113
gcm |= GCLineStyle;
114
gcv.line_style = LineDoubleDash;
115
Scr
->BorderGC = XCreateGC(
dpy
,
Scr
->Root, gcm, &gcv);
116
XSetDashes(
dpy
,
Scr
->BorderGC, 0, dashlist, 2);
117
}
118
else
{
119
Scr
->BorderGC = XCreateGC(
dpy
,
Scr
->Root, 0, NULL);
120
}
121
}
ctwm.h
dpy
Display * dpy
Definition
ctwm_main.c:84
Scr
#define Scr
CreateGCs
void CreateGCs(void)
Definition
gc.c:43
gc.h
screen.h
ScreenInfo
Info and control for each X Screen we control.
Definition
screen.h:96
gc.c
Generated by
1.18.0