static bool s_inReceiveEvent = FALSE ;
static EventTime sleepTime = kEventDurationNoWait ;
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
EVT_IDLE(wxApp::OnIdle)
EVT_END_SESSION(wxApp::OnEndSession)
EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession)
END_EVENT_TABLE()
-#endif
const short kMacMinHeap = (29 * 1024) ;
return true;
}
+AEEventHandlerUPP sODocHandler = NULL ;
+AEEventHandlerUPP sOAppHandler = NULL ;
+AEEventHandlerUPP sPDocHandler = NULL ;
+AEEventHandlerUPP sRAppHandler = NULL ;
+AEEventHandlerUPP sQuitHandler = NULL ;
+
bool wxApp::OnInitGui()
{
if( !wxAppBase::OnInitGui() )
if (!sm_isEmbedded)
{
+ sODocHandler = NewAEEventHandlerUPP(AEHandleODoc) ;
+ sOAppHandler = NewAEEventHandlerUPP(AEHandleOApp) ;
+ sPDocHandler = NewAEEventHandlerUPP(AEHandlePDoc) ;
+ sRAppHandler = NewAEEventHandlerUPP(AEHandleRApp) ;
+ sQuitHandler = NewAEEventHandlerUPP(AEHandleQuit) ;
+
AEInstallEventHandler( kCoreEventClass , kAEOpenDocuments ,
- NewAEEventHandlerUPP(AEHandleODoc) ,
- 0 , FALSE ) ;
+ sODocHandler , 0 , FALSE ) ;
AEInstallEventHandler( kCoreEventClass , kAEOpenApplication ,
- NewAEEventHandlerUPP(AEHandleOApp) ,
- 0 , FALSE ) ;
+ sOAppHandler , 0 , FALSE ) ;
AEInstallEventHandler( kCoreEventClass , kAEPrintDocuments ,
- NewAEEventHandlerUPP(AEHandlePDoc) ,
- 0 , FALSE ) ;
+ sPDocHandler , 0 , FALSE ) ;
AEInstallEventHandler( kCoreEventClass , kAEReopenApplication ,
- NewAEEventHandlerUPP(AEHandleRApp) ,
- 0 , FALSE ) ;
+ sRAppHandler , 0 , FALSE ) ;
AEInstallEventHandler( kCoreEventClass , kAEQuitApplication ,
- NewAEEventHandlerUPP(AEHandleQuit) ,
- 0 , FALSE ) ;
+ sQuitHandler , 0 , FALSE ) ;
}
return TRUE ;
::DisposeRgn((RgnHandle)s_macCursorRgn);
}
- #if 0
- TerminateAE() ;
- #endif
+ if (!sm_isEmbedded)
+ {
+ RemoveEventHandler( (EventHandlerRef)(wxTheApp->m_macEventHandler) );
+ }
+
+ if (!sm_isEmbedded)
+ {
+ AERemoveEventHandler( kCoreEventClass , kAEOpenDocuments ,
+ sODocHandler , FALSE ) ;
+ AERemoveEventHandler( kCoreEventClass , kAEOpenApplication ,
+ sOAppHandler , FALSE ) ;
+ AERemoveEventHandler( kCoreEventClass , kAEPrintDocuments ,
+ sPDocHandler , FALSE ) ;
+ AERemoveEventHandler( kCoreEventClass , kAEReopenApplication ,
+ sRAppHandler , FALSE ) ;
+ AERemoveEventHandler( kCoreEventClass , kAEQuitApplication ,
+ sQuitHandler , FALSE ) ;
+
+ DisposeAEEventHandlerUPP( sODocHandler ) ;
+ DisposeAEEventHandlerUPP( sOAppHandler ) ;
+ DisposeAEEventHandlerUPP( sPDocHandler ) ;
+ DisposeAEEventHandlerUPP( sRAppHandler ) ;
+ DisposeAEEventHandlerUPP( sQuitHandler ) ;
+ }
wxAppBase::CleanUp();
}
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);