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