]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/app.cpp
Unwanted semicolon fix [#1212497] + source cleaning.
[wxWidgets.git] / src / mac / carbon / app.cpp
index 2a536b339b5ee95e1c06d15784d5cfb408c3e7b7..356c2b2ecc511dc36119169c7734aecb9964fb36 100644 (file)
@@ -90,14 +90,12 @@ static bool s_inYield = FALSE;
 static bool s_inReceiveEvent = FALSE ;
 static EventTime sleepTime = kEventDurationNoWait ;
 
 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()
 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) ;
 
 
 const short    kMacMinHeap = (29 * 1024) ;
@@ -698,6 +696,12 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     return true;
 }
 
     return true;
 }
 
+AEEventHandlerUPP sODocHandler = NULL ;
+AEEventHandlerUPP sOAppHandler = NULL ;
+AEEventHandlerUPP sPDocHandler = NULL ;
+AEEventHandlerUPP sRAppHandler = NULL ;
+AEEventHandlerUPP sQuitHandler = NULL ;
+
 bool wxApp::OnInitGui()
 {
     if( !wxAppBase::OnInitGui() )
 bool wxApp::OnInitGui()
 {
     if( !wxAppBase::OnInitGui() )
@@ -714,21 +718,22 @@ bool wxApp::OnInitGui()
 
     if (!sm_isEmbedded)
     {
 
     if (!sm_isEmbedded)
     {
+        sODocHandler = NewAEEventHandlerUPP(AEHandleODoc) ;
+        sOAppHandler = NewAEEventHandlerUPP(AEHandleOApp) ;
+        sPDocHandler = NewAEEventHandlerUPP(AEHandlePDoc) ;
+        sRAppHandler = NewAEEventHandlerUPP(AEHandleRApp) ;
+        sQuitHandler = NewAEEventHandlerUPP(AEHandleQuit) ;
+
         AEInstallEventHandler( kCoreEventClass , kAEOpenDocuments ,
         AEInstallEventHandler( kCoreEventClass , kAEOpenDocuments ,
-                               NewAEEventHandlerUPP(AEHandleODoc) ,
-                               0 , FALSE ) ;
+                               sODocHandler , 0 , FALSE ) ;
         AEInstallEventHandler( kCoreEventClass , kAEOpenApplication ,
         AEInstallEventHandler( kCoreEventClass , kAEOpenApplication ,
-                               NewAEEventHandlerUPP(AEHandleOApp) ,
-                               0 , FALSE ) ;
+                               sOAppHandler , 0 , FALSE ) ;
         AEInstallEventHandler( kCoreEventClass , kAEPrintDocuments ,
         AEInstallEventHandler( kCoreEventClass , kAEPrintDocuments ,
-                               NewAEEventHandlerUPP(AEHandlePDoc) ,
-                               0 , FALSE ) ;
+                               sPDocHandler , 0 , FALSE ) ;
         AEInstallEventHandler( kCoreEventClass , kAEReopenApplication ,
         AEInstallEventHandler( kCoreEventClass , kAEReopenApplication ,
-                               NewAEEventHandlerUPP(AEHandleRApp) ,
-                               0 , FALSE ) ;
+                               sRAppHandler , 0 , FALSE ) ;
         AEInstallEventHandler( kCoreEventClass , kAEQuitApplication ,
         AEInstallEventHandler( kCoreEventClass , kAEQuitApplication ,
-                               NewAEEventHandlerUPP(AEHandleQuit) ,
-                               0 , FALSE ) ;
+                               sQuitHandler , 0 , FALSE ) ;
     }
 
     return TRUE ;
     }
 
     return TRUE ;
@@ -765,9 +770,30 @@ void wxApp::CleanUp()
         ::DisposeRgn((RgnHandle)s_macCursorRgn);
     }
 
         ::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();
 }
 
     wxAppBase::CleanUp();
 }
@@ -1252,7 +1278,6 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi
         UInt32 state = 0;
         UInt32 keyInfo = KeyTranslate((Ptr)GetScriptManagerVariable(smKCHRCache), ( modifiers & (~(controlKey|shiftKey|optionKey))) | keycode, &state);
         keychar = short(keyInfo & charCodeMask);
         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 ;
     }
     long keyval = wxMacTranslateKey(keychar, keycode) ;
     long realkeyval = keyval ;
@@ -1263,6 +1288,39 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi
         keyval = wxToupper( 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;
     wxKeyEvent event(wxEVT_KEY_DOWN);
     bool handled = false ;
     event.m_shiftDown = modifiers & shiftKey;
@@ -1273,7 +1331,8 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi
 #if wxUSE_UNICODE
     event.m_uniChar = uniChar ;
 #endif
 #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);
     event.m_x = wherex;
     event.m_y = wherey;
     event.SetTimestamp(when);
@@ -1399,7 +1458,6 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
         UInt32 state = 0;
         UInt32 keyInfo = KeyTranslate((Ptr)GetScriptManagerVariable(smKCHRCache), ( modifiers & (~(controlKey|shiftKey|optionKey))) | keycode, &state);
         keychar = short(keyInfo & charCodeMask);
         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 keyval = wxMacTranslateKey(keychar, keycode) ;
 
@@ -1407,6 +1465,40 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
     {
         keyval = wxToupper( 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
+    }
+
     bool handled = false ;
 
     wxKeyEvent event(wxEVT_KEY_UP);
     bool handled = false ;
 
     wxKeyEvent event(wxEVT_KEY_UP);
@@ -1419,6 +1511,8 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
     event.m_uniChar = uniChar ;
 #endif
 
     event.m_uniChar = uniChar ;
 #endif
 
+    event.m_rawCode = keymessage;
+    event.m_rawFlags = modifiers;
     event.m_x = wherex;
     event.m_y = wherey;
     event.SetTimestamp(when);
     event.m_x = wherex;
     event.m_y = wherey;
     event.SetTimestamp(when);