gsplus/src/win_keymap.h

138 lines
4.5 KiB
C

/* this table is used to search for the Windows VK_* in col 1 or 2 */
/* flags bit 8 is or'ed into the VK, so we can distinguish keypad keys */
/* regardless of numlock */
int g_a2_key_to_wsym[][3] = {
{ kVK_Escape, VK_ESCAPE, 0 },
{ kVK_F1, VK_F1, 0 },
{ kVK_F2, VK_F2, 0 },
{ kVK_F3, VK_F3, 0 },
{ kVK_F4, VK_F4, 0 },
{ kVK_F5, VK_F5, 0 },
{ kVK_F6, VK_F6, 0 },
{ kVK_F7, VK_F7, 0 },
{ kVK_F8, VK_F8, 0 },
{ kVK_F9, VK_F9, 0 },
{ kVK_F10, VK_F10, 0 },
{ kVK_F11, VK_F11, 0 },
{ kVK_F12, VK_F12, 0 },
{ kVK_F13, VK_F13, 0 },
{ kVK_F14, VK_F14, 0 },
{ kVK_F15, VK_F15, 0 },
{ kVK_Reset, VK_PAUSE, VK_PAUSE+0x100 },
{ kVK_Reset, VK_CANCEL, VK_CANCEL+0x100 },
{ kVK_ANSI_Grave, VK_OEM_3, 0 }, /* '`' */
{ kVK_ANSI_1, '1', 0 },
{ kVK_ANSI_2, '2', 0 },
{ kVK_ANSI_3, '3', 0 },
{ kVK_ANSI_4, '4', 0 },
{ kVK_ANSI_5, '5', 0 },
{ kVK_ANSI_6, '6', 0 },
{ kVK_ANSI_7, '7', 0 },
{ kVK_ANSI_8, '8', 0 },
{ kVK_ANSI_9, '9', 0 },
{ kVK_ANSI_0, '0', 0 },
{ kVK_ANSI_Minus, VK_OEM_MINUS, 0 }, /* '-' */
{ kVK_ANSI_Equal, VK_OEM_PLUS, 0 }, /* '=' */
{ kVK_Delete, VK_BACK, 0 }, /* backspace */
{ kVK_Insert, VK_INSERT+0x100, 0 }, /* Insert key */
{ kVK_PageUp, VK_PRIOR+0x100, 0 }, /* pageup */
{ kVK_Home, VK_HOME+0x100, 0 }, /* KP_equal is HOME key */
{ kVK_Tab, VK_TAB, 0 },
{ kVK_ANSI_Q, 'Q', 0 },
{ kVK_ANSI_W, 'W', 0 },
{ kVK_ANSI_E, 'E', 0 },
{ kVK_ANSI_R, 'R', 0 },
{ kVK_ANSI_T, 'T', 0 },
{ kVK_ANSI_Y, 'Y', 0 },
{ kVK_ANSI_U, 'U', 0 },
{ kVK_ANSI_I, 'I', 0 },
{ kVK_ANSI_O, 'O', 0 },
{ kVK_ANSI_P, 'P', 0 },
{ kVK_ANSI_LeftBracket, VK_OEM_4, 0 }, /* [ */
{ kVK_ANSI_RightBracket, VK_OEM_6, 0 }, /* ] */
{ kVK_ANSI_Backslash, VK_OEM_5, 0 }, /* backslash, bar */
{ kVK_ForwardDelete, VK_DELETE+0x100, 0 },
{ kVK_End, VK_END+0x100, 0 },
{ kVK_PageDown, VK_NEXT+0x100, 0 },
// { kVK_CapsLock, VK_CAPITAL, 0 }, // Handled specially!
{ kVK_ANSI_A, 'A', 0 },
{ kVK_ANSI_S, 'S', 0 },
{ kVK_ANSI_D, 'D', 0 },
{ kVK_ANSI_F, 'F', 0 },
{ kVK_ANSI_G, 'G', 0 },
{ kVK_ANSI_H, 'H', 0 },
{ kVK_ANSI_J, 'J', 0 },
{ kVK_ANSI_K, 'K', 0 },
{ kVK_ANSI_L, 'L', 0 },
{ kVK_ANSI_Semicolon, VK_OEM_1, 0 }, /* ; */
{ kVK_ANSI_Quote, VK_OEM_7, 0 }, /* single quote */
{ kVK_Return, VK_RETURN, 0 },
{ kVK_Shift, VK_SHIFT, 0 },
{ kVK_Shift, VK_LSHIFT, 0 },
{ kVK_Shift, VK_RSHIFT, 0 },
{ kVK_ANSI_Z, 'Z', 0 },
{ kVK_ANSI_X, 'X', 0 },
{ kVK_ANSI_C, 'C', 0 },
{ kVK_ANSI_V, 'V', 0 },
{ kVK_ANSI_B, 'B', 0 },
{ kVK_ANSI_N, 'N', 0 },
{ kVK_ANSI_M, 'M', 0 },
{ kVK_ANSI_Comma, VK_OEM_COMMA, 0 }, /* , */
{ kVK_ANSI_Period, VK_OEM_PERIOD, 0 }, /* . */
{ kVK_ANSI_Slash, VK_OEM_2, 0 }, /* / */
/* LMENU/RMENU = alt key = command*/
/* LWIN / RWIN = windows key = option */
/* weird menu key = APPS = option */
{ kVK_Control, VK_CONTROL, VK_CONTROL+0x100 },
{ kVK_Control, VK_LCONTROL, VK_LCONTROL+0x100 },
{ kVK_Control, VK_RCONTROL, VK_RCONTROL+0x100 },
{ kVK_Option, VK_SNAPSHOT+0x100, 0 },/* Opt=prntscrn or alt-r */
{ kVK_Option, VK_LWIN, VK_LWIN+0x100 },
{ kVK_Option, VK_RWIN, VK_RWIN+0x100 },
{ kVK_Option, VK_APPS, VK_APPS+0x100 },
{ kVK_Command, VK_MENU, VK_MENU+0x100 },
{ kVK_Command, VK_LMENU, VK_LMENU+0x100 },
{ kVK_Command, VK_RMENU, VK_RMENU+0x100 },
#ifdef ACTIVEGS
{ kVK_Reset, VK_SCROLL,0 }, /* RESET */
#endif
{ kVK_Space, ' ', 0 },
{ kVK_LeftArrow, VK_LEFT+0x100, 0 },
{ kVK_DownArrow, VK_DOWN+0x100, 0 },
{ kVK_RightArrow, VK_RIGHT+0x100, 0 },
{ kVK_UpArrow, VK_UP+0x100, 0 },
{ kVK_ANSI_Keypad1, VK_NUMPAD1, VK_END },
{ kVK_ANSI_Keypad2, VK_NUMPAD2, VK_DOWN },
{ kVK_ANSI_Keypad3, VK_NUMPAD3, VK_NEXT },
{ kVK_ANSI_Keypad4, VK_NUMPAD4, VK_LEFT },
{ kVK_ANSI_Keypad5, VK_NUMPAD5, VK_CLEAR },
{ kVK_ANSI_Keypad6, VK_NUMPAD6, VK_RIGHT },
{ kVK_ANSI_Keypad7, VK_NUMPAD7, VK_HOME },
{ kVK_ANSI_Keypad8, VK_NUMPAD8, VK_UP },
{ kVK_ANSI_Keypad9, VK_NUMPAD9, VK_PRIOR },
{ kVK_ANSI_Keypad0, VK_NUMPAD0, VK_INSERT },
{ kVK_ANSI_KeypadDecimal, VK_DECIMAL, VK_DECIMAL },
{ kVK_ANSI_KeypadEnter, VK_RETURN+0x100, 0 },
{ kVK_ANSI_KeypadClear, VK_NUMLOCK, VK_NUMLOCK+0x100 }, /* clear */
{ kVK_ANSI_KeypadMinus, VK_SUBTRACT, VK_SUBTRACT+0x100 },
{ kVK_ANSI_KeypadPlus, VK_ADD, VK_ADD+0x100 },
{ kVK_ANSI_KeypadDivide, VK_DIVIDE, VK_DIVIDE+0x100 },
{ kVK_ANSI_KeypadMultiply, VK_MULTIPLY, VK_MULTIPLY+0x100 },
{ -1, -1, -1 }
};