# if defined(WXMAKINGDLL_CORE)
# include <mach-o/dyld.h>
# endif
+// include hid keyboard
+# include "wx/mac/carbon/private/hid.h"
#else
# include <Sound.h>
# include <Threads.h>
long wxApp::s_macExitMenuItemId = wxID_EXIT ;
wxString wxApp::s_macHelpMenuTitleName = wxT("&Help") ;
+#ifdef __DARWIN__
+ wxHIDKeyboard* wxApp::s_macHIDKeyboard = NULL;
+#endif
+
// Normally we're not a plugin
bool wxApp::sm_isEmbedded = false;
//----------------------------------------------------------------------
ProfilerDump( (StringPtr)"\papp.prof" ) ;
ProfilerTerm() ;
# endif
+
+ // clean up HID Keyboard
+ if (s_macHIDKeyboard)
+ delete s_macHIDKeyboard;
#endif
UMACleanupToolbox() ;
bool wxGetKeyState(wxKeyCode key) //virtual key code if < 10.2.x, else see below
{
-//#ifdef __DARWIN__
-// wxHIDKeyboard keyboard;
-// return keyboard.IsActive(key);
-//#else
-// TODO: Have it use HID Manager on OSX...
+#ifdef __DARWIN__
+ // Startup HID keyboard for getting key codes on DARWIN
+ if (!wxApp::s_macHIDKeyboard)
+ {
+ wxApp::s_macHIDKeyboard = new wxHIDKeyboard();
+ wxApp::s_macHIDKeyboard->Create();
+ }
+
+ return wxApp::s_macHIDKeyboard->IsActive(key);
+#else
//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
// KeyMapByteArray keymap;
// GetKeys((BigEndianLong*)keymap);
// return !!(BitTst(keymap, (sizeof(KeyMapByteArray)*8) - iKey));
-//#endif
+#endif
}