winkeybd.h revision 35c4bbdf
105b261ecSmrg#if !defined(WINKEYBD_H)
205b261ecSmrg#define WINKEYBD_H
305b261ecSmrg/*
405b261ecSmrg *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
505b261ecSmrg *
605b261ecSmrg *Permission is hereby granted, free of charge, to any person obtaining
705b261ecSmrg * a copy of this software and associated documentation files (the
805b261ecSmrg *"Software"), to deal in the Software without restriction, including
905b261ecSmrg *without limitation the rights to use, copy, modify, merge, publish,
1005b261ecSmrg *distribute, sublicense, and/or sell copies of the Software, and to
1105b261ecSmrg *permit persons to whom the Software is furnished to do so, subject to
1205b261ecSmrg *the following conditions:
1305b261ecSmrg *
1405b261ecSmrg *The above copyright notice and this permission notice shall be
1505b261ecSmrg *included in all copies or substantial portions of the Software.
1605b261ecSmrg *
1705b261ecSmrg *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1805b261ecSmrg *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1905b261ecSmrg *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2005b261ecSmrg *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
2105b261ecSmrg *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
2205b261ecSmrg *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
2305b261ecSmrg *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2405b261ecSmrg *
2505b261ecSmrg *Except as contained in this notice, the name of the XFree86 Project
2605b261ecSmrg *shall not be used in advertising or otherwise to promote the sale, use
2705b261ecSmrg *or other dealings in this Software without prior written authorization
2805b261ecSmrg *from the XFree86 Project.
2905b261ecSmrg *
3005b261ecSmrg * Authors:	Harold L Hunt II
3105b261ecSmrg */
3205b261ecSmrg
3305b261ecSmrg/*
3405b261ecSmrg * We need symbols for the scan codes of keys.
3505b261ecSmrg */
3605b261ecSmrg#include "winkeynames.h"
3705b261ecSmrg
3835c4bbdfSmrg#define VK_FN 0xFF
3935c4bbdfSmrg
4005b261ecSmrg#define		WIN_KEYMAP_COLS		3
4105b261ecSmrg
426747b715Smrg/* Rows 160 through 165 correspond to software-generated codes, which
436747b715Smrg * may not be associated with the appropriate scan code.
446747b715Smrg */
4505b261ecSmrgconst int
4635c4bbdfSmrg g_iKeyMap[] = {
4735c4bbdfSmrg    /* count      Windows VK,     ASCII,          ASCII when extended VK */
4835c4bbdfSmrg    /* 0 */ 0, 0, 0,
4935c4bbdfSmrg    /* 1 */ 0, 0, 0,
5035c4bbdfSmrg    /* 2 */ 0, 0, 0,
5135c4bbdfSmrg    /* 3 */ VK_CANCEL, 0, KEY_Break,
5235c4bbdfSmrg    /* 4 */ 0, 0, 0,
5335c4bbdfSmrg    /* 5 */ 0, 0, 0,
5435c4bbdfSmrg    /* 6 */ 0, 0, 0,
5535c4bbdfSmrg    /* 7 */ 0, 0, 0,
5635c4bbdfSmrg    /* 8 */ 0, 0, 0,
5735c4bbdfSmrg    /* 9 */ 0, 0, 0,
5835c4bbdfSmrg    /* 10 */ 0, 0, 0,
5935c4bbdfSmrg    /* 11 */ 0, 0, 0,
6035c4bbdfSmrg    /* 12 */ 0, 0, 0,
6135c4bbdfSmrg    /* 13 */ VK_RETURN, 0, KEY_KP_Enter,
6235c4bbdfSmrg    /* 14 */ 0, 0, 0,
6335c4bbdfSmrg    /* 15 */ 0, 0, 0,
6435c4bbdfSmrg    /* 16 */ VK_SHIFT, 0, 0,
6535c4bbdfSmrg    /* 17 */ VK_CONTROL, 0, KEY_RCtrl,
6635c4bbdfSmrg    /* 18 */ VK_MENU, 0, KEY_AltLang,
6735c4bbdfSmrg    /* 19 */ VK_PAUSE, KEY_Pause, 0,
6835c4bbdfSmrg    /* 20 */ 0, 0, 0,
6935c4bbdfSmrg    /* 21 */ 0, 0, 0,
7035c4bbdfSmrg    /* 22 */ 0, 0, 0,
7135c4bbdfSmrg    /* 23 */ 0, 0, 0,
7235c4bbdfSmrg    /* 24 */ 0, 0, 0,
7335c4bbdfSmrg    /* 25 */ 0, 0, 0,
7435c4bbdfSmrg    /* 26 */ 0, 0, 0,
7535c4bbdfSmrg    /* 27 */ 0, 0, 0,
7635c4bbdfSmrg    /* 28 */ 0, 0, 0,
7735c4bbdfSmrg    /* 29 */ 0, 0, 0,
7835c4bbdfSmrg    /* 30 */ 0, 0, 0,
7935c4bbdfSmrg    /* 31 */ 0, 0, 0,
8035c4bbdfSmrg    /* 32 */ 0, 0, 0,
8135c4bbdfSmrg    /* 33 */ VK_PRIOR, 0, KEY_PgUp,
8235c4bbdfSmrg    /* 34 */ VK_NEXT, 0, KEY_PgDown,
8335c4bbdfSmrg    /* 35 */ VK_END, 0, KEY_End,
8435c4bbdfSmrg    /* 36 */ VK_HOME, 0, KEY_Home,
8535c4bbdfSmrg    /* 37 */ VK_LEFT, 0, KEY_Left,
8635c4bbdfSmrg    /* 38 */ VK_UP, 0, KEY_Up,
8735c4bbdfSmrg    /* 39 */ VK_RIGHT, 0, KEY_Right,
8835c4bbdfSmrg    /* 40 */ VK_DOWN, 0, KEY_Down,
8935c4bbdfSmrg    /* 41 */ 0, 0, 0,
9035c4bbdfSmrg    /* 42 */ 0, 0, 0,
9135c4bbdfSmrg    /* 43 */ 0, 0, 0,
9235c4bbdfSmrg    /* 44 */ VK_SNAPSHOT, 0, KEY_Print,
9335c4bbdfSmrg    /* 45 */ VK_INSERT, 0, KEY_Insert,
9435c4bbdfSmrg    /* 46 */ VK_DELETE, 0, KEY_Delete,
9535c4bbdfSmrg    /* 47 */ 0, 0, 0,
9635c4bbdfSmrg    /* 48 */ 0, 0, 0,
9735c4bbdfSmrg    /* 49 */ 0, 0, 0,
9835c4bbdfSmrg    /* 50 */ 0, 0, 0,
9935c4bbdfSmrg    /* 51 */ 0, 0, 0,
10035c4bbdfSmrg    /* 52 */ 0, 0, 0,
10135c4bbdfSmrg    /* 53 */ 0, 0, 0,
10235c4bbdfSmrg    /* 54 */ 0, 0, 0,
10335c4bbdfSmrg    /* 55 */ 0, 0, 0,
10435c4bbdfSmrg    /* 56 */ 0, 0, 0,
10535c4bbdfSmrg    /* 57 */ 0, 0, 0,
10635c4bbdfSmrg    /* 58 */ 0, 0, 0,
10735c4bbdfSmrg    /* 59 */ 0, 0, 0,
10835c4bbdfSmrg    /* 60 */ 0, 0, 0,
10935c4bbdfSmrg    /* 61 */ 0, 0, 0,
11035c4bbdfSmrg    /* 62 */ 0, 0, 0,
11135c4bbdfSmrg    /* 63 */ 0, 0, 0,
11235c4bbdfSmrg    /* 64 */ 0, 0, 0,
11335c4bbdfSmrg    /* 65 */ 0, 0, 0,
11435c4bbdfSmrg    /* 66 */ 0, 0, 0,
11535c4bbdfSmrg    /* 67 */ 0, 0, 0,
11635c4bbdfSmrg    /* 68 */ 0, 0, 0,
11735c4bbdfSmrg    /* 69 */ 0, 0, 0,
11835c4bbdfSmrg    /* 70 */ 0, 0, 0,
11935c4bbdfSmrg    /* 71 */ 0, 0, 0,
12035c4bbdfSmrg    /* 72 */ 0, 0, 0,
12135c4bbdfSmrg    /* 73 */ 0, 0, 0,
12235c4bbdfSmrg    /* 74 */ 0, 0, 0,
12335c4bbdfSmrg    /* 75 */ 0, 0, 0,
12435c4bbdfSmrg    /* 76 */ 0, 0, 0,
12535c4bbdfSmrg    /* 77 */ 0, 0, 0,
12635c4bbdfSmrg    /* 78 */ 0, 0, 0,
12735c4bbdfSmrg    /* 79 */ 0, 0, 0,
12835c4bbdfSmrg    /* 80 */ 0, 0, 0,
12935c4bbdfSmrg    /* 81 */ 0, 0, 0,
13035c4bbdfSmrg    /* 82 */ 0, 0, 0,
13135c4bbdfSmrg    /* 83 */ 0, 0, 0,
13235c4bbdfSmrg    /* 84 */ 0, 0, 0,
13335c4bbdfSmrg    /* 85 */ 0, 0, 0,
13435c4bbdfSmrg    /* 86 */ 0, 0, 0,
13535c4bbdfSmrg    /* 87 */ 0, 0, 0,
13635c4bbdfSmrg    /* 88 */ 0, 0, 0,
13735c4bbdfSmrg    /* 89 */ 0, 0, 0,
13835c4bbdfSmrg    /* 90 */ 0, 0, 0,
13935c4bbdfSmrg    /* 91 */ VK_LWIN, KEY_LMeta, 0,
14035c4bbdfSmrg    /* 92 */ VK_RWIN, KEY_RMeta, 0,
14135c4bbdfSmrg    /* 93 */ VK_APPS, KEY_Menu, 0,
14235c4bbdfSmrg    /* 94 */ 0, 0, 0,
14335c4bbdfSmrg    /* 95 */ 0, 0, 0,
14435c4bbdfSmrg    /* 96 */ 0, 0, 0,
14535c4bbdfSmrg    /* 97 */ 0, 0, 0,
14635c4bbdfSmrg    /* 98 */ 0, 0, 0,
14735c4bbdfSmrg    /* 99 */ 0, 0, 0,
14835c4bbdfSmrg    /* 100 */ 0, 0, 0,
14935c4bbdfSmrg    /* 101 */ 0, 0, 0,
15035c4bbdfSmrg    /* 102 */ 0, 0, 0,
15135c4bbdfSmrg    /* 103 */ 0, 0, 0,
15235c4bbdfSmrg    /* 104 */ 0, 0, 0,
15335c4bbdfSmrg    /* 105 */ 0, 0, 0,
15435c4bbdfSmrg    /* 106 */ 0, 0, 0,
15535c4bbdfSmrg    /* 107 */ 0, 0, 0,
15635c4bbdfSmrg    /* 108 */ 0, 0, 0,
15735c4bbdfSmrg    /* 109 */ 0, 0, 0,
15835c4bbdfSmrg    /* 110 */ 0, 0, 0,
15935c4bbdfSmrg    /* 111 */ VK_DIVIDE, 0, KEY_KP_Divide,
16035c4bbdfSmrg    /* 112 */ 0, 0, 0,
16135c4bbdfSmrg    /* 113 */ 0, 0, 0,
16235c4bbdfSmrg    /* 114 */ 0, 0, 0,
16335c4bbdfSmrg    /* 115 */ 0, 0, 0,
16435c4bbdfSmrg    /* 116 */ 0, 0, 0,
16535c4bbdfSmrg    /* 117 */ 0, 0, 0,
16635c4bbdfSmrg    /* 118 */ 0, 0, 0,
16735c4bbdfSmrg    /* 119 */ 0, 0, 0,
16835c4bbdfSmrg    /* 120 */ 0, 0, 0,
16935c4bbdfSmrg    /* 121 */ 0, 0, 0,
17035c4bbdfSmrg    /* 122 */ 0, 0, 0,
17135c4bbdfSmrg    /* 123 */ 0, 0, 0,
17235c4bbdfSmrg    /* 124 */ 0, 0, 0,
17335c4bbdfSmrg    /* 125 */ 0, 0, 0,
17435c4bbdfSmrg    /* 126 */ 0, 0, 0,
17535c4bbdfSmrg    /* 127 */ 0, 0, 0,
17635c4bbdfSmrg    /* 128 */ 0, 0, 0,
17735c4bbdfSmrg    /* 129 */ 0, 0, 0,
17835c4bbdfSmrg    /* 130 */ 0, 0, 0,
17935c4bbdfSmrg    /* 131 */ 0, 0, 0,
18035c4bbdfSmrg    /* 132 */ 0, 0, 0,
18135c4bbdfSmrg    /* 133 */ 0, 0, 0,
18235c4bbdfSmrg    /* 134 */ 0, 0, 0,
18335c4bbdfSmrg    /* 135 */ 0, 0, 0,
18435c4bbdfSmrg    /* 136 */ 0, 0, 0,
18535c4bbdfSmrg    /* 137 */ 0, 0, 0,
18635c4bbdfSmrg    /* 138 */ 0, 0, 0,
18735c4bbdfSmrg    /* 139 */ 0, 0, 0,
18835c4bbdfSmrg    /* 140 */ 0, 0, 0,
18935c4bbdfSmrg    /* 141 */ 0, 0, 0,
19035c4bbdfSmrg    /* 142 */ 0, 0, 0,
19135c4bbdfSmrg    /* 143 */ 0, 0, 0,
19235c4bbdfSmrg    /* 144 */ 0, 0, 0,
19335c4bbdfSmrg    /* 145 */ 0, 0, 0,
19435c4bbdfSmrg    /* 146 */ 0, 0, 0,
19535c4bbdfSmrg    /* 147 */ 0, 0, 0,
19635c4bbdfSmrg    /* 148 */ 0, 0, 0,
19735c4bbdfSmrg    /* 149 */ 0, 0, 0,
19835c4bbdfSmrg    /* 150 */ 0, 0, 0,
19935c4bbdfSmrg    /* 151 */ 0, 0, 0,
20035c4bbdfSmrg    /* 152 */ 0, 0, 0,
20135c4bbdfSmrg    /* 153 */ 0, 0, 0,
20235c4bbdfSmrg    /* 154 */ 0, 0, 0,
20335c4bbdfSmrg    /* 155 */ 0, 0, 0,
20435c4bbdfSmrg    /* 156 */ 0, 0, 0,
20535c4bbdfSmrg    /* 157 */ 0, 0, 0,
20635c4bbdfSmrg    /* 158 */ 0, 0, 0,
20735c4bbdfSmrg    /* 159 */ 0, 0, 0,
20835c4bbdfSmrg    /* 160 */ VK_LSHIFT, KEY_ShiftL, 0,
20935c4bbdfSmrg    /* 161 */ VK_RSHIFT, KEY_ShiftR, 0,
21035c4bbdfSmrg    /* 162 */ VK_LCONTROL, KEY_LCtrl, 0,
21135c4bbdfSmrg    /* 163 */ VK_RCONTROL, KEY_RCtrl, 0,
21235c4bbdfSmrg    /* 164 */ VK_LMENU, KEY_Alt, 0,
21335c4bbdfSmrg    /* 165 */ VK_RMENU, KEY_AltLang, 0,
21435c4bbdfSmrg    /* 166 */ 0, 0, 0,
21535c4bbdfSmrg    /* 167 */ 0, 0, 0,
21635c4bbdfSmrg    /* 168 */ 0, 0, 0,
21735c4bbdfSmrg    /* 169 */ 0, 0, 0,
21835c4bbdfSmrg    /* 170 */ 0, 0, 0,
21935c4bbdfSmrg    /* 171 */ 0, 0, 0,
22035c4bbdfSmrg    /* 172 */ 0, 0, 0,
22135c4bbdfSmrg    /* 173 */ VK_VOLUME_MUTE, 0, KEY_Mute,
22235c4bbdfSmrg    /* 174 */ VK_VOLUME_DOWN, 0, KEY_AudioLower,
22335c4bbdfSmrg    /* 175 */ VK_VOLUME_UP, 0, KEY_AudioRaise,
22435c4bbdfSmrg    /* 176 */ VK_MEDIA_NEXT_TRACK, 0, KEY_NEXTSONG,
22535c4bbdfSmrg    /* 177 */ VK_MEDIA_PREV_TRACK, 0, KEY_PREVIOUSSONG,
22635c4bbdfSmrg    /* 178 */ VK_MEDIA_STOP, 0, KEY_STOPCD,
22735c4bbdfSmrg    /* 179 */ VK_MEDIA_PLAY_PAUSE, 0, KEY_PLAYPAUSE,
22835c4bbdfSmrg    /* 180 */ 0, 0, 0,
22935c4bbdfSmrg    /* 181 */ 0, 0, 0,
23035c4bbdfSmrg    /* 182 */ 0, 0, 0,
23135c4bbdfSmrg    /* 183 */ 0, 0, 0,
23235c4bbdfSmrg    /* 184 */ 0, 0, 0,
23335c4bbdfSmrg    /* 185 */ 0, 0, 0,
23435c4bbdfSmrg    /* 186 */ 0, 0, 0,
23535c4bbdfSmrg    /* 187 */ 0, 0, 0,
23635c4bbdfSmrg    /* 188 */ 0, 0, 0,
23735c4bbdfSmrg    /* 189 */ 0, 0, 0,
23835c4bbdfSmrg    /* 190 */ 0, 0, 0,
23935c4bbdfSmrg    /* 191 */ 0, 0, 0,
24035c4bbdfSmrg    /* 192 */ 0, 0, 0,
24135c4bbdfSmrg    /* 193 */ 0, 0, 0,
24235c4bbdfSmrg    /* 194 */ 0, 0, 0,
24335c4bbdfSmrg    /* 195 */ 0, 0, 0,
24435c4bbdfSmrg    /* 196 */ 0, 0, 0,
24535c4bbdfSmrg    /* 197 */ 0, 0, 0,
24635c4bbdfSmrg    /* 198 */ 0, 0, 0,
24735c4bbdfSmrg    /* 199 */ 0, 0, 0,
24835c4bbdfSmrg    /* 200 */ 0, 0, 0,
24935c4bbdfSmrg    /* 201 */ 0, 0, 0,
25035c4bbdfSmrg    /* 202 */ 0, 0, 0,
25135c4bbdfSmrg    /* 203 */ 0, 0, 0,
25235c4bbdfSmrg    /* 204 */ 0, 0, 0,
25335c4bbdfSmrg    /* 205 */ 0, 0, 0,
25435c4bbdfSmrg    /* 206 */ 0, 0, 0,
25535c4bbdfSmrg    /* 207 */ 0, 0, 0,
25635c4bbdfSmrg    /* 208 */ 0, 0, 0,
25735c4bbdfSmrg    /* 209 */ 0, 0, 0,
25835c4bbdfSmrg    /* 210 */ 0, 0, 0,
25935c4bbdfSmrg    /* 211 */ 0, 0, 0,
26035c4bbdfSmrg    /* 212 */ 0, 0, 0,
26135c4bbdfSmrg    /* 213 */ 0, 0, 0,
26235c4bbdfSmrg    /* 214 */ 0, 0, 0,
26335c4bbdfSmrg    /* 215 */ 0, 0, 0,
26435c4bbdfSmrg    /* 216 */ 0, 0, 0,
26535c4bbdfSmrg    /* 217 */ 0, 0, 0,
26635c4bbdfSmrg    /* 218 */ 0, 0, 0,
26735c4bbdfSmrg    /* 219 */ 0, 0, 0,
26835c4bbdfSmrg    /* 220 */ 0, 0, 0,
26935c4bbdfSmrg    /* 221 */ 0, 0, 0,
27035c4bbdfSmrg    /* 222 */ 0, 0, 0,
27135c4bbdfSmrg                                        /* 223 */ VK_OEM_8, 0, KEY_RCtrl,
27235c4bbdfSmrg                                        /* at least on Canadian Multilingual Standard layout */
27335c4bbdfSmrg    /* 224 */ 0, 0, 0,
27435c4bbdfSmrg    /* 225 */ 0, 0, 0,
27535c4bbdfSmrg    /* 226 */ 0, 0, 0,
27635c4bbdfSmrg    /* 227 */ 0, 0, 0,
27735c4bbdfSmrg    /* 228 */ 0, 0, 0,
27835c4bbdfSmrg    /* 229 */ 0, 0, 0,
27935c4bbdfSmrg    /* 230 */ 0, 0, 0,
28035c4bbdfSmrg    /* 231 */ 0, 0, 0,
28135c4bbdfSmrg    /* 232 */ 0, 0, 0,
28235c4bbdfSmrg    /* 233 */ 0, 0, 0,
28335c4bbdfSmrg    /* 234 */ 0, 0, 0,
28435c4bbdfSmrg    /* 235 */ 0, 0, 0,
28535c4bbdfSmrg    /* 236 */ 0, 0, 0,
28635c4bbdfSmrg    /* 237 */ 0, 0, 0,
28735c4bbdfSmrg    /* 238 */ 0, 0, 0,
28835c4bbdfSmrg    /* 239 */ 0, 0, 0,
28935c4bbdfSmrg    /* 240 */ 0, 0, 0,
29035c4bbdfSmrg    /* 241 */ 0, 0, 0,
29135c4bbdfSmrg    /* 242 */ 0, 0, 0,
29235c4bbdfSmrg    /* 243 */ 0, 0, 0,
29335c4bbdfSmrg    /* 244 */ 0, 0, 0,
29435c4bbdfSmrg    /* 245 */ 0, 0, 0,
29535c4bbdfSmrg    /* 246 */ 0, 0, 0,
29635c4bbdfSmrg    /* 247 */ 0, 0, 0,
29735c4bbdfSmrg    /* 248 */ 0, 0, 0,
29835c4bbdfSmrg    /* 249 */ 0, 0, 0,
29935c4bbdfSmrg    /* 250 */ 0, 0, 0,
30035c4bbdfSmrg    /* 251 */ 0, 0, 0,
30135c4bbdfSmrg    /* 252 */ 0, 0, 0,
30235c4bbdfSmrg    /* 253 */ 0, 0, 0,
30335c4bbdfSmrg    /* 254 */ 0, 0, 0,
30435c4bbdfSmrg                                /* 255 */ VK_FN, 0, KEY_Fn
30535c4bbdfSmrg                                /* Most keyboards don't generate a scancode for Fn, but a few do... */
30605b261ecSmrg};
30705b261ecSmrg
30835c4bbdfSmrg#endif                          /* WINKEYBD_H */
309