]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/app.cpp
reversed some parts of wxGetKeyState for linkage reasons...
[wxWidgets.git] / src / mac / app.cpp
index 0c8413941f4efb50b6e490385bd01b6b8b1a898e..1b2b7c0504a6ae276930a6e797544b0b559f9d39 100644 (file)
@@ -1757,6 +1757,43 @@ long wxMacTranslateKey(unsigned char key, unsigned char code)
     return retval;
 }
 
+int wxKeyCodeToMacModifier(wxKeyCode key)
+{
+    switch (key)
+    {
+    case WXK_START:
+        return cmdKey;
+
+    case WXK_SHIFT:
+        return shiftKey;
+
+    case WXK_CAPITAL:
+        return alphaLock;
+
+    case WXK_OPTION:
+        return optionKey;
+
+    case WXK_CONTROL:
+        return controlKey;
+
+    default:
+        return 0;
+    }
+}
+
+bool wxGetKeyState(wxKeyCode key) //virtual key code if < 10.2.x, else see below
+{
+// TODO:  Have it use HID Manager on OSX...
+//if OS X > 10.2 (i.e. 10.2.x)
+//a known apple bug prevents the system from determining led
+//states with GetKeys... can only determine caps lock led
+   return !!(GetCurrentKeyModifiers() & wxKeyCodeToMacModifier(key)); 
+//else
+//  KeyMapByteArray keymap; 
+//  GetKeys((BigEndianLong*)keymap);
+//  return !!(BitTst(keymap, (sizeof(KeyMapByteArray)*8) - iKey));
+}
+
 #if !TARGET_CARBON
 void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr )
 {