|
|
1.1 root 1: /************************************************************
2: Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
3:
4: All Rights Reserved
5:
6: Permission to use, copy, modify, and distribute this
7: software and its documentation for any purpose and without
8: fee is hereby granted, provided that the above copyright no-
9: tice appear in all copies and that both that copyright no-
10: tice and this permission notice appear in supporting docu-
11: mentation, and that the names of Sun or MIT not be used in
12: advertising or publicity pertaining to distribution of the
13: software without specific prior written permission. Sun and
14: M.I.T. make no representations about the suitability of this
15: software for any purpose. It is provided "as is" without any
16: express or implied warranty.
17:
18: SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
19: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT-
20: NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI-
21: ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
22: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
23: PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
24: OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
25: THE USE OR PERFORMANCE OF THIS SOFTWARE.
26:
27: ********************************************************/
28:
29: #include "sun.h"
30: #include "keysym.h"
31:
32: /*
33: * XXX - Its not clear what to map these to for now.
34: * keysyms.h doesn't define enough function key names.
35: */
36:
37:
38: #ifndef XK_L1
39: #define XK_L1 XK_Cancel
40: #define XK_L2 XK_Redo
41: #define XK_R1 NoSymbol
42: #define XK_R2 NoSymbol
43: #define XK_R3 NoSymbol
44: #define XK_L3 XK_Menu
45: #define XK_L4 XK_Undo
46: #define XK_R4 NoSymbol
47: #define XK_R5 NoSymbol
48: #define XK_R6 NoSymbol
49: #define XK_L5 XK_Insert
50: #define XK_L6 XK_Select
51: #define XK_R7 NoSymbol
52: #define XK_R8 XK_Up
53: #define XK_R9 NoSymbol
54: #define XK_L7 XK_Execute
55: #define XK_L8 XK_Print
56: #define XK_R10 XK_Left
57: #define XK_R11 XK_Home
58: #define XK_R12 XK_Right
59: #define XK_L9 XK_Find
60: #define XK_L10 XK_Help
61: #define XK_R13 NoSymbol
62: #define XK_R14 XK_Down
63: #define XK_R15 NoSymbol
64: #endif
65:
66: #ifdef notdef
67: static KeySym KlunkMap[] = {
68: };
69:
70: static KeySym VT100[] = {
71: };
72: #endif
73:
74: static KeySym Sun2Map[] = {
75: XK_L1, NoSymbol, /* 0x01 */
76: NoSymbol, NoSymbol, /* 0x02 */
77: XK_L2, NoSymbol, /* 0x03 */
78: NoSymbol, NoSymbol, /* 0x4 */
79: XK_F1, NoSymbol, /* 0x5 */
80: XK_F2, NoSymbol, /* 0x6 */
81: NoSymbol, NoSymbol, /* 0x7 */
82: XK_F3, NoSymbol, /* 0x8 */
83: NoSymbol, NoSymbol, /* 0x9 */
84: XK_F4, NoSymbol, /* 0xa */
85: NoSymbol, NoSymbol, /* 0xb */
86: XK_F5, NoSymbol, /* 0xc */
87: NoSymbol, NoSymbol, /* 0xd */
88: XK_F6, NoSymbol, /* 0xe */
89: NoSymbol, NoSymbol, /* 0xf */
90: XK_F7, NoSymbol, /* 0x10 */
91: XK_F8, NoSymbol, /* 0x11 */
92: XK_F9, NoSymbol, /* 0x12 */
93: XK_Break, NoSymbol, /* 0x13 */
94: NoSymbol, NoSymbol, /* 0x14 */
95: XK_R1, NoSymbol, /* 0x15 */
96: XK_R2, NoSymbol, /* 0x16 */
97: XK_R3, NoSymbol, /* 0x17 */
98: NoSymbol, NoSymbol, /* 0x18 */
99: XK_L3, NoSymbol, /* 0x19 */
100: XK_L4, NoSymbol, /* 0x1a */
101: NoSymbol, NoSymbol, /* 0x1b */
102: NoSymbol, NoSymbol, /* 0x1c */
103: XK_Escape, NoSymbol, /* 0x1d */
104: XK_1, XK_exclam, /* 0x1e */
105: XK_2, XK_at, /* 0x1f */
106: XK_3, XK_numbersign, /* 0x20 */
107: XK_4, XK_dollar, /* 0x21 */
108: XK_5, XK_percent, /* 0x22 */
109: XK_6, XK_asciicircum, /* 0x23 */
110: XK_7, XK_ampersand, /* 0x24 */
111: XK_8, XK_asterisk, /* 0x25 */
112: XK_9, XK_parenleft, /* 0x26 */
113: XK_0, XK_parenright, /* 0x27 */
114: XK_minus, XK_underscore, /* 0x28 */
115: XK_equal, XK_plus, /* 0x29 */
116: XK_quoteleft, XK_asciitilde, /* 0x2a */
117: XK_BackSpace, NoSymbol, /* 0x2b */
118: NoSymbol, NoSymbol, /* 0x2c */
119: XK_R4, NoSymbol, /* 0x2d */
120: XK_R5, NoSymbol, /* 0x2e */
121: XK_R6, NoSymbol, /* 0x2f */
122: NoSymbol, NoSymbol, /* 0x30 */
123: XK_L5, NoSymbol, /* 0x31 */
124: NoSymbol, NoSymbol, /* 0x32 */
125: XK_L6, NoSymbol, /* 0x33 */
126: NoSymbol, NoSymbol, /* 0x34 */
127: XK_Tab, NoSymbol, /* 0x35 */
128: XK_Q, NoSymbol, /* 0x36 */
129: XK_W, NoSymbol, /* 0x37 */
130: XK_E, NoSymbol, /* 0x38 */
131: XK_R, NoSymbol, /* 0x39 */
132: XK_T, NoSymbol, /* 0x3a */
133: XK_Y, NoSymbol, /* 0x3b */
134: XK_U, NoSymbol, /* 0x3c */
135: XK_I, NoSymbol, /* 0x3d */
136: XK_O, NoSymbol, /* 0x3e */
137: XK_P, NoSymbol, /* 0x3f */
138: XK_bracketleft, XK_braceleft, /* 0x40 */
139: XK_bracketright, XK_braceright, /* 0x41 */
140: XK_Delete, NoSymbol, /* 0x42 */
141: NoSymbol, NoSymbol, /* 0x43 */
142: XK_R7, NoSymbol, /* 0x44 */
143: XK_Up, XK_R8, /* 0x45 */
144: XK_R9, NoSymbol, /* 0x46 */
145: NoSymbol, NoSymbol, /* 0x47 */
146: XK_L7, NoSymbol, /* 0x48 */
147: XK_L8, NoSymbol, /* 0x49 */
148: NoSymbol, NoSymbol, /* 0x4a */
149: NoSymbol, NoSymbol, /* 0x4b */
150: XK_Control_L, NoSymbol, /* 0x4c */
151: XK_A, NoSymbol, /* 0x4d */
152: XK_S, NoSymbol, /* 0x4e */
153: XK_D, NoSymbol, /* 0x4f */
154: XK_F, NoSymbol, /* 0x50 */
155: XK_G, NoSymbol, /* 0x51 */
156: XK_H, NoSymbol, /* 0x52 */
157: XK_J, NoSymbol, /* 0x53 */
158: XK_K, NoSymbol, /* 0x54 */
159: XK_L, NoSymbol, /* 0x55 */
160: XK_semicolon, XK_colon, /* 0x56 */
161: XK_quoteright, XK_quotedbl, /* 0x57 */
162: XK_backslash, XK_bar, /* 0x58 */
163: XK_Return, NoSymbol, /* 0x59 */
164: NoSymbol, NoSymbol, /* 0x5a */
165: XK_Left, XK_R10, /* 0x5b */
166: XK_R11, NoSymbol, /* 0x5c */
167: XK_Right, NoSymbol, /* 0x5d */
168: NoSymbol, NoSymbol, /* 0x5e */
169: XK_L9, NoSymbol, /* 0x5f */
170: NoSymbol, NoSymbol, /* 0x60 */
171: XK_L10, NoSymbol, /* 0x61 */
172: NoSymbol, NoSymbol, /* 0x62 */
173: XK_Shift_L, NoSymbol, /* 0x63 */
174: XK_Z, NoSymbol, /* 0x64 */
175: XK_X, NoSymbol, /* 0x65 */
176: XK_C, NoSymbol, /* 0x66 */
177: XK_V, NoSymbol, /* 0x67 */
178: XK_B, NoSymbol, /* 0x68 */
179: XK_N, NoSymbol, /* 0x69 */
180: XK_M, NoSymbol, /* 0x6a */
181: XK_comma, XK_less, /* 0x6b */
182: XK_period, XK_greater, /* 0x6c */
183: XK_slash, XK_question, /* 0x6d */
184: XK_Shift_R, NoSymbol, /* 0x6e */
185: XK_Linefeed, NoSymbol, /* 0x6f */
186: XK_R13, NoSymbol, /* 0x70 */
187: XK_Down, XK_R14, /* 0x71 */
188: XK_R15, NoSymbol, /* 0x72 */
189: NoSymbol, NoSymbol, /* 0x73 */
190: NoSymbol, NoSymbol, /* 0x74 */
191: NoSymbol, NoSymbol, /* 0x75 */
192: NoSymbol, NoSymbol, /* 0x76 */
193: NoSymbol, NoSymbol, /* 0x77 */
194: XK_Meta_L, NoSymbol, /* 0x78 */
195: XK_space, NoSymbol, /* 0x79 */
196: XK_Meta_R, NoSymbol, /* 0x7a */
197: NoSymbol, NoSymbol, /* 0x7b */
198: NoSymbol, NoSymbol, /* 0x7c */
199: NoSymbol, NoSymbol, /* 0x7d */
200: NoSymbol, NoSymbol, /* 0x7e */
201: NoSymbol, NoSymbol, /* 0x7f */
202: };
203:
204: static KeySym Sun3Map[] = {
205: XK_L1, NoSymbol, /* 0x01 */
206: NoSymbol, NoSymbol, /* 0x02 */
207: XK_L2, NoSymbol, /* 0x03 */
208: NoSymbol, NoSymbol, /* 0x4 */
209: XK_F1, NoSymbol, /* 0x5 */
210: XK_F2, NoSymbol, /* 0x6 */
211: NoSymbol, NoSymbol, /* 0x7 */
212: XK_F3, NoSymbol, /* 0x8 */
213: NoSymbol, NoSymbol, /* 0x9 */
214: XK_F4, NoSymbol, /* 0xa */
215: NoSymbol, NoSymbol, /* 0xb */
216: XK_F5, NoSymbol, /* 0xc */
217: NoSymbol, NoSymbol, /* 0xd */
218: XK_F6, NoSymbol, /* 0xe */
219: NoSymbol, NoSymbol, /* 0xf */
220: XK_F7, NoSymbol, /* 0x10 */
221: XK_F8, NoSymbol, /* 0x11 */
222: XK_F9, NoSymbol, /* 0x12 */
223: XK_Break, NoSymbol, /* 0x13 */
224: NoSymbol, NoSymbol, /* 0x14 */
225: XK_R1, NoSymbol, /* 0x15 */
226: XK_R2, NoSymbol, /* 0x16 */
227: XK_R3, NoSymbol, /* 0x17 */
228: NoSymbol, NoSymbol, /* 0x18 */
229: XK_L3, NoSymbol, /* 0x19 */
230: XK_L4, NoSymbol, /* 0x1a */
231: NoSymbol, NoSymbol, /* 0x1b */
232: NoSymbol, NoSymbol, /* 0x1c */
233: XK_Escape, NoSymbol, /* 0x1d */
234: XK_1, XK_exclam, /* 0x1e */
235: XK_2, XK_at, /* 0x1f */
236: XK_3, XK_numbersign, /* 0x20 */
237: XK_4, XK_dollar, /* 0x21 */
238: XK_5, XK_percent, /* 0x22 */
239: XK_6, XK_asciicircum, /* 0x23 */
240: XK_7, XK_ampersand, /* 0x24 */
241: XK_8, XK_asterisk, /* 0x25 */
242: XK_9, XK_parenleft, /* 0x26 */
243: XK_0, XK_parenright, /* 0x27 */
244: XK_minus, XK_underscore, /* 0x28 */
245: XK_equal, XK_plus, /* 0x29 */
246: XK_quoteleft, XK_asciitilde, /* 0x2a */
247: XK_BackSpace, NoSymbol, /* 0x2b */
248: NoSymbol, NoSymbol, /* 0x2c */
249: XK_R4, NoSymbol, /* 0x2d */
250: XK_R5, NoSymbol, /* 0x2e */
251: XK_R6, NoSymbol, /* 0x2f */
252: NoSymbol, NoSymbol, /* 0x30 */
253: XK_L5, NoSymbol, /* 0x31 */
254: NoSymbol, NoSymbol, /* 0x32 */
255: XK_L6, NoSymbol, /* 0x33 */
256: NoSymbol, NoSymbol, /* 0x34 */
257: XK_Tab, NoSymbol, /* 0x35 */
258: XK_Q, NoSymbol, /* 0x36 */
259: XK_W, NoSymbol, /* 0x37 */
260: XK_E, NoSymbol, /* 0x38 */
261: XK_R, NoSymbol, /* 0x39 */
262: XK_T, NoSymbol, /* 0x3a */
263: XK_Y, NoSymbol, /* 0x3b */
264: XK_U, NoSymbol, /* 0x3c */
265: XK_I, NoSymbol, /* 0x3d */
266: XK_O, NoSymbol, /* 0x3e */
267: XK_P, NoSymbol, /* 0x3f */
268: XK_bracketleft, XK_braceleft, /* 0x40 */
269: XK_bracketright, XK_braceright, /* 0x41 */
270: XK_Delete, NoSymbol, /* 0x42 */
271: NoSymbol, NoSymbol, /* 0x43 */
272: XK_R7, NoSymbol, /* 0x44 */
273: XK_Up, XK_R8, /* 0x45 */
274: XK_R9, NoSymbol, /* 0x46 */
275: NoSymbol, NoSymbol, /* 0x47 */
276: XK_L7, NoSymbol, /* 0x48 */
277: XK_L8, NoSymbol, /* 0x49 */
278: NoSymbol, NoSymbol, /* 0x4a */
279: NoSymbol, NoSymbol, /* 0x4b */
280: XK_Control_L, NoSymbol, /* 0x4c */
281: XK_A, NoSymbol, /* 0x4d */
282: XK_S, NoSymbol, /* 0x4e */
283: XK_D, NoSymbol, /* 0x4f */
284: XK_F, NoSymbol, /* 0x50 */
285: XK_G, NoSymbol, /* 0x51 */
286: XK_H, NoSymbol, /* 0x52 */
287: XK_J, NoSymbol, /* 0x53 */
288: XK_K, NoSymbol, /* 0x54 */
289: XK_L, NoSymbol, /* 0x55 */
290: XK_semicolon, XK_colon, /* 0x56 */
291: XK_quoteright, XK_quotedbl, /* 0x57 */
292: XK_backslash, XK_bar, /* 0x58 */
293: XK_Return, NoSymbol, /* 0x59 */
294: NoSymbol, NoSymbol, /* 0x5a */
295: XK_Left, XK_R10, /* 0x5b */
296: XK_R11, NoSymbol, /* 0x5c */
297: XK_Right, NoSymbol, /* 0x5d */
298: NoSymbol, NoSymbol, /* 0x5e */
299: XK_L9, NoSymbol, /* 0x5f */
300: NoSymbol, NoSymbol, /* 0x60 */
301: XK_L10, NoSymbol, /* 0x61 */
302: NoSymbol, NoSymbol, /* 0x62 */
303: XK_Shift_L, NoSymbol, /* 0x63 */
304: XK_Z, NoSymbol, /* 0x64 */
305: XK_X, NoSymbol, /* 0x65 */
306: XK_C, NoSymbol, /* 0x66 */
307: XK_V, NoSymbol, /* 0x67 */
308: XK_B, NoSymbol, /* 0x68 */
309: XK_N, NoSymbol, /* 0x69 */
310: XK_M, NoSymbol, /* 0x6a */
311: XK_comma, XK_less, /* 0x6b */
312: XK_period, XK_greater, /* 0x6c */
313: XK_slash, XK_question, /* 0x6d */
314: XK_Shift_R, NoSymbol, /* 0x6e */
315: XK_Linefeed, NoSymbol, /* 0x6f */
316: XK_R13, NoSymbol, /* 0x70 */
317: XK_Down, XK_R14, /* 0x71 */
318: XK_R15, NoSymbol, /* 0x72 */
319: NoSymbol, NoSymbol, /* 0x73 */
320: NoSymbol, NoSymbol, /* 0x74 */
321: NoSymbol, NoSymbol, /* 0x75 */
322: NoSymbol, NoSymbol, /* 0x76 */
323: XK_Caps_Lock, NoSymbol, /* 0x77 */
324: XK_Meta_L, NoSymbol, /* 0x78 */
325: XK_space, NoSymbol, /* 0x79 */
326: XK_Meta_R, NoSymbol, /* 0x7a */
327: NoSymbol, NoSymbol, /* 0x7b */
328: NoSymbol, NoSymbol, /* 0x7c */
329: NoSymbol, NoSymbol, /* 0x7d */
330: NoSymbol, NoSymbol, /* 0x7e */
331: NoSymbol, NoSymbol, /* 0x7f */
332: };
333:
334: KeySymsRec sunKeySyms[] = {
335: /* map minKeyCode maxKC width */
336: #ifdef notdef
337: KlunkMap, 1, 0x7a, 2,
338: VT100Map, 1, 0x7a, 2,
339: #else
340: (KeySym *)NULL, 0, 0, 0,
341: (KeySym *)NULL, 0, 0, 0,
342: #endif
343: Sun2Map, 1, 0x7a, 2,
344: Sun3Map, 1, 0x7a, 2,
345: };
346:
347: #define cT (ControlMask)
348: #define sH (ShiftMask)
349: #define lK (LockMask)
350: #define mT (Mod1Mask)
351: static CARD8 type2modmap[MAP_LENGTH] = {
352: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 00-0f */
353: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10-1f */
354: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20-2f */
355: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30-3f */
356: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40-4f */
357: 0, 0, 0, cT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50-5f */
358: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sH, 0, 0, 0, 0, 0, /* 60-6f */
359: 0, 0, 0, 0, 0, sH, 0, 0, 0, 0, 0, 0, 0, 0, 0, mT,/* 70-7f */
360: 0, mT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80-8f */
361: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90-9f */
362: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0-af */
363: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0-bf */
364: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0-cf */
365: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0-df */
366: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0-ef */
367: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0-ff */
368: };
369:
370: static CARD8 type3modmap[MAP_LENGTH] = {
371: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 00-0f */
372: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10-1f */
373: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20-2f */
374: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30-3f */
375: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 40-4f */
376: 0, 0, 0, cT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50-5f */
377: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, sH, 0, 0, 0, 0, 0, /* 60-6f */
378: 0, 0, 0, 0, 0, sH, 0, 0, 0, 0, 0, 0, 0, 0, lK, mT,/* 70-7f */
379: 0, mT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 80-8f */
380: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 90-9f */
381: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* a0-af */
382: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* b0-bf */
383: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* c0-cf */
384: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* d0-df */
385: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* e0-ef */
386: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* f0-ff */
387: };
388:
389: CARD8 *sunModMap[] = {
390: NULL,
391: NULL,
392: type2modmap,
393: type3modmap,
394: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.