Line data Source code
1 : #include <stdio.h>
2 : #include <gdraw.h>
3 : #include <gkeysym.h>
4 :
5 : static unichar_t BackSpace[] = { 'B', 'a', 'c', 'k', 'S', 'p', 'a', 'c', 'e', '\0' };
6 : static unichar_t Tab[] = { 'T', 'a', 'b', '\0' };
7 : static unichar_t Linefeed[] = { 'L', 'i', 'n', 'e', 'f', 'e', 'e', 'd', '\0' };
8 : static unichar_t Clear[] = { 'C', 'l', 'e', 'a', 'r', '\0' };
9 : static unichar_t Return[] = { 'R', 'e', 't', 'u', 'r', 'n', '\0' };
10 : static unichar_t Pause[] = { 'P', 'a', 'u', 's', 'e', '\0' };
11 : static unichar_t Scroll_Lock[] = { 'S', 'c', 'r', 'o', 'l', 'l', '_', 'L', 'o', 'c', 'k', '\0' };
12 : static unichar_t Sys_Req[] = { 'S', 'y', 's', '_', 'R', 'e', 'q', '\0' };
13 : static unichar_t Escape[] = { 'E', 's', 'c', 'a', 'p', 'e', '\0' };
14 : static unichar_t Delete[] = { 'D', 'e', 'l', 'e', 't', 'e', '\0' };
15 : static unichar_t Home[] = { 'H', 'o', 'm', 'e', '\0' };
16 : static unichar_t Left[] = { 'L', 'e', 'f', 't', '\0' };
17 : static unichar_t Up[] = { 'U', 'p', '\0' };
18 : static unichar_t Right[] = { 'R', 'i', 'g', 'h', 't', '\0' };
19 : static unichar_t Down[] = { 'D', 'o', 'w', 'n', '\0' };
20 : static unichar_t Page_Up[] = { 'P', 'a', 'g', 'e', 'U', 'p', '\0' };
21 : static unichar_t Page_Down[] = { 'P', 'a', 'g', 'e', 'D', 'o', 'w', 'n', '\0' };
22 : static unichar_t End[] = { 'E', 'n', 'd', '\0' };
23 : static unichar_t Begin[] = { 'B', 'e', 'g', 'i', 'n', '\0' };
24 : static unichar_t KP_Home[] = { 'K', 'P', '_', 'H', 'o', 'm', 'e', '\0' };
25 : static unichar_t KP_Left[] = { 'K', 'P', '_', 'L', 'e', 'f', 't', '\0' };
26 : static unichar_t KP_Up[] = { 'K', 'P', '_', 'U', 'p', '\0' };
27 : static unichar_t KP_Right[] = { 'K', 'P', '_', 'R', 'i', 'g', 'h', 't', '\0' };
28 : static unichar_t KP_Down[] = { 'K', 'P', '_', 'D', 'o', 'w', 'n', '\0' };
29 : static unichar_t KP_Page_Up[] = { 'K', 'P', '_', 'P', 'a', 'g', 'e', 'U', 'p', '\0' };
30 : static unichar_t KP_Page_Down[] = { 'K', 'P', '_', 'P', 'a', 'g', 'e', 'D', 'o', 'w', 'n', '\0' };
31 : static unichar_t KP_End[] = { 'K', 'P', '_', 'E', 'n', 'd', '\0' };
32 : static unichar_t KP_Begin[] = { 'K', 'P', '_', 'B', 'e', 'g', 'i', 'n', '\0' };
33 : static unichar_t F1[] = { 'F', '1', '\0' };
34 : static unichar_t F2[] = { 'F', '2', '\0' };
35 : static unichar_t F3[] = { 'F', '3', '\0' };
36 : static unichar_t F4[] = { 'F', '4', '\0' };
37 : static unichar_t F5[] = { 'F', '5', '\0' };
38 : static unichar_t F6[] = { 'F', '6', '\0' };
39 : static unichar_t F7[] = { 'F', '7', '\0' };
40 : static unichar_t F8[] = { 'F', '8', '\0' };
41 : static unichar_t F9[] = { 'F', '9', '\0' };
42 : static unichar_t F10[] = { 'F', '1', '0', '\0' };
43 : static unichar_t F11[] = { 'F', '1', '1', '\0' };
44 : static unichar_t F12[] = { 'F', '1', '2', '\0' };
45 : static unichar_t F13[] = { 'F', '1', '3', '\0' };
46 : static unichar_t F14[] = { 'F', '1', '4', '\0' };
47 : static unichar_t F15[] = { 'F', '1', '5', '\0' };
48 : static unichar_t F16[] = { 'F', '1', '6', '\0' };
49 : static unichar_t F17[] = { 'F', '1', '7', '\0' };
50 : static unichar_t F18[] = { 'F', '1', '8', '\0' };
51 : static unichar_t F19[] = { 'F', '1', '9', '\0' };
52 : static unichar_t F20[] = { 'F', '2', '0', '\0' };
53 : static unichar_t F21[] = { 'F', '2', '1', '\0' };
54 : static unichar_t F22[] = { 'F', '2', '2', '\0' };
55 : static unichar_t F23[] = { 'F', '2', '3', '\0' };
56 : static unichar_t F24[] = { 'F', '2', '4', '\0' };
57 : static unichar_t F25[] = { 'F', '2', '5', '\0' };
58 : static unichar_t F26[] = { 'F', '2', '6', '\0' };
59 : static unichar_t F27[] = { 'F', '2', '7', '\0' };
60 : static unichar_t F28[] = { 'F', '2', '8', '\0' };
61 : static unichar_t F29[] = { 'F', '2', '9', '\0' };
62 : static unichar_t F30[] = { 'F', '3', '0', '\0' };
63 : static unichar_t F31[] = { 'F', '3', '1', '\0' };
64 : static unichar_t F32[] = { 'F', '3', '2', '\0' };
65 : static unichar_t F33[] = { 'F', '3', '3', '\0' };
66 : static unichar_t F34[] = { 'F', '3', '4', '\0' };
67 : static unichar_t F35[] = { 'F', '3', '5', '\0' };
68 : static unichar_t Shift_L[] = { 'S', 'h', 'i', 'f', 't', '_', 'L', '\0' };
69 : static unichar_t Shift_R[] = { 'S', 'h', 'i', 'f', 't', '_', 'R', '\0' };
70 : static unichar_t Control_L[] = { 'C', 'o', 'n', 't', 'r', 'o', 'l', '_', 'L', '\0' };
71 : static unichar_t Control_R[] = { 'C', 'o', 'n', 't', 'r', 'o', 'l', '_', 'R', '\0' };
72 : static unichar_t Caps_Lock[] = { 'C', 'a', 'p', 's', '_', 'L', 'o', 'c', 'k', '\0' };
73 : static unichar_t Shift_Lock[] = { 'S', 'h', 'i', 'f', 't', '_', 'L', 'o', 'c', 'k', '\0' };
74 : static unichar_t Meta_L[] = { 'M', 'e', 't', 'a', '_', 'L', '\0' };
75 : static unichar_t Meta_R[] = { 'M', 'e', 't', 'a', '_', 'R', '\0' };
76 : static unichar_t Alt_L[] = { 'A', 'l', 't', '_', 'L', '\0' };
77 : static unichar_t Alt_R[] = { 'A', 'l', 't', '_', 'R', '\0' };
78 : static unichar_t Super_L[] = { 'S', 'u', 'p', 'e', 'r', '_', 'L', '\0' };
79 : static unichar_t Super_R[] = { 'S', 'u', 'p', 'e', 'r', '_', 'R', '\0' };
80 : static unichar_t Hyper_L[] = { 'H', 'y', 'p', 'e', 'r', '_', 'L', '\0' };
81 : static unichar_t Hyper_R[] = { 'H', 'y', 'p', 'e', 'r', '_', 'R', '\0' };
82 :
83 : unichar_t *GDrawKeysyms[] = {
84 : NULL,
85 : NULL,
86 : NULL,
87 : NULL,
88 : NULL,
89 : NULL,
90 : NULL,
91 : NULL,
92 : BackSpace,
93 : Tab,
94 : Linefeed,
95 : Clear,
96 : NULL,
97 : Return,
98 : NULL,
99 : NULL,
100 : NULL,
101 : NULL,
102 : NULL,
103 : Pause,
104 : Scroll_Lock,
105 : Sys_Req,
106 : NULL,
107 : NULL,
108 : NULL,
109 : NULL,
110 : NULL,
111 : Escape,
112 : NULL,
113 : NULL,
114 : NULL,
115 : NULL,
116 : NULL,
117 : NULL,
118 : NULL,
119 : NULL,
120 : NULL,
121 : NULL,
122 : NULL,
123 : NULL,
124 : NULL,
125 : NULL,
126 : NULL,
127 : NULL,
128 : NULL,
129 : NULL,
130 : NULL,
131 : NULL,
132 : NULL,
133 : NULL,
134 : NULL,
135 : NULL,
136 : NULL,
137 : NULL,
138 : NULL,
139 : NULL,
140 : NULL,
141 : NULL,
142 : NULL,
143 : NULL,
144 : NULL,
145 : NULL,
146 : NULL,
147 : NULL,
148 : NULL,
149 : NULL,
150 : NULL,
151 : NULL,
152 : NULL,
153 : NULL,
154 : NULL,
155 : NULL,
156 : NULL,
157 : NULL,
158 : NULL,
159 : NULL,
160 : NULL,
161 : NULL,
162 : NULL,
163 : NULL,
164 : Home,
165 : Left,
166 : Up,
167 : Right,
168 : Down,
169 : Page_Up,
170 : Page_Down,
171 : End,
172 : Begin,
173 : NULL,
174 : NULL,
175 : NULL,
176 : NULL,
177 : NULL,
178 : NULL,
179 : NULL,
180 : NULL,
181 : NULL,
182 : NULL,
183 : NULL,
184 : NULL,
185 : NULL,
186 : NULL,
187 : NULL,
188 : NULL,
189 : NULL,
190 : NULL,
191 : NULL,
192 : NULL,
193 : NULL,
194 : NULL,
195 : NULL,
196 : NULL,
197 : NULL,
198 : NULL,
199 : NULL,
200 : NULL,
201 : NULL,
202 : NULL,
203 : NULL,
204 : NULL,
205 : NULL,
206 : NULL,
207 : NULL,
208 : NULL,
209 : NULL,
210 : NULL,
211 : NULL,
212 : NULL,
213 : NULL,
214 : NULL,
215 : NULL,
216 : NULL,
217 : NULL,
218 : NULL,
219 : NULL,
220 : NULL,
221 : NULL,
222 : NULL,
223 : NULL,
224 : NULL,
225 : NULL,
226 : NULL,
227 : NULL,
228 : NULL,
229 : NULL,
230 : NULL,
231 : NULL,
232 : NULL,
233 : KP_Home,
234 : KP_Left,
235 : KP_Up,
236 : KP_Right,
237 : KP_Down,
238 : KP_Page_Up,
239 : KP_Page_Down,
240 : KP_End,
241 : KP_Begin,
242 : NULL,
243 : NULL,
244 : NULL,
245 : NULL,
246 : NULL,
247 : NULL,
248 : NULL,
249 : NULL,
250 : NULL,
251 : NULL,
252 : NULL,
253 : NULL,
254 : NULL,
255 : NULL,
256 : NULL,
257 : NULL,
258 : NULL,
259 : NULL,
260 : NULL,
261 : NULL,
262 : NULL,
263 : NULL,
264 : NULL,
265 : NULL,
266 : NULL,
267 : NULL,
268 : NULL,
269 : NULL,
270 : NULL,
271 : NULL,
272 : NULL,
273 : NULL,
274 : F1,
275 : F2,
276 : F3,
277 : F4,
278 : F5,
279 : F6,
280 : F7,
281 : F8,
282 : F9,
283 : F10,
284 : F11,
285 : F12,
286 : F13,
287 : F14,
288 : F15,
289 : F16,
290 : F17,
291 : F18,
292 : F19,
293 : F20,
294 : F21,
295 : F22,
296 : F23,
297 : F24,
298 : F25,
299 : F26,
300 : F27,
301 : F28,
302 : F29,
303 : F30,
304 : F31,
305 : F32,
306 : F33,
307 : F34,
308 : F35,
309 : Shift_L,
310 : Shift_R,
311 : Control_L,
312 : Control_R,
313 : Caps_Lock,
314 : Shift_Lock,
315 : Meta_L,
316 : Meta_R,
317 : Alt_L,
318 : Alt_R,
319 : Super_L,
320 : Super_R,
321 : Hyper_L,
322 : Hyper_R,
323 : NULL,
324 : NULL,
325 : NULL,
326 : NULL,
327 : NULL,
328 : NULL,
329 : NULL,
330 : NULL,
331 : NULL,
332 : NULL,
333 : NULL,
334 : NULL,
335 : NULL,
336 : NULL,
337 : NULL,
338 : NULL,
339 : Delete,
340 : NULL
341 : };
342 :
343 0 : int GKeysymIsModifier(uint16 keysym) {
344 0 : switch(keysym) {
345 : case GK_Shift_L:
346 : case GK_Shift_R:
347 : case GK_Control_L:
348 : case GK_Control_R:
349 : case GK_Meta_L:
350 : case GK_Meta_R:
351 : case GK_Alt_L:
352 : case GK_Alt_R:
353 : case GK_Super_L:
354 : case GK_Super_R:
355 : case GK_Hyper_L:
356 : case GK_Hyper_R:
357 0 : return true;
358 : default:
359 0 : return false;
360 : }
361 : }
|