]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/app.cpp
fixing 64 bit value transfer
[wxWidgets.git] / src / osx / carbon / app.cpp
index 1067c8a8e5fa18d7c6216594ffac748178a4cb16..0ec20f24c4e385eac9dd6ea929b30aa0e06fbb18 100644 (file)
@@ -79,7 +79,7 @@ wxString  wxApp::s_macHelpMenuTitleName = wxT("&Help") ;
 
 bool      wxApp::sm_isEmbedded = false; // Normally we're not a plugin
 
-#if wxOSX_USE_COCOA_OR_CARBON
+#if wxOSX_USE_CARBON
 
 //----------------------------------------------------------------------
 // Core Apple Event Support
@@ -184,7 +184,7 @@ short wxApp::MacHandleAEGURL(const WXEVENTREF event, WXEVENTREF WXUNUSED(reply))
     if (err != noErr)
         return err;
 
-    url[actualSize] = '\0';    // Terminate the C string 
+    url[actualSize] = '\0';    // Terminate the C string
 
     ProcessSerialNumber PSN ;
     PSN.highLongOfPSN = 0 ;
@@ -253,7 +253,7 @@ short wxApp::MacHandleAEQuit(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNU
     if ( win )
     {
         wxCommandEvent exitEvent(wxEVT_COMMAND_MENU_SELECTED, s_macExitMenuItemId);
-        if (!win->ProcessEvent(exitEvent))
+        if (!win->GetEventHandler()->ProcessEvent(exitEvent))
             win->Close(true) ;
     }
     else
@@ -357,9 +357,9 @@ void wxApp::MacReopenApp()
                 // make sure we don't show 'virtual toplevel windows' like wxTaskBarIconWindow
                 if ( firstHidden == NULL && ( wxDynamicCast( win, wxFrame ) || wxDynamicCast( win, wxDialog ) ) )
                    firstHidden = win ;
-            } 
+            }
             else if ( win->IsIconized() )
-            { 
+            {
                 if ( firstIconized == NULL )
                     firstIconized = win ;
             }
@@ -499,7 +499,7 @@ wxMenu* wxFindMenuFromMacCommand( const HICommand &command , wxMenuItem* &item )
 
         // is it part of the application or the Help menu, then look for the id directly
         if ( ( GetMenuHandle( kwxMacAppleMenuId ) != NULL && command.menu.menuRef == GetMenuHandle( kwxMacAppleMenuId ) ) ||
-             ( helpMenuHandle != NULL && command.menu.menuRef == helpMenuHandle ) || 
+             ( helpMenuHandle != NULL && command.menu.menuRef == helpMenuHandle ) ||
              wxMenuBar::MacGetWindowMenuHMenu() != NULL && command.menu.menuRef == wxMenuBar::MacGetWindowMenuHMenu() )
         {
             wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ;
@@ -576,7 +576,7 @@ wxMacAppMenuEventHandler( EventHandlerCallRef WXUNUSED(handler),
             case kEventMenuTargetItem:
                 {
                     HICommand command ;
-                    
+
                     command.menu.menuRef = menuRef;
                     command.menu.menuItemIndex = cEvent.GetParameter<MenuItemIndex>(kEventParamMenuItemIndex,typeMenuItemIndex) ;
                     command.commandID = cEvent.GetParameter<MenuCommand>(kEventParamMenuCommand,typeMenuCommand) ;
@@ -732,7 +732,7 @@ pascal OSStatus wxMacAppEventHandler( EventHandlerCallRef handler , EventRef eve
 DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacAppEventHandler )
 #endif
 
-#if defined( __WXDEBUG__ ) && wxOSX_USE_COCOA_OR_CARBON
+#if wxDEBUG_LEVEL && wxOSX_USE_COCOA_OR_CARBON
 
 pascal static void
 wxMacAssertOutputHandler(OSType WXUNUSED(componentSignature),
@@ -778,7 +778,7 @@ wxMacAssertOutputHandler(OSType WXUNUSED(componentSignature),
 #endif
 }
 
-#endif //__WXDEBUG__
+#endif // wxDEBUG_LEVEL
 
 extern "C" void macPostedEventCallback(void *WXUNUSED(unused))
 {
@@ -789,7 +789,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
 {
     // Mac-specific
 
-#if defined( __WXDEBUG__ ) && wxOSX_USE_COCOA_OR_CARBON
+#if wxDEBUG_LEVEL && wxOSX_USE_COCOA_OR_CARBON
     InstallDebugAssertOutputHandler( NewDebugAssertOutputHandlerUPP( wxMacAssertOutputHandler ) );
 #endif
 
@@ -900,7 +900,7 @@ bool wxApp::DoInitGui()
 
     if ( !wxMacInitCocoa() )
         return false;
-        
+
     return true;
 }
 
@@ -956,7 +956,7 @@ void wxApp::CleanUp()
 // misc initialization stuff
 //----------------------------------------------------------------------
 
-#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
+#if wxOSX_USE_CARBON && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
 bool wxMacConvertEventToRecord( EventRef event , EventRecord *rec)
 {
     OSStatus err = noErr ;
@@ -1076,7 +1076,7 @@ void wxApp::OnIdle(wxIdleEvent& WXUNUSED(event))
     // either events to the threads other than main or events posted with
     // wxPostEvent() functions
 #ifndef __WXUNIVERSAL__
-#if wxUSE_MENU
+#if wxUSE_MENUS
   if (!wxMenuBar::MacGetInstalledMenuBar() && wxMenuBar::MacGetCommonMenuBar())
     wxMenuBar::MacGetCommonMenuBar()->MacInstallMenuBar();
 #endif
@@ -1117,61 +1117,6 @@ void wxCYield()
     wxYield() ;
 }
 
-// Yield to other processes
-
-bool wxApp::Yield(bool onlyIfNeeded)
-{
-#if wxUSE_THREADS
-    // Yielding from a non-gui thread needs to bail out, otherwise we end up
-    // possibly sending events in the thread too.
-    if ( !wxThread::IsMain() )
-    {
-        return true;
-    }
-#endif // wxUSE_THREADS
-
-    static bool s_inYield = false;
-
-    if (s_inYield)
-    {
-        if ( !onlyIfNeeded )
-        {
-            wxFAIL_MSG( wxT("wxYield called recursively" ) );
-        }
-
-        return false;
-    }
-
-    s_inYield = true;
-
-#if wxUSE_LOG
-    // disable log flushing from here because a call to wxYield() shouldn't
-    // normally result in message boxes popping up &c
-    wxLog::Suspend();
-#endif // wxUSE_LOG
-
-    wxEventLoop * const
-        loop = wx_static_cast(wxEventLoop *, wxEventLoop::GetActive());
-    if ( loop )
-    {
-        // process all pending events:
-        while ( loop->Pending() )
-            loop->Dispatch();
-    }
-    
-    // it's necessary to call ProcessIdle() to update the frames sizes which
-    // might have been changed (it also will update other things set from
-    // OnUpdateUI() which is a nice (and desired) side effect)
-    while ( ProcessIdle() ) {}
-    
-#if wxUSE_LOG
-    wxLog::Resume();
-#endif // wxUSE_LOG
-    s_inYield = false;
-
-    return true;
-}
-
 // virtual
 void wxApp::MacHandleUnhandledEvent( WXEVENTREF WXUNUSED(evr) )
 {
@@ -1379,47 +1324,10 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi
     if ( !focus )
         return false ;
 
-    bool handled;
     wxKeyEvent event(wxEVT_KEY_DOWN) ;
     MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
 
-    handled = focus->HandleWindowEvent( event ) ;
-    if ( handled && event.GetSkipped() )
-        handled = false ;
-
-#if wxUSE_ACCEL
-    if ( !handled )
-    {
-        wxWindow *ancestor = focus;
-        while (ancestor)
-        {
-            int command = ancestor->GetAcceleratorTable()->GetCommand( event );
-            if (command != -1)
-            {
-                wxEvtHandler * const handler = ancestor->GetEventHandler();
-
-                wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command );
-                handled = handler->ProcessEvent( command_event );
-
-                if ( !handled )
-                {
-                    // accelerators can also be used with buttons, try them too
-                    command_event.SetEventType(wxEVT_COMMAND_BUTTON_CLICKED);
-                    handled = handler->ProcessEvent( command_event );
-                }
-
-                break;
-            }
-
-            if (ancestor->IsTopLevel())
-                break;
-
-            ancestor = ancestor->GetParent();
-        }
-    }
-#endif // wxUSE_ACCEL
-
-    return handled ;
+    return focus->OSXHandleKeyEvent(event);
 }
 
 bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar )
@@ -1427,12 +1335,10 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
     if ( !focus )
         return false ;
 
-    bool handled;
     wxKeyEvent event( wxEVT_KEY_UP ) ;
     MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
-    handled = focus->HandleWindowEvent( event ) ;
 
-    return handled ;
+    return focus->OSXHandleKeyEvent(event) ;
 }
 
 bool wxApp::MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar )
@@ -1441,11 +1347,11 @@ bool wxApp::MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers
         return false ;
     wxKeyEvent event(wxEVT_CHAR) ;
     MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
-    long keyval = event.m_keyCode ;
 
     bool handled = false ;
 
 #if wxOSX_USE_CARBON
+    long keyval = event.m_keyCode ;
     wxNonOwnedWindow *tlw = focus->MacGetTopLevelWindow() ;
 
     if (tlw)
@@ -1558,34 +1464,34 @@ void wxApp::MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymess
         {
             keyval = (keyval - '0') + WXK_NUMPAD0;
         }
-        else if (keycode >= 65 && keycode <= 81) 
+        else if (keycode >= 65 && 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;
@@ -1594,7 +1500,7 @@ void wxApp::MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymess
             }
         }
     }
-    
+
     event.m_shiftDown = modifiers & shiftKey;
     event.m_controlDown = modifiers & controlKey;
     event.m_altDown = modifiers & optionKey;
@@ -1610,6 +1516,15 @@ void wxApp::MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymess
     event.m_y = wherey;
     event.SetTimestamp(when);
     event.SetEventObject(focus);
+#else
+    wxUnusedVar(event);
+    wxUnusedVar(focus);
+    wxUnusedVar(keymessage);
+    wxUnusedVar(modifiers);
+    wxUnusedVar(when);
+    wxUnusedVar(wherex);
+    wxUnusedVar(wherey);
+    wxUnusedVar(uniChar);
 #endif
 }
 
@@ -1621,7 +1536,7 @@ void wxApp::MacHideApp()
     HICommand command;
     memset( &command, 0 , sizeof(command) );
     command.commandID = kHICommandHide ;
-    event.SetParameter<HICommand>(kEventParamDirectObject, command );       
+    event.SetParameter<HICommand>(kEventParamDirectObject, command );
     SendEventToApplication( event );
 #endif
 }