Blob


1 /* Copyright (c) 1994-1996 David Hogan, see README for licence details */
2 #include <stdio.h>
3 #include <X11/X.h>
4 #include <X11/Xlib.h>
5 #include <X11/Xutil.h>
6 #include "dat.h"
7 #include "fns.h"
9 typedef struct {
10 int width;
11 int hot[2];
12 unsigned char mask[64];
13 unsigned char fore[64];
14 } Cursordata;
16 Cursordata bigarrow = {
17 16,
18 {0, 0},
19 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x3F,
20 0xFF, 0x0F, 0xFF, 0x0F, 0xFF, 0x1F, 0xFF, 0x3F,
21 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x3F,
22 0xCF, 0x1F, 0x8F, 0x0F, 0x07, 0x07, 0x03, 0x02,
23 },
24 { 0x00, 0x00, 0xFE, 0x7F, 0xFE, 0x3F, 0xFE, 0x0F,
25 0xFE, 0x07, 0xFE, 0x07, 0xFE, 0x0F, 0xFE, 0x1F,
26 0xFE, 0x3F, 0xFE, 0x7F, 0xFE, 0x3F, 0xCE, 0x1F,
27 0x86, 0x0F, 0x06, 0x07, 0x02, 0x02, 0x00, 0x00,
28 }
29 };
31 Cursordata sweep0data = {
32 16,
33 {7, 7},
34 {0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03,
35 0xC0, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF,
36 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x03,
37 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03},
38 {0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
39 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xFE, 0x7F,
40 0xFE, 0x7F, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
41 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00}
42 };
44 Cursordata boxcursdata = {
45 16,
46 {7, 7},
47 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
48 0xFF, 0xFF, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8,
49 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0xFF, 0xFF,
50 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
51 {0x00, 0x00, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F,
52 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70,
53 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70,
54 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0x00, 0x00}
55 };
57 Cursordata sightdata = {
58 16,
59 {7, 7},
60 {0xF8, 0x1F, 0xFC, 0x3F, 0xFE, 0x7F, 0xDF, 0xFB,
61 0xCF, 0xF3, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF,
62 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xE3, 0xCF, 0xF3,
63 0xDF, 0x7B, 0xFE, 0x7F, 0xFC, 0x3F, 0xF8, 0x1F,},
64 {0x00, 0x00, 0xF0, 0x0F, 0x8C, 0x31, 0x84, 0x21,
65 0x82, 0x41, 0x82, 0x41, 0x82, 0x41, 0xFE, 0x7F,
66 0xFE, 0x7F, 0x82, 0x41, 0x82, 0x41, 0x82, 0x41,
67 0x84, 0x21, 0x8C, 0x31, 0xF0, 0x0F, 0x00, 0x00,}
68 };
70 Cursordata arrowdata = {
71 16,
72 {1, 1},
73 {0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x03, 0xFF, 0x00,
74 0xFF, 0x00, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0x07,
75 0xE7, 0x0F, 0xC7, 0x1F, 0x83, 0x3F, 0x00, 0x7F,
76 0x00, 0xFE, 0x00, 0x7C, 0x00, 0x38, 0x00, 0x10,},
77 {0x00, 0x00, 0xFE, 0x03, 0xFE, 0x00, 0x3E, 0x00,
78 0x7E, 0x00, 0xFE, 0x00, 0xF6, 0x01, 0xE6, 0x03,
79 0xC2, 0x07, 0x82, 0x0F, 0x00, 0x1F, 0x00, 0x3E,
80 0x00, 0x7C, 0x00, 0x38, 0x00, 0x10, 0x00, 0x00,}
81 };
83 Cursordata whitearrow = {
84 16,
85 {0, 0},
86 {0xFF, 0x07, 0xFF, 0x07, 0xFF, 0x03, 0xFF, 0x00,
87 0xFF, 0x00, 0xFF, 0x01, 0xFF, 0x03, 0xFF, 0x07,
88 0xE7, 0x0F, 0xC7, 0x1F, 0x83, 0x3F, 0x00, 0x7F,
89 0x00, 0xFE, 0x00, 0x7C, 0x00, 0x38, 0x00, 0x10,},
90 {0xFF, 0x07, 0xFF, 0x07, 0x83, 0x03, 0xC3, 0x00,
91 0xC3, 0x00, 0x83, 0x01, 0x1B, 0x03, 0x3F, 0x06,
92 0x67, 0x0C, 0xC7, 0x18, 0x83, 0x31, 0x00, 0x63,
93 0x00, 0xC6, 0x00, 0x6C, 0x00, 0x38, 0x00, 0x10,}
94 };
96 Cursordata blittarget = {
97 18,
98 {8, 8},
99 {0xe0, 0x1f, 0x00, 0xf0, 0x3f, 0x00, 0xf8, 0x7f, 0x00,
100 0xfc, 0xff, 0x00, 0xfe, 0xff, 0x01, 0xff, 0xff, 0x03,
101 0xff, 0xff, 0x03, 0xff, 0xff, 0x03, 0xff, 0xff, 0x03,
102 0xff, 0xff, 0x03, 0xff, 0xff, 0x03, 0xff, 0xff, 0x03,
103 0xff, 0xff, 0x03, 0xfe, 0xff, 0x01, 0xfc, 0xff, 0x00,
104 0xf8, 0x7f, 0x00, 0xf0, 0x3f, 0x00, 0xe0, 0x1f, 0x00},
105 {0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xf0, 0x3f, 0x00,
106 0x38, 0x73, 0x00, 0x8c, 0xc7, 0x00, 0xec, 0xdf, 0x00,
107 0x66, 0x9b, 0x01, 0x36, 0xb3, 0x01, 0xfe, 0xff, 0x01,
108 0xfe, 0xff, 0x01, 0x36, 0xb3, 0x01, 0x66, 0x9b, 0x01,
109 0xec, 0xdf, 0x00, 0x8c, 0xc7, 0x00, 0x38, 0x73, 0x00,
110 0xf0, 0x3f, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00}
111 };
113 Cursordata blitarrow = {
114 18,
115 {1, 1},
116 {0xff, 0x0f, 0x00, 0xff, 0x07, 0x00, 0xff, 0x03, 0x00,
117 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x01, 0x00,
118 0xff, 0x03, 0x00, 0xff, 0x07, 0x00, 0xe7, 0x0f, 0x00,
119 0xc7, 0x1f, 0x00, 0x87, 0x3f, 0x00, 0x03, 0x7f, 0x00,
120 0x01, 0xfe, 0x00, 0x00, 0xfc, 0x01, 0x00, 0xf8, 0x03,
121 0x00, 0xf0, 0x01, 0x00, 0xe0, 0x00, 0x00, 0x40, 0x00},
122 {0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0xfe, 0x00, 0x00,
123 0x3e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x00, 0x00,
124 0xf6, 0x01, 0x00, 0xe6, 0x03, 0x00, 0xc2, 0x07, 0x00,
125 0x82, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00,
126 0x00, 0x7c, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xf0, 0x01,
127 0x00, 0xe0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00}
128 };
130 Cursordata blitsweep = {
131 18,
132 {8, 8},
133 {0xc4, 0xff, 0x03, 0xce, 0xff, 0x03, 0xdf, 0xff, 0x03,
134 0x3e, 0x80, 0x03, 0x7c, 0x83, 0x03, 0xf8, 0x83, 0x03,
135 0xf7, 0x83, 0x03, 0xe7, 0x83, 0x03, 0xf7, 0x83, 0x03,
136 0xf7, 0x83, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03,
137 0x07, 0x80, 0x03, 0x07, 0x80, 0x03, 0x07, 0x80, 0x03,
138 0xff, 0xff, 0x03, 0xff, 0xff, 0x03, 0xff, 0xff, 0x03},
139 {0x00, 0x00, 0x00, 0x84, 0xff, 0x01, 0x0e, 0x00, 0x01,
140 0x1c, 0x00, 0x01, 0x38, 0x00, 0x01, 0x70, 0x01, 0x01,
141 0xe0, 0x01, 0x01, 0xc2, 0x01, 0x01, 0xe2, 0x01, 0x01,
142 0x02, 0x00, 0x01, 0x02, 0x00, 0x01, 0x02, 0x00, 0x01,
143 0x02, 0x00, 0x01, 0x02, 0x00, 0x01, 0x02, 0x00, 0x01,
144 0x02, 0x00, 0x01, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00}
145 };
147 /*
148 * Grey tile pattern for root background
149 */
151 #define grey_width 4
152 #define grey_height 2
153 static char grey_bits[] = {
154 0x01, 0x04
155 };
157 static XColor bl, wh;
159 Cursor
160 getcursor(c, s)
161 Cursordata *c;
162 ScreenInfo *s;
164 Pixmap f, m;
166 f = XCreatePixmapFromBitmapData(dpy, s->root, (char *)c->fore,
167 c->width, c->width, 1, 0, 1);
168 m = XCreatePixmapFromBitmapData(dpy, s->root, (char *)c->mask,
169 c->width, c->width, 1, 0, 1);
170 return XCreatePixmapCursor(dpy, f, m, &bl, &wh,
171 c->hot[0], c->hot[1]);
174 void
175 initcurs(s)
176 ScreenInfo *s;
178 XColor dummy;
180 XAllocNamedColor(dpy, DefaultColormap(dpy, s->num),
181 "black", &bl, &dummy);
182 XAllocNamedColor(dpy, DefaultColormap(dpy, s->num),
183 "white", &wh, &dummy);
185 if(nostalgia){
186 s->arrow = getcursor(&blitarrow, s);
187 s->target = getcursor(&blittarget, s);
188 s->sweep0 = getcursor(&blitsweep, s);
189 s->boxcurs = getcursor(&blitsweep, s);
191 else {
192 s->arrow = getcursor(&bigarrow, s);
193 s->target = getcursor(&sightdata, s);
194 s->sweep0 = getcursor(&sweep0data, s);
195 s->boxcurs = getcursor(&boxcursdata, s);
198 s->root_pixmap = XCreatePixmapFromBitmapData(dpy,
199 s->root, grey_bits, grey_width, grey_height,
200 s->black, s->white, s->depth);
202 s->bordcurs[BorderN] = XCreateFontCursor(dpy, 138);
203 s->bordcurs[BorderNNE] = XCreateFontCursor(dpy, 136);
204 s->bordcurs[BorderENE] = s->bordcurs[BorderNNE] ;
205 s->bordcurs[BorderE] = XCreateFontCursor(dpy, 96);
206 s->bordcurs[BorderESE] = XCreateFontCursor(dpy, 14);
207 s->bordcurs[BorderSSE] = s->bordcurs[BorderESE];
208 s->bordcurs[BorderS] = XCreateFontCursor(dpy, 16);
209 s->bordcurs[BorderSSW] = XCreateFontCursor(dpy, 12);
210 s->bordcurs[BorderWSW] = s->bordcurs[BorderSSW];
211 s->bordcurs[BorderW] = XCreateFontCursor(dpy, 70);
212 s->bordcurs[BorderWNW] = XCreateFontCursor(dpy, 134);
213 s->bordcurs[BorderNNW] = s->bordcurs[BorderWNW];
217 /* RIO
219 Cursor crosscursor = {
220 {-7, -7},
221 {0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
222 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
223 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0,
224 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, },
225 {0x00, 0x00, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
226 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x7F, 0xFE,
227 0x7F, 0xFE, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80,
228 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, }
229 };
231 Cursor boxcursor = {
232 {-7, -7},
233 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
234 0xFF, 0xFF, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F,
235 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x1F, 0xFF, 0xFF,
236 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, },
237 {0x00, 0x00, 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE,
238 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E,
239 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x0E,
240 0x7F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x00, 0x00, }
241 };
243 Cursor sightcursor = {
244 {-7, -7},
245 {0x1F, 0xF8, 0x3F, 0xFC, 0x7F, 0xFE, 0xFB, 0xDF,
246 0xF3, 0xCF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF,
247 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xF3, 0xCF,
248 0x7B, 0xDF, 0x7F, 0xFE, 0x3F, 0xFC, 0x1F, 0xF8, },
249 {0x00, 0x00, 0x0F, 0xF0, 0x31, 0x8C, 0x21, 0x84,
250 0x41, 0x82, 0x41, 0x82, 0x41, 0x82, 0x7F, 0xFE,
251 0x7F, 0xFE, 0x41, 0x82, 0x41, 0x82, 0x41, 0x82,
252 0x21, 0x84, 0x31, 0x8C, 0x0F, 0xF0, 0x00, 0x00, }
253 };
255 Cursor whitearrow = {
256 {0, 0},
257 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
258 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC,
259 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC,
260 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, },
261 {0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C,
262 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C,
263 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C,
264 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, }
265 };
267 Cursor query = {
268 {-7,-7},
269 {0x0f, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe,
270 0x7c, 0x7e, 0x78, 0x7e, 0x00, 0xfc, 0x01, 0xf8,
271 0x03, 0xf0, 0x07, 0xe0, 0x07, 0xc0, 0x07, 0xc0,
272 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, },
273 {0x00, 0x00, 0x0f, 0xf0, 0x1f, 0xf8, 0x3c, 0x3c,
274 0x38, 0x1c, 0x00, 0x3c, 0x00, 0x78, 0x00, 0xf0,
275 0x01, 0xe0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80,
276 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
277 };
279 Cursor tl = {
280 {-4, -4},
281 {0xfe, 0x00, 0x82, 0x00, 0x8c, 0x00, 0x87, 0xff,
282 0xa0, 0x01, 0xb0, 0x01, 0xd0, 0x01, 0x11, 0xff,
283 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
284 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, },
285 {0x00, 0x00, 0x7c, 0x00, 0x70, 0x00, 0x78, 0x00,
286 0x5f, 0xfe, 0x4f, 0xfe, 0x0f, 0xfe, 0x0e, 0x00,
287 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
288 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, }
289 };
291 Cursor t = {
292 {-7, -8},
293 {0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0xc0,
294 0x1c, 0x70, 0x10, 0x10, 0x0c, 0x60, 0xfc, 0x7f,
295 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xff, 0xff,
296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
297 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
298 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80, 0x03, 0x80,
299 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00,
300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
301 };
303 Cursor tr = {
304 {-11, -4},
305 {0x00, 0x7f, 0x00, 0x41, 0x00, 0x31, 0xff, 0xe1,
306 0x80, 0x05, 0x80, 0x0d, 0x80, 0x0b, 0xff, 0x88,
307 0x00, 0x88, 0x0, 0x88, 0x00, 0x88, 0x00, 0x88,
308 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf8, },
309 {0x00, 0x00, 0x00, 0x3e, 0x00, 0x0e, 0x00, 0x1e,
310 0x7f, 0xfa, 0x7f, 0xf2, 0x7f, 0xf0, 0x00, 0x70,
311 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
312 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, }
313 };
315 Cursor r = {
316 {-8, -7},
317 {0x07, 0xc0, 0x04, 0x40, 0x04, 0x40, 0x04, 0x58,
318 0x04, 0x68, 0x04, 0x6c, 0x04, 0x06, 0x04, 0x02,
319 0x04, 0x06, 0x04, 0x6c, 0x04, 0x68, 0x04, 0x58,
320 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x07, 0xc0, },
321 {0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80,
322 0x03, 0x90, 0x03, 0x90, 0x03, 0xf8, 0x03, 0xfc,
323 0x03, 0xf8, 0x03, 0x90, 0x03, 0x90, 0x03, 0x80,
324 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, }
325 };
327 Cursor br = {
328 {-11, -11},
329 {0x00, 0xf8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
330 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88,
331 0xff, 0x88, 0x80, 0x0b, 0x80, 0x0d, 0x80, 0x05,
332 0xff, 0xe1, 0x00, 0x31, 0x00, 0x41, 0x00, 0x7f, },
333 {0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
334 0x0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70,
335 0x00, 0x70, 0x7f, 0xf0, 0x7f, 0xf2, 0x7f, 0xfa,
336 0x00, 0x1e, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x00, }
337 };
339 Cursor b = {
340 {-7, -7},
341 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
342 0xff, 0xff, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01,
343 0xfc, 0x7f, 0x0c, 0x60, 0x10, 0x10, 0x1c, 0x70,
344 0x06, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, },
345 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
346 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe,
347 0x03, 0x80, 0x03, 0x80, 0x0f, 0xe0, 0x03, 0x80,
348 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
349 };
351 Cursor bl = {
352 {-4, -11},
353 {0x1f, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
354 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00,
355 0x11, 0xff, 0xd0, 0x01, 0xb0, 0x01, 0xa0, 0x01,
356 0x87, 0xff, 0x8c, 0x00, 0x82, 0x00, 0xfe, 0x00, },
357 {0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
358 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00,
359 0x0e, 0x00, 0x0f, 0xfe, 0x4f, 0xfe, 0x5f, 0xfe,
360 0x78, 0x00, 0x70, 0x00, 0x7c, 0x00, 0x00, 0x0, }
361 };
363 Cursor l = {
364 {-7, -7},
365 {0x03, 0xe0, 0x02, 0x20, 0x02, 0x20, 0x1a, 0x20,
366 0x16, 0x20, 0x36, 0x20, 0x60, 0x20, 0x40, 0x20,
367 0x60, 0x20, 0x36, 0x20, 0x16, 0x20, 0x1a, 0x20,
368 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x03, 0xe0, },
369 {0x00, 0x00, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0,
370 0x09, 0xc0, 0x09, 0xc0, 0x1f, 0xc0, 0x3f, 0xc0,
371 0x1f, 0xc0, 0x09, 0xc0, 0x09, 0xc0, 0x01, 0xc0,
372 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0x00, }
373 };
375 Cursor *corners[9] = {
376 &tl, &t, &tr,
377 &l, nil, &r,
378 &bl, &b, &br
379 };
381 */