1 /* Copyright (C) 2000-2012 by George Williams */
2 /*
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are met:
5 
6  * Redistributions of source code must retain the above copyright notice, this
7  * list of conditions and the following disclaimer.
8 
9  * Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12 
13  * The name of the author may not be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15 
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
19  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
22  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #include <fontforge-config.h>
29 
30 #include "fontforgeui.h"
31 
32 #ifndef _CursorsMustBe16x16
33 # define _CursorsMustBe16x16	0	/* X on Mac OSX can't handle anything bigger than 16x16 cursors (I think, it seems to manage smaller ones) */
34 #endif
35 
36 GCursor ct_magplus, ct_magminus, ct_mypointer, ct_circle, ct_square, ct_triangle,
37 	ct_ruler, ct_pen, ct_knife, ct_rotate, ct_skew, ct_scale, ct_flip,
38 	ct_3drotate, ct_perspective, ct_hvcircle, ct_g2circle;
39 GCursor ct_rect, ct_elipse, ct_poly, ct_star, ct_pencil, ct_shift, ct_line,
40 	ct_myhand, ct_filledrect, ct_filledelipse, ct_setwidth, ct_eyedropper;
41 GCursor ct_updown, ct_leftright, ct_nesw, ct_nwse;
42 GCursor ct_rbearing, ct_kerning, ct_lbearing;
43 GCursor ct_prohibition, ct_ddcursor, ct_features;
44 GCursor ct_spiroleft, ct_spiroright;
45 GWindow logo_icon;
46 
47 #define magplus_width 16
48 #define magplus_height 16
49 #define magplus_x_hot 5
50 #define magplus_y_hot 5
51 static unsigned char magplus_bits[] = {
52    0xf8, 0x00, 0x06, 0x03, 0x22, 0x02, 0x21, 0x04, 0x21, 0x04, 0xfd, 0x05,
53    0x21, 0x04, 0x21, 0x04, 0x22, 0x02, 0x06, 0x03, 0xf8, 0x04, 0x00, 0x08,
54    0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80};
55 #define magminus_width 16
56 #define magminus_height 16
57 #define magminus_x_hot 5
58 #define magminus_y_hot 5
59 static unsigned char magminus_bits[] = {
60    0xf8, 0x00, 0x06, 0x03, 0x02, 0x02, 0x01, 0x04, 0x01, 0x04, 0xfd, 0x05,
61    0x01, 0x04, 0x01, 0x04, 0x02, 0x02, 0x06, 0x03, 0xf8, 0x04, 0x00, 0x08,
62    0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80};
63 #if _CursorsMustBe16x16
64 #define pointertri_width 16
65 #define pointertri_height 16
66 #define pointertri_x_hot 1
67 #define pointertri_y_hot 0
68 static unsigned char pointertri_bits[] = {
69    0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7e, 0x00,
70    0xfe, 0x00, 0xfe, 0x01, 0x3e, 0x00, 0x36, 0x10, 0x62, 0x30, 0x60, 0x70,
71    0xc0, 0xf0, 0xc0, 0x70, 0x80, 0x31, 0x80, 0x11};
72 #define pointertrimask_width 16
73 #define pointertrimask_height 16
74 static unsigned char pointertrimask_bits[] = {
75    0x02, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00,
76    0xff, 0x01, 0xff, 0x03, 0xff, 0x03, 0x3f, 0x10, 0x67, 0x30, 0x63, 0x70,
77    0xc0, 0xf0, 0xc0, 0x70, 0x80, 0x31, 0x80, 0x11};
78 #define pointersqr_width 16
79 #define pointersqr_height 16
80 #define pointersqr_x_hot 2
81 #define pointersqr_y_hot 0
82 static unsigned char pointersqr_bits[] = {
83    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
84    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
85    0x80, 0xf1, 0x80, 0xf1, 0x00, 0xf3, 0x00, 0xf3};
86 #define pointersqrmask_width 16
87 #define pointersqrmask_height 16
88 static unsigned char pointersqrmask_bits[] = {
89    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
90    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0x7e, 0x00, 0xde, 0x00, 0xc6, 0x00,
91    0x80, 0xf1, 0x80, 0xf1, 0x00, 0xf3, 0x00, 0xf3};
92 #define pointercic_width 16
93 #define pointercic_height 16
94 #define pointercic_x_hot 2
95 #define pointercic_y_hot 0
96 static unsigned char pointercic_bits[] = {
97    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
98    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x70,
99    0x80, 0xf9, 0x80, 0xf9, 0x00, 0xfb, 0x00, 0x73};
100 #define pointercicmask_width 16
101 #define pointercicmask_height 16
102 static unsigned char pointercicmask_bits[] = {
103    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
104    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0x7e, 0x00, 0xce, 0x00, 0xc6, 0x70,
105    0x80, 0xf9, 0x80, 0xf9, 0x00, 0xfb, 0x00, 0x73};
106 #define pointerhvcic_width 16
107 #define pointerhvcic_height 16
108 #define pointerhvcic_x_hot 2
109 #define pointerhvcic_y_hot 0
110 static unsigned char pointerhvcic_bits[] = {
111    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
112    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x70,
113    0x80, 0xf9, 0x80, 0xf9, 0x00, 0xfb, 0x00, 0x73};
114 #define pointerhvcicmask_width 16
115 #define pointerhvcicmask_height 16
116 static unsigned char pointerhvcicmask_bits[] = {
117    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
118    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0x7e, 0x00, 0xce, 0x00, 0xc6, 0x70,
119    0x80, 0xf9, 0x80, 0xf9, 0x00, 0xfb, 0x00, 0x73};
120 #define pointerright_width 16
121 #define pointerright_height 16
122 #define pointerright_x_hot 2
123 #define pointerright_y_hot 0
124 static unsigned char pointerright_bits[] = {
125    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
126    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0xf0, 0xc4, 0xf0, 0xc0, 0x30,
127    0x80, 0x31, 0x80, 0x31, 0x00, 0xf3, 0x00, 0xf3};
128 #define pointerrightmask_width 16
129 #define pointerrightmask_height 16
130 static unsigned char pointerrightmask_bits[] = {
131    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
132    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0x7e, 0xf0, 0xce, 0xf0, 0xc6, 0x30,
133    0x80, 0x31, 0x80, 0x31, 0x00, 0xf3, 0x00, 0xf3};
134 #define pointerleft_width 16
135 #define pointerleft_height 16
136 #define pointerleft_x_hot 2
137 #define pointerleft_y_hot 0
138 static unsigned char pointerleft_bits[] = {
139    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
140    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0xf0, 0xc4, 0xf0, 0xc0, 0xc0,
141    0x80, 0xc1, 0x80, 0xc1, 0x00, 0xf3, 0x00, 0xf3};
142 #define pointerleftmask_width 16
143 #define pointerleftmask_height 16
144 static unsigned char pointerleftmask_bits[] = {
145    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
146    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0x7e, 0xf0, 0xce, 0xf0, 0xc6, 0xc0,
147    0x80, 0xc1, 0x80, 0xc1, 0x00, 0xf3, 0x00, 0xf3};
148 #else
149 #define pointertri_width 16
150 #define pointertri_height 24
151 #define pointertri_x_hot 2
152 #define pointertri_y_hot 0
153 static unsigned char pointertri_bits[] = {
154    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
155    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
156    0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x08, 0x00, 0x1c,
157    0x00, 0x3e, 0x00, 0x7f, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
158 #define pointertrimask_width 16
159 #define pointertrimask_height 24
160 static unsigned char pointertrimask_bits[] = {
161    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
162    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfe, 0x00, 0xee, 0x01, 0xe6, 0x01,
163    0xc0, 0x03, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x00, 0x0b, 0x00, 0x1c,
164    0x00, 0x3e, 0x00, 0x7f, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
165 #define pointersqr_width 16
166 #define pointersqr_height 24
167 #define pointersqr_x_hot 2
168 #define pointersqr_y_hot 0
169 static unsigned char pointersqr_bits[] = {
170    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
171    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
172    0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x7c,
173    0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00};
174 #define pointersqrmask_width 16
175 #define pointersqrmask_height 24
176 static unsigned char pointersqrmask_bits[] = {
177    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
178    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfe, 0x00, 0xe6, 0x01, 0xe0, 0x01,
179    0xc0, 0x03, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x00, 0x03, 0x00, 0x7c,
180    0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00};
181 #define pointercic_width 16
182 #define pointercic_height 24
183 #define pointercic_x_hot 2
184 #define pointercic_y_hot 0
185 static unsigned char pointercic_bits[] = {
186    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
187    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
188    0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x38, 0x00, 0x7c,
189    0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x00};
190 #define pointercicmask_width 16
191 #define pointercicmask_height 24
192 static unsigned char pointercicmask_bits[] = {
193    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
194    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfe, 0x00, 0xee, 0x01, 0xe6, 0x01,
195    0xc0, 0x03, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07, 0x00, 0x3b, 0x00, 0x7c,
196    0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x00};
197 #define pointerhvcic_width 32
198 #define pointerhvcic_height 32
199 #define pointerhvcic_x_hot 2
200 #define pointerhvcic_y_hot 0
201 static unsigned char pointerhvcic_bits[] = {
202    0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
203    0x3c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00,
204    0xfc, 0x01, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00,
205    0x6c, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
206    0x80, 0x11, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00,
207    0x00, 0x03, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
208    0x00, 0xfe, 0x00, 0x00, 0xa0, 0xfe, 0x0a, 0x00, 0x00, 0xfe, 0x00, 0x00,
209    0x00, 0x7c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210    0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
211    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
213 #define pointerhvcicmask_width 32
214 #define pointerhvcicmask_height 32
215 static unsigned char pointerhvcicmask_bits[] = {
216    0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
217    0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
218    0xfe, 0x03, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00,
219    0xfe, 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0xe6, 0x01, 0x00, 0x00,
220    0xc0, 0x13, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x17, 0x00, 0x00,
221    0x80, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
222    0x00, 0xfe, 0x00, 0x00, 0xa0, 0xfe, 0x0a, 0x00, 0x00, 0xfe, 0x00, 0x00,
223    0x00, 0x7c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
224    0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
225    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
226    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
227 #define pointerg2cic_width 32
228 #define pointerg2cic_height 32
229 #define pointerg2cic_x_hot 2
230 #define pointerg2cic_y_hot 0
231 static unsigned char pointerg2cic_bits[] = {
232    0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00,
233    0x3c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00,
234    0xfc, 0x01, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00,
235    0x6c, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
236    0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
237    0x00, 0x13, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
238    0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xfe, 0x00, 0x00,
239    0x00, 0x7c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
240    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
242    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
243 #define pointerg2cicmask_width 32
244 #define pointerg2cicmask_height 32
245 static unsigned char pointerg2cicmask_bits[] = {
246    0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00,
247    0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00,
248    0xfe, 0x03, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00,
249    0xfe, 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0xe6, 0x01, 0x00, 0x00,
250    0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00,
251    0x80, 0x17, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00,
252    0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xfe, 0x00, 0x00,
253    0x00, 0x7c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
254    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
257 #define pointerright_width 16
258 #define pointerright_height 24
259 #define pointerright_x_hot 2
260 #define pointerright_y_hot 0
261 static unsigned char pointerright_bits[] = {
262    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
263    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
264    0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x7b, 0x00, 0x78, 0x00, 0x60,
265    0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x78, 0x00, 0x78};
266 #define pointerrightmask_width 16
267 #define pointerrightmask_height 24
268 static unsigned char pointerrightmask_bits[] = {
269    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
270    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfe, 0x00, 0xee, 0x01, 0xe6, 0x01,
271    0xc0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, 0x7f, 0x00, 0x7f, 0x00, 0x60,
272    0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x78, 0x00, 0x78};
273 #define pointerleft_width 16
274 #define pointerleft_height 24
275 #define pointerleft_x_hot 2
276 #define pointerleft_y_hot 0
277 static unsigned char pointerleft_bits[] = {
278    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
279    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
280    0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x7b, 0x00, 0x78, 0x00, 0x18,
281    0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x78, 0x00, 0x78};
282 #define pointerleftmask_width 16
283 #define pointerleftmask_height 24
284 static unsigned char pointerleftmask_bits[] = {
285    0x04, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
286    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfe, 0x00, 0xee, 0x01, 0xe6, 0x01,
287    0xc0, 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, 0x7f, 0x00, 0x7f, 0x00, 0x18,
288    0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x78, 0x00, 0x78};
289 #endif
290 #define pointercur_width 16
291 #define pointercur_height 16
292 #define pointercur_x_hot 2
293 #define pointercur_y_hot 0
294 static unsigned char pointercur_bits[] = {
295    0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x7c, 0x00, 0xfc, 0x00,
296    0xfc, 0x01, 0xfc, 0x03, 0x7c, 0x00, 0x6c, 0x00, 0xc4, 0x00, 0xc0, 0x00,
297    0x80, 0x01, 0x80, 0x01, 0x00, 0x03, 0x00, 0x03};
298 #define pointercurmask_width 16
299 #define pointercurmask_height 16
300 static unsigned char pointercurmask_bits[] = {
301    0x04, 0x00, 0x0c, 0x00, 0x3c, 0x00, 0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01,
302    0xfe, 0x03, 0xfe, 0x07, 0xfe, 0x07, 0xfe, 0x00, 0xee, 0x01, 0xe6, 0x01,
303    0xc0, 0x03, 0xc0, 0x03, 0x80, 0x07, 0x80, 0x07};
304 #if _CursorsMustBe16x16
305 #define rulercur_width 16
306 #define rulercur_height 16
307 #define rulercur_x_hot 0
308 #define rulercur_y_hot 3
309 static unsigned char rulercur_bits[] = {
310    0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x3f, 0x40, 0x22, 0x40, 0x24, 0x40,
311    0x20, 0x40, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0xe0, 0x7f, 0x00, 0x00,
312    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
313 #else
314 #define rulercur_width 24
315 #define rulercur_height 12
316 #define rulercur_x_hot 0
317 #define rulercur_y_hot 3
318 static unsigned char rulercur_bits[] = {
319    0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3f, 0x00, 0x80,
320    0x22, 0x00, 0x80, 0x24, 0x40, 0x80, 0x20, 0x40, 0x80, 0x20, 0x49, 0x92,
321    0x20, 0x49, 0x92, 0x20, 0x49, 0x92, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00};
322 #endif
323 #define pencur_width 16
324 #define pencur_height 16
325 #define pencur_x_hot 6
326 #define pencur_y_hot 0
327 static unsigned char pencur_bits[] = {
328    0x40, 0x00, 0xe0, 0x00, 0xe0, 0x00, 0x50, 0x01, 0x50, 0x01, 0x50, 0x01,
329    0x48, 0x02, 0x48, 0x02, 0x44, 0x04, 0xa4, 0x04, 0x44, 0x04, 0x08, 0x02,
330    0xf0, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01};
331 #define pencurmask_width 16
332 #define pencurmask_height 16
333 static unsigned char pencurmask_bits[] = {
334    0x40, 0x00, 0xe0, 0x00, 0xf0, 0x01, 0x58, 0x03, 0x58, 0x03, 0x58, 0x03,
335    0x4c, 0x06, 0x4c, 0x06, 0x46, 0x0c, 0xe6, 0x0c, 0x46, 0x0c, 0x0c, 0x06,
336    0xf8, 0x03, 0x18, 0x03, 0x18, 0x03, 0x18, 0x03};
337 #define knifecur_width 16
338 #define knifecur_height 16
339 #define knifecur_x_hot 0
340 #define knifecur_y_hot 2
341 static unsigned char knifecur_bits[] = {
342    0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x38, 0x20, 0x40, 0x21, 0x00, 0xee,
343    0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
344    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
345 #define knifecurmask_width 16
346 #define knifecurmask_height 16
347 static unsigned char knifecurmask_bits[] = {
348    0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xf8, 0xff, 0x00, 0xfe,
349    0x00, 0x7e, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
350    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
351 #define flipcur_width 16
352 #define flipcur_height 16
353 #define flipcur_x_hot 8
354 #define flipcur_y_hot 8
355 static unsigned char flipcur_bits[] = {
356    0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x20, 0x09,
357    0x20, 0x09, 0x30, 0x11, 0x30, 0x09, 0x28, 0x21, 0x28, 0x09, 0x24, 0x41,
358    0x3c, 0x69, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00};
359 #define flipcurmask_width 16
360 #define flipcurmask_height 16
361 static unsigned char flipcurmask_bits[] = {
362    0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x20, 0x09,
363    0x20, 0x09, 0x30, 0x19, 0x30, 0x19, 0x28, 0x29, 0x28, 0x29, 0x24, 0x49,
364    0x3c, 0x79, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00};
365 #define rotatecur_width 16
366 #define rotatecur_height 16
367 #define rotatecur_x_hot 3
368 #define rotatecur_y_hot 12
369 static unsigned char rotatecur_bits[] = {
370    0x08, 0x01, 0x88, 0x07, 0x08, 0x09, 0x08, 0x10, 0x08, 0x20, 0x08, 0x20,
371    0x08, 0x80, 0x08, 0x60, 0x08, 0x18, 0x08, 0x06, 0x88, 0x01, 0x68, 0x00,
372    0xff, 0xff, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00};
373 #define scalecur_width 16
374 #define scalecur_height 16
375 #define scalecur_x_hot 0
376 #define scalecur_y_hot 15
377 static unsigned char scalecur_bits[] = {
378    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x05, 0x00, 0x00, 0x01, 0x04,
379    0x00, 0x00, 0x7f, 0x04, 0x41, 0x00, 0x41, 0x04, 0x41, 0x00, 0x41, 0x04,
380    0x41, 0x00, 0x41, 0x04, 0x41, 0x00, 0x7f, 0x05};
381 #define scalecurmask_width 16
382 #define scalecurmask_height 16
383 static unsigned char scalecurmask_bits[] = {
384    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x01, 0x04, 0x01, 0x04,
385    0x01, 0x04, 0x7f, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0x41, 0x04,
386    0x41, 0x04, 0x41, 0x04, 0x41, 0x04, 0xff, 0x07};
387 #define skewcur_width 16
388 #define skewcur_height 16
389 #define skewcur_x_hot 0
390 #define skewcur_y_hot 15
391 static unsigned char skewcur_bits[] = {
392    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
393    0x00, 0x00, 0x7f, 0x05, 0x41, 0x00, 0x49, 0x02, 0x41, 0x00, 0x45, 0x01,
394    0x41, 0x00, 0xc3, 0x00, 0x41, 0x00, 0x7f, 0x00};
395 #define skewcurmask_width 16
396 #define skewcurmask_height 16
397 static unsigned char skewcurmask_bits[] = {
398    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
399    0x00, 0x00, 0xff, 0x07, 0x49, 0x02, 0x49, 0x02, 0x45, 0x01, 0x45, 0x01,
400    0xc3, 0x00, 0xc3, 0x00, 0x41, 0x00, 0x7f, 0x00};
401 #define rotate3dcur_width 16
402 #define rotate3dcur_height 16
403 #define rotate3dcur_x_hot 1
404 #define rotate3dcur_y_hot 13
405 static unsigned char rotate3dcur_bits[] = {
406    0x02, 0x00, 0xfa, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x8a, 0x00,
407    0x8a, 0x00, 0xfa, 0x00, 0x02, 0x1c, 0xaa, 0x22, 0x02, 0xaa, 0xaa, 0x72,
408    0x02, 0x22, 0xff, 0x8f, 0x02, 0x02, 0x02, 0x3c};
409 #define perspectivecur_width 16
410 #define perspectivecur_height 16
411 #define perspectivecur_x_hot 0
412 #define perspectivecur_y_hot 15
413 static unsigned char perspectivecur_bits[] = {
414    0x41, 0x04, 0x41, 0x04, 0x21, 0x08, 0x21, 0x08, 0x11, 0x10, 0xf1, 0x1f,
415    0x31, 0x19, 0x29, 0x28, 0xa9, 0x2a, 0x25, 0x48, 0x65, 0x4c, 0x25, 0x48,
416    0xe3, 0x8f, 0x03, 0x80, 0x01, 0x00, 0xff, 0xff};
417 #define setwidthcur_width 16
418 #define setwidthcur_height 16
419 #define setwidthcur_x_hot 14
420 #define setwidthcur_y_hot 7
421 static unsigned char setwidthcur_bits[] = {
422    0x00, 0x00, 0x01, 0x40, 0x00, 0x40, 0x01, 0x40, 0x00, 0x40, 0x09, 0x48,
423    0x04, 0x50, 0xab, 0x6a, 0x04, 0x50, 0x09, 0x48, 0x00, 0x40, 0x01, 0x40,
424    0x00, 0x40, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00};
425 /*static unsigned char setwidthmask_bits[] = {				     */
426 /*   0x00, 0x00, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x09, 0x48, */
427 /*   0x05, 0x50, 0xff, 0x7f, 0x05, 0x50, 0x09, 0x48, 0x01, 0x40, 0x01, 0x40, */
428 /*   0x01, 0x40, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00};			     */
429 
430 #define updown_width 8
431 #define updown_height 15
432 #define updown_x_hot 3
433 #define updown_y_hot 7
434 static unsigned char updown_bits[] = {
435    0x08, 0x14, 0x36, 0x55, 0x14, 0x14, 0x14, 0x7f, 0x14, 0x14, 0x14, 0x55,
436    0x36, 0x14, 0x08};
437 #define leftright_width 16
438 #define leftright_height 9
439 #define leftright_x_hot 7
440 #define leftright_y_hot 4
441 static unsigned char leftright_bits[] = {
442    0x80, 0x00, 0x88, 0x08, 0x84, 0x10, 0xfe, 0x3f, 0x81, 0x40, 0xfe, 0x3f,
443    0x84, 0x10, 0x88, 0x08, 0x80, 0x00};
444 #define nesw_width 16
445 #define nesw_height 15
446 #define nesw_x_hot 8
447 #define nesw_y_hot 7
448 static unsigned char nesw_bits[] = {
449    0x00, 0xfc, 0x00, 0x90, 0x00, 0x88, 0x10, 0xc4, 0x20, 0xa2, 0x40, 0x91,
450    0x80, 0x08, 0x40, 0x05, 0x20, 0x02, 0x12, 0x05, 0x8a, 0x08, 0x46, 0x10,
451    0x22, 0x00, 0x12, 0x00, 0x7e, 0x00};
452 #define nwse_width 16
453 #define nwse_height 15
454 #define nwse_x_hot 8
455 #define nwse_y_hot 7
456 static unsigned char nwse_bits[] = {
457    0x7e, 0x00, 0x12, 0x00, 0x22, 0x00, 0x46, 0x10, 0x8a, 0x08, 0x12, 0x05,
458    0x20, 0x02, 0x40, 0x05, 0x80, 0x08, 0x40, 0x91, 0x20, 0xa2, 0x10, 0xc4,
459    0x00, 0x88, 0x00, 0x90, 0x00, 0xfc};
460 #define rectcur_width 16
461 #define rectcur_height 8
462 #define rectcur_x_hot 0
463 #define rectcur_y_hot 2
464 static unsigned char rectcur_bits[] = {
465    0x04, 0x00, 0x02, 0x00, 0xff, 0x7f, 0x12, 0x40, 0x14, 0x40, 0x10, 0x40,
466    0xf0, 0x7f, 0x00, 0x00};
467 #define elipsecur_width 16
468 #define elipsecur_height 8
469 #define elipsecur_x_hot 0
470 #define elipsecur_y_hot 2
471 static unsigned char elipsecur_bits[] = {
472    0x04, 0x00, 0x02, 0x00, 0x3f, 0x1f, 0xc2, 0x60, 0x24, 0x80, 0xc0, 0x60,
473    0x00, 0x1f, 0x00, 0x00};
474 #define polycur_width 16
475 #define polycur_height 16
476 #define polycur_x_hot 1
477 #define polycur_y_hot 7
478 static unsigned char polycur_bits[] = {
479    0x80, 0x01, 0x60, 0x06, 0x18, 0x18, 0x06, 0x60, 0x02, 0x40, 0x02, 0x40,
480    0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x06, 0x60,
481    0x18, 0x18, 0x60, 0x06, 0x80, 0x01, 0x00, 0x00};
482 #define starcur_width 16
483 #define starcur_height 16
484 #define starcur_x_hot 0
485 #define starcur_y_hot 6
486 static unsigned char starcur_bits[] = {
487    0x10, 0x08, 0x70, 0x0e, 0x90, 0x09, 0x10, 0x08, 0x08, 0x10, 0x06, 0x60,
488    0x01, 0x80, 0x06, 0x60, 0x08, 0x10, 0x10, 0x08, 0x90, 0x09, 0x70, 0x0e,
489    0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
490 
491 #define pencil_width 16
492 #define pencil_height 16
493 #define pencil_x_hot 1
494 #define pencil_y_hot 1
495 static unsigned char pencil_bits[] = {
496    0x00, 0x00, 0x0e, 0x00, 0x16, 0x00, 0x22, 0x00, 0x44, 0x00, 0x88, 0x00,
497    0x10, 0x01, 0x20, 0x02, 0x40, 0x04, 0x80, 0x08, 0x00, 0x11, 0x00, 0x22,
498    0x00, 0x64, 0x00, 0x98, 0x00, 0x50, 0x00, 0x20};
499 #define pencilmask_width 16
500 #define pencilmask_height 16
501 static unsigned char pencilmask_bits[] = {
502    0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
503    0xf0, 0x01, 0xe0, 0x03, 0xc0, 0x07, 0x80, 0x0f, 0x00, 0x1f, 0x00, 0x3e,
504    0x00, 0x7c, 0x00, 0x98, 0x00, 0x50, 0x00, 0x20};
505 #define eyedropper_width 16
506 #define eyedropper_height 16
507 #define eyedropper_x_hot 0
508 #define eyedropper_y_hot 0
509 static unsigned char eyedropper_bits[] = {
510    0x02, 0x00, 0x0d, 0x00, 0x12, 0x00, 0x22, 0x00, 0x44, 0x00, 0x88, 0x00,
511    0x10, 0x09, 0x20, 0x0e, 0x40, 0x0e, 0x80, 0x1f, 0x80, 0x7f, 0xc0, 0xff,
512    0x00, 0xfe, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x78};
513 #define eyedroppermask_width 16
514 #define eyedroppermask_height 16
515 static unsigned char eyedroppermask_bits[] = {
516    0x03, 0x00, 0x0f, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7c, 0x00, 0xf8, 0x00,
517    0xf0, 0x09, 0xe0, 0x0f, 0xc0, 0x0f, 0x80, 0x1f, 0x80, 0x7f, 0xc0, 0xff,
518    0x00, 0xfe, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x78};
519 #define shift_width 16
520 #define shift_height 16
521 #define shift_x_hot 7
522 #define shift_y_hot 7
523 static unsigned char shift_bits[] = {
524    0x80, 0x00, 0xc0, 0x01, 0xa0, 0x02, 0x80, 0x00, 0x80, 0x00, 0x84, 0x10,
525    0x82, 0x20, 0xff, 0x7f, 0x82, 0x20, 0x84, 0x10, 0x80, 0x00, 0x80, 0x00,
526    0xa0, 0x02, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x00};
527 #define linecur_width 16
528 #define linecur_height 16
529 #define linecur_x_hot 0
530 #define linecur_y_hot 0
531 static unsigned char linecur_bits[] = {
532    0xc1, 0xff, 0x62, 0xa0, 0xc4, 0xff, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00,
533    0x40, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08,
534    0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80};
535 #if _CursorsMustBe16x16
536 #define hand_width 16
537 #define hand_height 16
538 #define hand_x_hot 8
539 #define hand_y_hot 12
540 static unsigned char hand_bits[] = {
541    0x80, 0x01, 0x40, 0x02, 0x48, 0x0e, 0x54, 0x12, 0x54, 0x52, 0x64, 0xb2,
542    0x68, 0xb2, 0x48, 0x92, 0x17, 0x80, 0x19, 0x40, 0x11, 0x40, 0x02, 0x40,
543    0x04, 0x20, 0x08, 0x20, 0x08, 0x20, 0x10, 0x10};
544 #define handmask_width 16
545 #define handmask_height 16
546 static unsigned char handmask_bits[] = {
547    0x80, 0x01, 0xc0, 0x03, 0xc8, 0x0f, 0xdc, 0x1f, 0xdc, 0x5f, 0xfc, 0xff,
548    0xf8, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x7f,
549    0xfc, 0x3f, 0xf8, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f};
550 #else
551 #define hand_width 24
552 #define hand_height 24
553 #define hand_x_hot 11
554 #define hand_y_hot 15
555 static unsigned char hand_bits[] = {
556    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
557    0x00, 0x12, 0x00, 0x40, 0x72, 0x00, 0xa0, 0x92, 0x00, 0xa0, 0x92, 0x02,
558    0x20, 0x93, 0x05, 0x40, 0x93, 0x05, 0x40, 0x92, 0x04, 0xb8, 0x00, 0x04,
559    0xc8, 0x00, 0x02, 0x88, 0x00, 0x02, 0x10, 0x00, 0x02, 0x20, 0x00, 0x01,
560    0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x80, 0x80, 0x00, 0x00, 0x81, 0x00,
561    0x00, 0x82, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
562 #define handmask_width 24
563 #define handmask_height 24
564 static unsigned char handmask_bits[] = {
565    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
566    0x00, 0x1e, 0x00, 0x40, 0x7e, 0x00, 0xe0, 0xfe, 0x00, 0xe0, 0xfe, 0x02,
567    0xe0, 0xff, 0x07, 0xc0, 0xff, 0x07, 0xc0, 0xff, 0x07, 0xb8, 0xff, 0x07,
568    0xf8, 0xff, 0x03, 0xf8, 0xff, 0x03, 0xf0, 0xff, 0x03, 0xe0, 0xff, 0x01,
569    0xc0, 0xff, 0x01, 0xc0, 0xff, 0x01, 0x80, 0xff, 0x00, 0x00, 0xff, 0x00,
570    0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
571 #endif
572 #define filledrectcur_width 16
573 #define filledrectcur_height 8
574 #define filledrectcur_x_hot 0
575 #define filledrectcur_y_hot 2
576 static unsigned char filledrectcur_bits[] = {
577    0x04, 0x00, 0x02, 0x00, 0xff, 0xff, 0xe2, 0xff, 0xe4, 0xff, 0xe0, 0xff,
578    0xe0, 0xff, 0x00, 0x00};
579 #define filledelipsecur_width 16
580 #define filledelipsecur_height 8
581 #define filledelipsecur_x_hot 0
582 #define filledelipsecur_y_hot 2
583 static unsigned char filledelipsecur_bits[] = {
584    0x04, 0x00, 0x02, 0x00, 0x3f, 0x1f, 0xc2, 0x7f, 0xe4, 0xff, 0xc0, 0x7f,
585    0x00, 0x1f, 0x00, 0x00};
586 #define kerncur_width 16
587 #define kerncur_height 15
588 #define kerncur_x_hot 7
589 #define kerncur_y_hot 7
590 static unsigned char kerncur_bits[] = {
591    0x80, 0x00, 0x80, 0x00, 0xf8, 0x0f, 0x08, 0x08, 0x28, 0x0a, 0x28, 0x09,
592    0xaa, 0x28, 0x6f, 0x78, 0xaa, 0x28, 0x28, 0x09, 0x28, 0x0a, 0x08, 0x08,
593    0xf8, 0x0f, 0x80, 0x00, 0x80, 0x00};
594 #define rbearcur_width 16
595 #define rbearcur_height 15
596 #define rbearcur_x_hot 7
597 #define rbearcur_y_hot 7
598 static unsigned char rbearcur_bits[] = {
599    0x80, 0x00, 0x80, 0x00, 0xf8, 0x0f, 0x08, 0x08, 0xe8, 0x09, 0x28, 0x0a,
600    0x2a, 0x2a, 0xef, 0x79, 0x2a, 0x29, 0x28, 0x09, 0x28, 0x0a, 0x08, 0x08,
601    0xf8, 0x0f, 0x80, 0x00, 0x80, 0x00};
602 #define rbearmask_width 16
603 #define rbearmask_height 15
604 static unsigned char rbearmask_bits[] = {
605    0x80, 0x00, 0xfc, 0x1f, 0xfc, 0x1f, 0xfc, 0x1f, 0xfc, 0x1f, 0xfe, 0x3f,
606    0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xfc, 0x1f,
607    0xfc, 0x1f, 0xfc, 0x1f, 0x80, 0x00};
608 #define lbearcur_width 16
609 #define lbearcur_height 15
610 #define lbearcur_x_hot 7
611 #define lbearcur_y_hot 7
612 static unsigned char lbearcur_bits[] = {
613    0x80, 0x00, 0x80, 0x00, 0xf0, 0x07, 0x10, 0x04, 0x50, 0x04, 0x54, 0x14,
614    0x52, 0x24, 0x5f, 0x7c, 0x52, 0x24, 0x54, 0x14, 0xd0, 0x05, 0x10, 0x04,
615    0xf0, 0x07, 0x80, 0x00, 0x80, 0x00};
616 #define lbearmask_width 16
617 #define lbearmask_height 15
618 static unsigned char lbearmask_bits[] = {
619    0x80, 0x00, 0xf8, 0x0f, 0xf8, 0x0f, 0xf8, 0x0f, 0xfc, 0x1f, 0xfe, 0x3f,
620    0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x0f,
621    0xf8, 0x0f, 0xf8, 0x0f, 0x80, 0x00};
622 
623 #define logo_width 32
624 #define logo_height 32
625 static unsigned char logo_bits[] = {
626    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0x00, 0x00,
627    0x6c, 0xb0, 0x01, 0x00, 0xe0, 0x86, 0xfb, 0x01, 0xc0, 0x28, 0x53, 0x03,
628    0xd0, 0x55, 0xa7, 0x02, 0x80, 0x01, 0x06, 0x03, 0xf0, 0xdf, 0x7f, 0x02,
629    0xf0, 0xdf, 0x7f, 0x03, 0x00, 0x03, 0x0c, 0x02, 0x30, 0x57, 0x5d, 0x03,
630    0x50, 0xa6, 0x98, 0x02, 0xb0, 0x4e, 0x39, 0x03, 0x50, 0xae, 0x3a, 0x02,
631    0xb0, 0x4c, 0x31, 0x03, 0x50, 0x9d, 0x72, 0x02, 0xb0, 0x18, 0x65, 0x02,
632    0x50, 0x39, 0xe0, 0x00, 0xb0, 0x72, 0xc6, 0x19, 0x50, 0xe5, 0x97, 0x1f,
633    0xb0, 0x8a, 0x23, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
634    0xf0, 0x3f, 0xff, 0x03, 0xe0, 0x3f, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00,
635    0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0xff, 0x03, 0xf0, 0x3f, 0xff, 0x03,
636    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
637 
638 #define prohibition_width 16
639 #define prohibition_height 16
640 #define prohibition_x_hot 7
641 #define prohibition_y_hot 7
642 static unsigned char prohibition_bits[] = {
643    0xc0, 0x01, 0x30, 0x06, 0x0c, 0x18, 0x0c, 0x10, 0x12, 0x20, 0x22, 0x20,
644    0x41, 0x40, 0x81, 0x40, 0x01, 0x41, 0x02, 0x22, 0x02, 0x24, 0x04, 0x18,
645    0x0c, 0x18, 0x30, 0x06, 0xc0, 0x01, 0x00, 0x00};
646 static unsigned char prohibitionmask_bits[] = {
647    0xc0, 0x01, 0xf0, 0x07, 0xfc, 0x1f, 0xfc, 0x1f, 0xfe, 0x3f, 0xfe, 0x3f,
648    0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfc, 0x1f,
649    0xfc, 0x1f, 0xf0, 0x07, 0xc0, 0x01, 0x00, 0x00};
650 #define ddcursor_width 16
651 #define ddcursor_height 16
652 #define ddcursor_x_hot 0
653 #define ddcursor_y_hot 0
654 static unsigned char ddcursor_bits[] = {
655    0x0f, 0x00, 0x03, 0x00, 0x05, 0x00, 0x09, 0x00, 0x10, 0x00, 0x00, 0x00,
656    0x00, 0x02, 0x00, 0x02, 0x60, 0xc6, 0x50, 0x2a, 0x50, 0x2a, 0xa0, 0xc6,
657    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
658 #define featurescursor_width 16
659 #define featurescursor_height 16
660 #define featurescursor_x_hot 0
661 #define featurescursor_y_hot 0
662 static unsigned char featurescursor_bits[] = {
663    0x0f, 0x00, 0x03, 0x00, 0x05, 0x00, 0x09, 0x00, 0x10, 0x00, 0x00, 0x00,
664    0x04, 0x00, 0x02, 0x40, 0x67, 0xec, 0xf2, 0x4a, 0x12, 0x4a, 0x62, 0x94,
665    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
666 
667 
InitCursors(void)668 void InitCursors(void) {
669     GWindow mask, image;
670     /* The XServer shipping with redhat 7.1 seems to suffer a protocol change */
671     /*  with the red and blue members of XColor structure reversed */
672     /* So all of my cursors which should be red (to match the points drawn */
673     /*  on the screen) come out blue. If I run the same image on another server*/
674     /*  it's red. Oh well. */
675 
676     image = GDrawCreateBitmap(NULL,magplus_width,magplus_height,magplus_bits);
677     ct_magplus = GDrawCreateCursor(image,image,0x000000,0xffffff,magplus_x_hot,
678 	    magplus_y_hot);
679     GDrawDestroyWindow(image);
680     image = GDrawCreateBitmap(NULL,magminus_width,magminus_height,magminus_bits);
681     ct_magminus = GDrawCreateCursor(image,image,0x000000,0xffffff,magminus_x_hot,
682 	    magminus_y_hot);
683     GDrawDestroyWindow(image);
684 
685     image = GDrawCreateBitmap(NULL,pointercur_width,pointercur_height,pointercur_bits);
686     mask = GDrawCreateBitmap(NULL,pointercurmask_width,pointercurmask_height,pointercurmask_bits);
687     ct_mypointer = GDrawCreateCursor(image,mask,0x000000,0xffffff,pointercur_x_hot,
688 	    pointercur_y_hot);
689     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
690 
691     image = GDrawCreateBitmap(NULL,pointercic_width,pointercic_height,pointercic_bits);
692     mask = GDrawCreateBitmap(NULL,pointercic_width,pointercic_height,pointercicmask_bits);
693     ct_circle = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointercic_x_hot,
694 	    pointercic_y_hot);
695     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
696     image = GDrawCreateBitmap(NULL,pointerhvcic_width,pointerhvcic_height,pointerhvcic_bits);
697     mask = GDrawCreateBitmap(NULL,pointerhvcic_width,pointerhvcic_height,pointerhvcicmask_bits);
698     ct_hvcircle = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointerhvcic_x_hot,
699 	    pointerhvcic_y_hot);
700     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
701     image = GDrawCreateBitmap(NULL,pointertri_width,pointertri_height,pointertri_bits);
702     mask = GDrawCreateBitmap(NULL,pointertri_width,pointertri_height,pointertrimask_bits);
703     ct_triangle = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointertri_x_hot,
704 	    pointertri_y_hot);
705     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
706     image = GDrawCreateBitmap(NULL,pointersqr_width,pointersqr_height,pointersqr_bits);
707     mask = GDrawCreateBitmap(NULL,pointersqr_width,pointersqr_height,pointersqrmask_bits);
708     ct_square = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointersqr_x_hot,
709 	    pointersqr_y_hot);
710     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
711     image = GDrawCreateBitmap(NULL,pencur_width,pencur_height,pencur_bits);
712     mask = GDrawCreateBitmap(NULL,pencur_width,pencur_height,pencurmask_bits);
713     ct_pen = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pencur_x_hot,
714 	    pencur_y_hot);
715     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
716     image = GDrawCreateBitmap(NULL,setwidthcur_width,setwidthcur_height,setwidthcur_bits);
717     /*mask = GDrawCreateBitmap(NULL,setwidthcur_width,setwidthcur_height,setwidthmask_bits);*/
718     ct_setwidth = GDrawCreateCursor(image,image,0xff0000,0xffffff,setwidthcur_x_hot,
719 	    setwidthcur_y_hot);
720     GDrawDestroyWindow(image);
721 #if _CursorsMustBe16x16
722     ct_g2circle = ct_hvcircle;
723 #else
724     image = GDrawCreateBitmap(NULL,pointerg2cic_width,pointerg2cic_height,pointerg2cic_bits);
725     mask = GDrawCreateBitmap(NULL,pointerg2cic_width,pointerg2cic_height,pointerg2cicmask_bits);
726     ct_g2circle = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointerg2cic_x_hot,
727 	    pointerg2cic_y_hot);
728     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
729 #endif
730 
731     image = GDrawCreateBitmap(NULL,pointerleft_width,pointerleft_height,pointerleft_bits);
732     mask = GDrawCreateBitmap(NULL,pointerleft_width,pointerleft_height,pointerleftmask_bits);
733     ct_spiroleft = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointerleft_x_hot,
734 	    pointerleft_y_hot);
735     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
736     image = GDrawCreateBitmap(NULL,pointerright_width,pointerright_height,pointerright_bits);
737     mask = GDrawCreateBitmap(NULL,pointerright_width,pointerright_height,pointerrightmask_bits);
738     ct_spiroright = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pointerright_x_hot,
739 	    pointerright_y_hot);
740     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
741 
742     image = GDrawCreateBitmap(NULL,rulercur_width,rulercur_height,rulercur_bits);
743     ct_ruler = GDrawCreateCursor(image,image,0x000000,0xffffff,rulercur_x_hot,
744 	    rulercur_y_hot);
745     GDrawDestroyWindow(image);
746 
747     image = GDrawCreateBitmap(NULL,knifecur_width,knifecur_height,knifecur_bits);
748     mask = GDrawCreateBitmap(NULL,knifecur_width,knifecur_height,knifecurmask_bits);
749     ct_knife = GDrawCreateCursor(image,mask,0xff0000,0xffffff,knifecur_x_hot,
750 	    knifecur_y_hot);
751     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
752 
753     image = GDrawCreateBitmap(NULL,flipcur_width,flipcur_height,flipcur_bits);
754     mask = GDrawCreateBitmap(NULL,flipcur_width,flipcur_height,flipcurmask_bits);
755     ct_flip = GDrawCreateCursor(image,image,0xff0000,0xffffff,flipcur_x_hot,
756 	    flipcur_y_hot);
757     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
758 
759     image = GDrawCreateBitmap(NULL,rotatecur_width,rotatecur_height,rotatecur_bits);
760     ct_rotate = GDrawCreateCursor(image,image,0x000000,0xffffff,rotatecur_x_hot,
761 	    rotatecur_y_hot);
762     GDrawDestroyWindow(image);
763 
764     image = GDrawCreateBitmap(NULL,scalecur_width,scalecur_height,scalecur_bits);
765     mask = GDrawCreateBitmap(NULL,scalecur_width,scalecur_height,scalecurmask_bits);
766     ct_scale = GDrawCreateCursor(image,image,0xff0000,0xffffff,scalecur_x_hot,
767 	    scalecur_y_hot);
768     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
769 
770     image = GDrawCreateBitmap(NULL,skewcur_width,skewcur_height,skewcur_bits);
771     mask = GDrawCreateBitmap(NULL,skewcur_width,skewcur_height,skewcurmask_bits);
772     ct_skew = GDrawCreateCursor(image,image,0xff0000,0xffffff,skewcur_x_hot,
773 	    skewcur_y_hot);
774     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
775 
776     image = GDrawCreateBitmap(NULL,rotate3dcur_width,rotate3dcur_height,rotate3dcur_bits);
777     ct_3drotate = GDrawCreateCursor(image,image,0xff0000,0xffffff,rotate3dcur_x_hot,
778 	    rotate3dcur_y_hot);
779     GDrawDestroyWindow(image);
780 
781     image = GDrawCreateBitmap(NULL,perspectivecur_width,perspectivecur_height,perspectivecur_bits);
782     ct_perspective = GDrawCreateCursor(image,image,0xff0000,0xffffff,perspectivecur_x_hot,
783 	    perspectivecur_y_hot);
784     GDrawDestroyWindow(image);
785 
786     image = GDrawCreateBitmap(NULL,rectcur_width,rectcur_height,rectcur_bits);
787     ct_rect = GDrawCreateCursor(image,image,0xff0000,0xffffff,rectcur_x_hot,
788 	    rectcur_y_hot);
789     GDrawDestroyWindow(image);
790     image = GDrawCreateBitmap(NULL,elipsecur_width,elipsecur_height,elipsecur_bits);
791     ct_elipse = GDrawCreateCursor(image,image,0xff0000,0xffffff,elipsecur_x_hot,
792 	    elipsecur_y_hot);
793     GDrawDestroyWindow(image);
794     image = GDrawCreateBitmap(NULL,polycur_width,polycur_height,polycur_bits);
795     ct_poly = GDrawCreateCursor(image,image,0xff0000,0xffffff,polycur_x_hot,
796 	    polycur_y_hot);
797     GDrawDestroyWindow(image);
798     image = GDrawCreateBitmap(NULL,starcur_width,starcur_height,starcur_bits);
799     ct_star = GDrawCreateCursor(image,image,0xff0000,0xffffff,starcur_x_hot,
800 	    starcur_y_hot);
801     GDrawDestroyWindow(image);
802 
803     image = GDrawCreateBitmap(NULL,nwse_width,nwse_height,nwse_bits);
804     ct_nwse = GDrawCreateCursor(image,image,0xff0000,0xffffff,nwse_x_hot,
805 	    nwse_y_hot);
806     GDrawDestroyWindow(image);
807     image = GDrawCreateBitmap(NULL,nesw_width,nesw_height,nesw_bits);
808     ct_nesw = GDrawCreateCursor(image,image,0xff0000,0xffffff,nesw_x_hot,
809 	    nesw_y_hot);
810     GDrawDestroyWindow(image);
811     image = GDrawCreateBitmap(NULL,leftright_width,leftright_height,leftright_bits);
812     ct_leftright = GDrawCreateCursor(image,image,0xff0000,0xffffff,leftright_x_hot,
813 	    leftright_y_hot);
814     GDrawDestroyWindow(image);
815     image = GDrawCreateBitmap(NULL,updown_width,updown_height,updown_bits);
816     ct_updown = GDrawCreateCursor(image,image,0xff0000,0xffffff,updown_x_hot,
817 	    updown_y_hot);
818     GDrawDestroyWindow(image);
819 
820     image = GDrawCreateBitmap(NULL,pencil_width,pencil_height,pencil_bits);
821     mask = GDrawCreateBitmap(NULL,pencil_width,pencil_height,pencilmask_bits);
822     ct_pencil = GDrawCreateCursor(image,mask,0xff0000,0xffffff,pencil_x_hot,
823 	    pencil_y_hot);
824     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
825     image = GDrawCreateBitmap(NULL,eyedropper_width,eyedropper_height,eyedropper_bits);
826     mask = GDrawCreateBitmap(NULL,eyedropper_width,eyedropper_height,eyedroppermask_bits);
827     ct_eyedropper = GDrawCreateCursor(image,mask,0xff0000,0xffffff,eyedropper_x_hot,
828 	    eyedropper_y_hot);
829     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
830     image = GDrawCreateBitmap(NULL,shift_width,shift_height,shift_bits);
831     ct_shift = GDrawCreateCursor(image,image,0xff0000,0xffffff,shift_x_hot,
832 	    shift_y_hot);
833     GDrawDestroyWindow(image);
834     image = GDrawCreateBitmap(NULL,linecur_width,linecur_height,linecur_bits);
835     ct_line = GDrawCreateCursor(image,image,0xff0000,0xffffff,linecur_x_hot,
836 	    linecur_y_hot);
837     GDrawDestroyWindow(image);
838     image = GDrawCreateBitmap(NULL,hand_width,hand_height,hand_bits);
839     mask = GDrawCreateBitmap(NULL,hand_width,hand_height,handmask_bits);
840     ct_myhand = GDrawCreateCursor(image,mask,0xff0000,0xffffff,hand_x_hot,
841 	    hand_y_hot);
842     GDrawDestroyWindow(image); GDrawDestroyWindow(mask);
843     image = GDrawCreateBitmap(NULL,filledrectcur_width,filledrectcur_height,filledrectcur_bits);
844     ct_filledrect = GDrawCreateCursor(image,image,0xff0000,0xffffff,filledrectcur_x_hot,
845 	    filledrectcur_y_hot);
846     GDrawDestroyWindow(image);
847     image = GDrawCreateBitmap(NULL,filledelipsecur_width,filledelipsecur_height,filledelipsecur_bits);
848     ct_filledelipse = GDrawCreateCursor(image,image,0xff0000,0xffffff,filledelipsecur_x_hot,
849 	    filledelipsecur_y_hot);
850     GDrawDestroyWindow(image);
851 
852     image = GDrawCreateBitmap(NULL,kerncur_width,kerncur_height,kerncur_bits);
853     mask = GDrawCreateBitmap(NULL,rbearmask_width,rbearmask_height,rbearmask_bits);
854     ct_kerning = GDrawCreateCursor(image,mask,0xff0000,0xffffff,kerncur_x_hot,
855 	    kerncur_y_hot);
856     GDrawDestroyWindow(image);
857     image = GDrawCreateBitmap(NULL,rbearcur_width,rbearcur_height,rbearcur_bits);
858     ct_rbearing = GDrawCreateCursor(image,mask,0xff0000,0xffffff,rbearcur_x_hot,
859 	    rbearcur_y_hot);
860     GDrawDestroyWindow(image);
861     GDrawDestroyWindow(mask);
862     image = GDrawCreateBitmap(NULL,lbearcur_width,lbearcur_height,lbearcur_bits);
863     mask = GDrawCreateBitmap(NULL,lbearmask_width,lbearmask_height,lbearmask_bits);
864     ct_lbearing = GDrawCreateCursor(image,mask,0xff0000,0xffffff,lbearcur_x_hot,
865 	    lbearcur_y_hot);
866     GDrawDestroyWindow(image);
867     GDrawDestroyWindow(mask);
868 
869     logo_icon = GDrawCreateBitmap(NULL,logo_width,logo_height,logo_bits);
870     GDrawSetDefaultIcon(logo_icon);
871 
872     image = GDrawCreateBitmap(NULL,prohibition_width,prohibition_height,prohibition_bits);
873     mask = GDrawCreateBitmap(NULL,prohibition_width,prohibition_height,prohibitionmask_bits);
874     ct_prohibition = GDrawCreateCursor(image,mask,0xff0000,0xffffff,prohibition_x_hot,
875 	    prohibition_y_hot);
876     GDrawDestroyWindow(image);
877     GDrawDestroyWindow(mask);
878     image = GDrawCreateBitmap(NULL,ddcursor_width,ddcursor_height,ddcursor_bits);
879     ct_ddcursor = GDrawCreateCursor(image,image,0xff0000,0xffffff,ddcursor_x_hot,
880 	    ddcursor_y_hot);
881     GDrawDestroyWindow(image);
882     image = GDrawCreateBitmap(NULL,featurescursor_width,featurescursor_height,featurescursor_bits);
883     ct_features = GDrawCreateCursor(image,image,0xff0000,0xffffff,featurescursor_x_hot,
884 	    featurescursor_y_hot);
885     GDrawDestroyWindow(image);
886 }
887