- KEY (KB_padEnter, WXK_NUMPAD_ENTER)
- KEY (KB_padMinus, WXK_NUMPAD_SUBTRACT)
- KEY (KB_padPlus, WXK_NUMPAD_ADD)
- KEY (KB_padTimes, WXK_NUMPAD_MULTIPLY)
- KEY (KB_padDivide, WXK_NUMPAD_DIVIDE)
- KEY (KB_padLeft, WXK_NUMPAD_LEFT)
- KEY (KB_padRight, WXK_NUMPAD_RIGHT)
- KEY (KB_padUp, WXK_NUMPAD_UP)
- KEY (KB_padDown, WXK_NUMPAD_DOWN)
- KEY (KB_padInsert, WXK_NUMPAD_INSERT)
- KEY (KB_padDelete, WXK_NUMPAD_DELETE)
- KEY (KB_padHome, WXK_NUMPAD_HOME)
- KEY (KB_padEnd, WXK_NUMPAD_END)
- KEY (KB_padPageUp, WXK_NUMPAD_PAGEUP)
- //KEY (KB_padPageUp, WXK_NUMPAD_PRIOR)
- KEY (KB_padPageDown, WXK_NUMPAD_PAGEDOWN)
- //KEY (KB_padPageDown, WXK_NUMPAD_NEXT)
- KEY (KB_padCenter, WXK_NUMPAD_SEPARATOR) // ?
- KEY (KB_F1, WXK_F1)
- KEY (KB_F2, WXK_F2)
- KEY (KB_F3, WXK_F3)
- KEY (KB_F4, WXK_F4)
- KEY (KB_F5, WXK_F5)
- KEY (KB_F6, WXK_F6)
- KEY (KB_F7, WXK_F7)
- KEY (KB_F8, WXK_F8)
- KEY (KB_F9, WXK_F9)
- KEY (KB_F10, WXK_F10)
- KEY (KB_F11, WXK_F11)
- KEY (KB_F12, WXK_F12)
- KEY (KB_left, WXK_LEFT)
- KEY (KB_right, WXK_RIGHT)
- KEY (KB_up, WXK_UP)
- KEY (KB_down, WXK_DOWN)
- KEY (KB_insert, WXK_INSERT)
- KEY (KB_delete, WXK_DELETE)
- KEY (KB_home, WXK_HOME)
- KEY (KB_end, WXK_END)
- KEY (KB_pageUp, WXK_PAGEUP)
- KEY (KB_pageDown, WXK_PAGEDOWN)
- KEY (KB_capsLock, WXK_CAPITAL)
- KEY (KB_numLock, WXK_NUMLOCK)
- KEY (KB_scrollLock, WXK_SCROLL)
- KEY (KB_leftShift, WXK_SHIFT)
- KEY (KB_rightShift, WXK_SHIFT)
- KEY (KB_leftCtrl, WXK_CONTROL)
- KEY (KB_rightCtrl, WXK_CONTROL)
- KEY (KB_leftAlt, WXK_ALT)
- KEY (KB_rightAlt, WXK_ALT)
- KEY (KB_leftWindows, WXK_START)
- KEY (KB_rightWindows, WXK_START)
- KEY (KB_menu, WXK_MENU)
- KEY (KB_sysReq, WXK_SNAPSHOT)
- KEY (KB_esc, WXK_ESCAPE)
- KEY (KB_1, '1')
- KEY (KB_2, '2')
- KEY (KB_3, '3')
- KEY (KB_4, '4')
- KEY (KB_5, '5')
- KEY (KB_6, '6')
- KEY (KB_7, '7')
- KEY (KB_8, '8')
- KEY (KB_9, '9')
- KEY (KB_0, '0')
- KEY (KB_minus, WXK_SUBTRACT)
- KEY (KB_equals, WXK_ADD)
- KEY (KB_backSlash, '\\')
- KEY (KB_backspace, WXK_BACK)
- KEY (KB_tab, WXK_TAB)
- KEY (KB_Q, 'Q')
- KEY (KB_W, 'W')
- KEY (KB_E, 'E')
- KEY (KB_R, 'R')
- KEY (KB_T, 'T')
- KEY (KB_Y, 'Y')
- KEY (KB_U, 'U')
- KEY (KB_I, 'I')
- KEY (KB_O, 'O')
- KEY (KB_P, 'P')
- KEY (KB_leftSquareBrace,'[')
- KEY (KB_rightSquareBrace,']')
- KEY (KB_enter, WXK_RETURN)
- KEY (KB_A, 'A')
- KEY (KB_S, 'S')
- KEY (KB_D, 'D')
- KEY (KB_F, 'F')
- KEY (KB_G, 'G')
- KEY (KB_H, 'H')
- KEY (KB_J, 'J')
- KEY (KB_K, 'K')
- KEY (KB_L, 'L')
- KEY (KB_semicolon, ';')
- KEY (KB_apostrophe, '\'')
- KEY (KB_Z, 'Z')
- KEY (KB_X, 'X')
- KEY (KB_C, 'C')
- KEY (KB_V, 'V')
- KEY (KB_B, 'B')
- KEY (KB_N, 'N')
- KEY (KB_M, 'M')
- KEY (KB_comma, ',')
- KEY (KB_period, '.')
- KEY (KB_divide, WXK_DIVIDE)
- KEY (KB_space, WXK_SPACE)
- KEY (KB_tilde, '~')
-
- default:
- key = EVT_asciiCode(event->message);
- break;
+ bool numlock = (event->modifiers & EVT_NUMLOCK) != 0;
+
+ switch ( EVT_scanCode(event->message) )
+ {
+ KEY (KB_padMinus, WXK_NUMPAD_SUBTRACT)
+ KEY (KB_padPlus, WXK_NUMPAD_ADD)
+ KEY (KB_padTimes, WXK_NUMPAD_MULTIPLY)
+ KEY (KB_padDivide, WXK_NUMPAD_DIVIDE)
+ KEY (KB_padCenter, numlock ? WXK_NUMPAD5 : WXK_NUMPAD_SEPARATOR) // ?
+ KEY (KB_padLeft, numlock ? WXK_NUMPAD4 : WXK_NUMPAD_LEFT)
+ KEY (KB_padRight, numlock ? WXK_NUMPAD6 : WXK_NUMPAD_RIGHT)
+ KEY (KB_padUp, numlock ? WXK_NUMPAD8 : WXK_NUMPAD_UP)
+ KEY (KB_padDown, numlock ? WXK_NUMPAD2 : WXK_NUMPAD_DOWN)
+ KEY (KB_padInsert, numlock ? WXK_NUMPAD0 : WXK_NUMPAD_INSERT)
+ KEY (KB_padDelete, numlock ? WXK_DECIMAL : WXK_NUMPAD_DELETE)
+ KEY (KB_padHome, numlock ? WXK_NUMPAD7 : WXK_NUMPAD_HOME)
+ KEY (KB_padEnd, numlock ? WXK_NUMPAD1 : WXK_NUMPAD_END)
+ KEY (KB_padPageUp, numlock ? WXK_NUMPAD9 : WXK_NUMPAD_PAGEUP)
+ KEY (KB_padPageDown, numlock ? WXK_NUMPAD3 : WXK_NUMPAD_PAGEDOWN)
+ KEY (KB_1, '1')
+ KEY (KB_2, '2')
+ KEY (KB_3, '3')
+ KEY (KB_4, '4')
+ KEY (KB_5, '5')
+ KEY (KB_6, '6')
+ KEY (KB_7, '7')
+ KEY (KB_8, '8')
+ KEY (KB_9, '9')
+ KEY (KB_0, '0')
+ KEY (KB_minus, WXK_SUBTRACT)
+ KEY (KB_equals, WXK_ADD)
+ KEY (KB_backSlash, '\\')
+ KEY (KB_Q, 'Q')
+ KEY (KB_W, 'W')
+ KEY (KB_E, 'E')
+ KEY (KB_R, 'R')
+ KEY (KB_T, 'T')
+ KEY (KB_Y, 'Y')
+ KEY (KB_U, 'U')
+ KEY (KB_I, 'I')
+ KEY (KB_O, 'O')
+ KEY (KB_P, 'P')
+ KEY (KB_leftSquareBrace,'[')
+ KEY (KB_rightSquareBrace,']')
+ KEY (KB_A, 'A')
+ KEY (KB_S, 'S')
+ KEY (KB_D, 'D')
+ KEY (KB_F, 'F')
+ KEY (KB_G, 'G')
+ KEY (KB_H, 'H')
+ KEY (KB_J, 'J')
+ KEY (KB_K, 'K')
+ KEY (KB_L, 'L')
+ KEY (KB_semicolon, ';')
+ KEY (KB_apostrophe, '\'')
+ KEY (KB_Z, 'Z')
+ KEY (KB_X, 'X')
+ KEY (KB_C, 'C')
+ KEY (KB_V, 'V')
+ KEY (KB_B, 'B')
+ KEY (KB_N, 'N')
+ KEY (KB_M, 'M')
+ KEY (KB_comma, ',')
+ KEY (KB_period, '.')
+ KEY (KB_divide, WXK_DIVIDE)
+ KEY (KB_space, WXK_SPACE)
+ KEY (KB_tilde, '~')
+
+ default: break;
+ }