Imported Upstream version 1.15.1
[deb_xorg-server.git] / hw / xwin / winkeybd.h
CommitLineData
a09e091a
JB
1#if !defined(WINKEYBD_H)
2#define WINKEYBD_H
3/*
4 *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
5 *
6 *Permission is hereby granted, free of charge, to any person obtaining
7 * a copy of this software and associated documentation files (the
8 *"Software"), to deal in the Software without restriction, including
9 *without limitation the rights to use, copy, modify, merge, publish,
10 *distribute, sublicense, and/or sell copies of the Software, and to
11 *permit persons to whom the Software is furnished to do so, subject to
12 *the following conditions:
13 *
14 *The above copyright notice and this permission notice shall be
15 *included in all copies or substantial portions of the Software.
16 *
17 *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20 *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
21 *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
22 *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 *
25 *Except as contained in this notice, the name of the XFree86 Project
26 *shall not be used in advertising or otherwise to promote the sale, use
27 *or other dealings in this Software without prior written authorization
28 *from the XFree86 Project.
29 *
30 * Authors: Harold L Hunt II
31 */
32
33/*
34 * We need symbols for the scan codes of keys.
35 */
36#include "winkeynames.h"
37
38#define VK_FN 0xFF
39
40#define WIN_KEYMAP_COLS 3
41
42/* Rows 160 through 165 correspond to software-generated codes, which
43 * may not be associated with the appropriate scan code.
44 */
45const int
46 g_iKeyMap[] = {
47 /* count Windows VK, ASCII, ASCII when extended VK */
48 /* 0 */ 0, 0, 0,
49 /* 1 */ 0, 0, 0,
50 /* 2 */ 0, 0, 0,
51 /* 3 */ VK_CANCEL, 0, KEY_Break,
52 /* 4 */ 0, 0, 0,
53 /* 5 */ 0, 0, 0,
54 /* 6 */ 0, 0, 0,
55 /* 7 */ 0, 0, 0,
56 /* 8 */ 0, 0, 0,
57 /* 9 */ 0, 0, 0,
58 /* 10 */ 0, 0, 0,
59 /* 11 */ 0, 0, 0,
60 /* 12 */ 0, 0, 0,
61 /* 13 */ VK_RETURN, 0, KEY_KP_Enter,
62 /* 14 */ 0, 0, 0,
63 /* 15 */ 0, 0, 0,
64 /* 16 */ VK_SHIFT, 0, 0,
65 /* 17 */ VK_CONTROL, 0, KEY_RCtrl,
66 /* 18 */ VK_MENU, 0, KEY_AltLang,
67 /* 19 */ VK_PAUSE, KEY_Pause, 0,
68 /* 20 */ 0, 0, 0,
69 /* 21 */ 0, 0, 0,
70 /* 22 */ 0, 0, 0,
71 /* 23 */ 0, 0, 0,
72 /* 24 */ 0, 0, 0,
73 /* 25 */ 0, 0, 0,
74 /* 26 */ 0, 0, 0,
75 /* 27 */ 0, 0, 0,
76 /* 28 */ 0, 0, 0,
77 /* 29 */ 0, 0, 0,
78 /* 30 */ 0, 0, 0,
79 /* 31 */ 0, 0, 0,
80 /* 32 */ 0, 0, 0,
81 /* 33 */ VK_PRIOR, 0, KEY_PgUp,
82 /* 34 */ VK_NEXT, 0, KEY_PgDown,
83 /* 35 */ VK_END, 0, KEY_End,
84 /* 36 */ VK_HOME, 0, KEY_Home,
85 /* 37 */ VK_LEFT, 0, KEY_Left,
86 /* 38 */ VK_UP, 0, KEY_Up,
87 /* 39 */ VK_RIGHT, 0, KEY_Right,
88 /* 40 */ VK_DOWN, 0, KEY_Down,
89 /* 41 */ 0, 0, 0,
90 /* 42 */ 0, 0, 0,
91 /* 43 */ 0, 0, 0,
92 /* 44 */ VK_SNAPSHOT, 0, KEY_Print,
93 /* 45 */ VK_INSERT, 0, KEY_Insert,
94 /* 46 */ VK_DELETE, 0, KEY_Delete,
95 /* 47 */ 0, 0, 0,
96 /* 48 */ 0, 0, 0,
97 /* 49 */ 0, 0, 0,
98 /* 50 */ 0, 0, 0,
99 /* 51 */ 0, 0, 0,
100 /* 52 */ 0, 0, 0,
101 /* 53 */ 0, 0, 0,
102 /* 54 */ 0, 0, 0,
103 /* 55 */ 0, 0, 0,
104 /* 56 */ 0, 0, 0,
105 /* 57 */ 0, 0, 0,
106 /* 58 */ 0, 0, 0,
107 /* 59 */ 0, 0, 0,
108 /* 60 */ 0, 0, 0,
109 /* 61 */ 0, 0, 0,
110 /* 62 */ 0, 0, 0,
111 /* 63 */ 0, 0, 0,
112 /* 64 */ 0, 0, 0,
113 /* 65 */ 0, 0, 0,
114 /* 66 */ 0, 0, 0,
115 /* 67 */ 0, 0, 0,
116 /* 68 */ 0, 0, 0,
117 /* 69 */ 0, 0, 0,
118 /* 70 */ 0, 0, 0,
119 /* 71 */ 0, 0, 0,
120 /* 72 */ 0, 0, 0,
121 /* 73 */ 0, 0, 0,
122 /* 74 */ 0, 0, 0,
123 /* 75 */ 0, 0, 0,
124 /* 76 */ 0, 0, 0,
125 /* 77 */ 0, 0, 0,
126 /* 78 */ 0, 0, 0,
127 /* 79 */ 0, 0, 0,
128 /* 80 */ 0, 0, 0,
129 /* 81 */ 0, 0, 0,
130 /* 82 */ 0, 0, 0,
131 /* 83 */ 0, 0, 0,
132 /* 84 */ 0, 0, 0,
133 /* 85 */ 0, 0, 0,
134 /* 86 */ 0, 0, 0,
135 /* 87 */ 0, 0, 0,
136 /* 88 */ 0, 0, 0,
137 /* 89 */ 0, 0, 0,
138 /* 90 */ 0, 0, 0,
139 /* 91 */ VK_LWIN, KEY_LMeta, 0,
140 /* 92 */ VK_RWIN, KEY_RMeta, 0,
141 /* 93 */ VK_APPS, KEY_Menu, 0,
142 /* 94 */ 0, 0, 0,
143 /* 95 */ 0, 0, 0,
144 /* 96 */ 0, 0, 0,
145 /* 97 */ 0, 0, 0,
146 /* 98 */ 0, 0, 0,
147 /* 99 */ 0, 0, 0,
148 /* 100 */ 0, 0, 0,
149 /* 101 */ 0, 0, 0,
150 /* 102 */ 0, 0, 0,
151 /* 103 */ 0, 0, 0,
152 /* 104 */ 0, 0, 0,
153 /* 105 */ 0, 0, 0,
154 /* 106 */ 0, 0, 0,
155 /* 107 */ 0, 0, 0,
156 /* 108 */ 0, 0, 0,
157 /* 109 */ 0, 0, 0,
158 /* 110 */ 0, 0, 0,
159 /* 111 */ VK_DIVIDE, 0, KEY_KP_Divide,
160 /* 112 */ 0, 0, 0,
161 /* 113 */ 0, 0, 0,
162 /* 114 */ 0, 0, 0,
163 /* 115 */ 0, 0, 0,
164 /* 116 */ 0, 0, 0,
165 /* 117 */ 0, 0, 0,
166 /* 118 */ 0, 0, 0,
167 /* 119 */ 0, 0, 0,
168 /* 120 */ 0, 0, 0,
169 /* 121 */ 0, 0, 0,
170 /* 122 */ 0, 0, 0,
171 /* 123 */ 0, 0, 0,
172 /* 124 */ 0, 0, 0,
173 /* 125 */ 0, 0, 0,
174 /* 126 */ 0, 0, 0,
175 /* 127 */ 0, 0, 0,
176 /* 128 */ 0, 0, 0,
177 /* 129 */ 0, 0, 0,
178 /* 130 */ 0, 0, 0,
179 /* 131 */ 0, 0, 0,
180 /* 132 */ 0, 0, 0,
181 /* 133 */ 0, 0, 0,
182 /* 134 */ 0, 0, 0,
183 /* 135 */ 0, 0, 0,
184 /* 136 */ 0, 0, 0,
185 /* 137 */ 0, 0, 0,
186 /* 138 */ 0, 0, 0,
187 /* 139 */ 0, 0, 0,
188 /* 140 */ 0, 0, 0,
189 /* 141 */ 0, 0, 0,
190 /* 142 */ 0, 0, 0,
191 /* 143 */ 0, 0, 0,
192 /* 144 */ 0, 0, 0,
193 /* 145 */ 0, 0, 0,
194 /* 146 */ 0, 0, 0,
195 /* 147 */ 0, 0, 0,
196 /* 148 */ 0, 0, 0,
197 /* 149 */ 0, 0, 0,
198 /* 150 */ 0, 0, 0,
199 /* 151 */ 0, 0, 0,
200 /* 152 */ 0, 0, 0,
201 /* 153 */ 0, 0, 0,
202 /* 154 */ 0, 0, 0,
203 /* 155 */ 0, 0, 0,
204 /* 156 */ 0, 0, 0,
205 /* 157 */ 0, 0, 0,
206 /* 158 */ 0, 0, 0,
207 /* 159 */ 0, 0, 0,
208 /* 160 */ VK_LSHIFT, KEY_ShiftL, 0,
209 /* 161 */ VK_RSHIFT, KEY_ShiftR, 0,
210 /* 162 */ VK_LCONTROL, KEY_LCtrl, 0,
211 /* 163 */ VK_RCONTROL, KEY_RCtrl, 0,
212 /* 164 */ VK_LMENU, KEY_Alt, 0,
213 /* 165 */ VK_RMENU, KEY_AltLang, 0,
214 /* 166 */ 0, 0, 0,
215 /* 167 */ 0, 0, 0,
216 /* 168 */ 0, 0, 0,
217 /* 169 */ 0, 0, 0,
218 /* 170 */ 0, 0, 0,
219 /* 171 */ 0, 0, 0,
220 /* 172 */ 0, 0, 0,
221 /* 173 */ VK_VOLUME_MUTE, 0, KEY_Mute,
222 /* 174 */ VK_VOLUME_DOWN, 0, KEY_AudioLower,
223 /* 175 */ VK_VOLUME_UP, 0, KEY_AudioRaise,
224 /* 176 */ VK_MEDIA_NEXT_TRACK, 0, KEY_NEXTSONG,
225 /* 177 */ VK_MEDIA_PREV_TRACK, 0, KEY_PREVIOUSSONG,
226 /* 178 */ VK_MEDIA_STOP, 0, KEY_STOPCD,
227 /* 179 */ VK_MEDIA_PLAY_PAUSE, 0, KEY_PLAYPAUSE,
228 /* 180 */ 0, 0, 0,
229 /* 181 */ 0, 0, 0,
230 /* 182 */ 0, 0, 0,
231 /* 183 */ 0, 0, 0,
232 /* 184 */ 0, 0, 0,
233 /* 185 */ 0, 0, 0,
234 /* 186 */ 0, 0, 0,
235 /* 187 */ 0, 0, 0,
236 /* 188 */ 0, 0, 0,
237 /* 189 */ 0, 0, 0,
238 /* 190 */ 0, 0, 0,
239 /* 191 */ 0, 0, 0,
240 /* 192 */ 0, 0, 0,
241 /* 193 */ 0, 0, 0,
242 /* 194 */ 0, 0, 0,
243 /* 195 */ 0, 0, 0,
244 /* 196 */ 0, 0, 0,
245 /* 197 */ 0, 0, 0,
246 /* 198 */ 0, 0, 0,
247 /* 199 */ 0, 0, 0,
248 /* 200 */ 0, 0, 0,
249 /* 201 */ 0, 0, 0,
250 /* 202 */ 0, 0, 0,
251 /* 203 */ 0, 0, 0,
252 /* 204 */ 0, 0, 0,
253 /* 205 */ 0, 0, 0,
254 /* 206 */ 0, 0, 0,
255 /* 207 */ 0, 0, 0,
256 /* 208 */ 0, 0, 0,
257 /* 209 */ 0, 0, 0,
258 /* 210 */ 0, 0, 0,
259 /* 211 */ 0, 0, 0,
260 /* 212 */ 0, 0, 0,
261 /* 213 */ 0, 0, 0,
262 /* 214 */ 0, 0, 0,
263 /* 215 */ 0, 0, 0,
264 /* 216 */ 0, 0, 0,
265 /* 217 */ 0, 0, 0,
266 /* 218 */ 0, 0, 0,
267 /* 219 */ 0, 0, 0,
268 /* 220 */ 0, 0, 0,
269 /* 221 */ 0, 0, 0,
270 /* 222 */ 0, 0, 0,
271 /* 223 */ VK_OEM_8, 0, KEY_RCtrl,
272 /* at least on Canadian Multilingual Standard layout */
273 /* 224 */ 0, 0, 0,
274 /* 225 */ 0, 0, 0,
275 /* 226 */ 0, 0, 0,
276 /* 227 */ 0, 0, 0,
277 /* 228 */ 0, 0, 0,
278 /* 229 */ 0, 0, 0,
279 /* 230 */ 0, 0, 0,
280 /* 231 */ 0, 0, 0,
281 /* 232 */ 0, 0, 0,
282 /* 233 */ 0, 0, 0,
283 /* 234 */ 0, 0, 0,
284 /* 235 */ 0, 0, 0,
285 /* 236 */ 0, 0, 0,
286 /* 237 */ 0, 0, 0,
287 /* 238 */ 0, 0, 0,
288 /* 239 */ 0, 0, 0,
289 /* 240 */ 0, 0, 0,
290 /* 241 */ 0, 0, 0,
291 /* 242 */ 0, 0, 0,
292 /* 243 */ 0, 0, 0,
293 /* 244 */ 0, 0, 0,
294 /* 245 */ 0, 0, 0,
295 /* 246 */ 0, 0, 0,
296 /* 247 */ 0, 0, 0,
297 /* 248 */ 0, 0, 0,
298 /* 249 */ 0, 0, 0,
299 /* 250 */ 0, 0, 0,
300 /* 251 */ 0, 0, 0,
301 /* 252 */ 0, 0, 0,
302 /* 253 */ 0, 0, 0,
303 /* 254 */ 0, 0, 0,
304 /* 255 */ VK_FN, 0, KEY_Fn
305 /* Most keyboards don't generate a scancode for Fn, but a few do... */
306};
307
308#endif /* WINKEYBD_H */