UInt32 state = 0;
UInt32 keyInfo = KeyTranslate((Ptr)GetScriptManagerVariable(smKCHRCache), ( modifiers & (~(controlKey|shiftKey|optionKey))) | keycode, &state);
keychar = short(keyInfo & charCodeMask);
- keycode = short(keyInfo & keyCodeMask) >> 8 ;
}
long keyval = wxMacTranslateKey(keychar, keycode) ;
long realkeyval = keyval ;
keyval = wxToupper( keyval ) ;
}
+ // Check for NUMPAD keys
+ if (keyval >= '0' && keyval <= '9' && keycode >= 82 && keycode <= 92)
+ {
+ keyval = keyval - '0' + WXK_NUMPAD0;
+ }
+ else if (keycode >= 67 && keycode <= 81)
+ {
+ switch (keycode)
+ {
+ case 76 :
+ keyval = WXK_NUMPAD_ENTER;
+ break;
+ case 81:
+ keyval = WXK_NUMPAD_EQUAL;
+ break;
+ case 67:
+ keyval = WXK_NUMPAD_MULTIPLY;
+ break;
+ case 75:
+ keyval = WXK_NUMPAD_DIVIDE;
+ break;
+ case 78:
+ keyval = WXK_NUMPAD_SUBTRACT;
+ break;
+ case 69:
+ keyval = WXK_NUMPAD_ADD;
+ break;
+ case 65:
+ keyval = WXK_NUMPAD_DECIMAL;
+ break;
+ } // end switch
+ }
+
wxKeyEvent event(wxEVT_KEY_DOWN);
bool handled = false ;
event.m_shiftDown = modifiers & shiftKey;
#if wxUSE_UNICODE
event.m_uniChar = uniChar ;
#endif
-
+ event.m_rawCode = keymessage;
+ event.m_rawFlags = modifiers;
event.m_x = wherex;
event.m_y = wherey;
event.SetTimestamp(when);
UInt32 state = 0;
UInt32 keyInfo = KeyTranslate((Ptr)GetScriptManagerVariable(smKCHRCache), ( modifiers & (~(controlKey|shiftKey|optionKey))) | keycode, &state);
keychar = short(keyInfo & charCodeMask);
- keycode = short(keyInfo & keyCodeMask) >> 8 ;
}
long keyval = wxMacTranslateKey(keychar, keycode) ;
{
keyval = wxToupper( keyval ) ;
}
+
+ // Check for NUMPAD keys
+ if (keyval >= '0' && keyval <= '9' && keycode >= 82 && keycode <= 92)
+ {
+ keyval = keyval - '0' + WXK_NUMPAD0;
+ }
+ else if (keycode >= 67 && keycode <= 81)
+ {
+ switch (keycode)
+ {
+ case 76 :
+ keyval = WXK_NUMPAD_ENTER;
+ break;
+ case 81:
+ keyval = WXK_NUMPAD_EQUAL;
+ break;
+ case 67:
+ keyval = WXK_NUMPAD_MULTIPLY;
+ break;
+ case 75:
+ keyval = WXK_NUMPAD_DIVIDE;
+ break;
+ case 78:
+ keyval = WXK_NUMPAD_SUBTRACT;
+ break;
+ case 69:
+ keyval = WXK_NUMPAD_ADD;
+ break;
+ case 65:
+ keyval = WXK_NUMPAD_DECIMAL;
+ break;
+ } // end switch
+ }
+
bool handled = false ;
wxKeyEvent event(wxEVT_KEY_UP);
event.m_uniChar = uniChar ;
#endif
+ event.m_rawCode = keymessage;
+ event.m_rawFlags = modifiers;
event.m_x = wherex;
event.m_y = wherey;
event.SetTimestamp(when);