Add HID keyboard functionality

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Ryan Norton 2004-09-27 07:13:24 +00:00
parent 80a07196b3
commit e9b41b24a0
2 changed files with 25 additions and 6 deletions

View File

@ -124,6 +124,10 @@ public:
static bool s_macHasDialogManager ;
static long s_macDialogManagerVersion ;
#ifdef __DARWIN__
static class wxHIDKeyboard* s_macHIDKeyboard;
#endif
WXHRGN m_macCursorRgn ;
WXHRGN m_macSleepRgn ;
WXHRGN m_macHelpRgn ;

View File

@ -59,6 +59,8 @@
# 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>
@ -119,6 +121,10 @@ long wxApp::s_macPreferencesMenuItemId = wxID_PREFERENCES ;
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;
//----------------------------------------------------------------------
@ -717,6 +723,10 @@ void wxApp::CleanUp()
ProfilerDump( (StringPtr)"\papp.prof" ) ;
ProfilerTerm() ;
# endif
// clean up HID Keyboard
if (s_macHIDKeyboard)
delete s_macHIDKeyboard;
#endif
UMACleanupToolbox() ;
@ -1169,11 +1179,16 @@ int wxMacKeyCodeToModifier(wxKeyCode key)
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
@ -1182,7 +1197,7 @@ bool wxGetKeyState(wxKeyCode key) //virtual key code if < 10.2.x, else see below
// KeyMapByteArray keymap;
// GetKeys((BigEndianLong*)keymap);
// return !!(BitTst(keymap, (sizeof(KeyMapByteArray)*8) - iKey));
//#endif
#endif
}