if ( win )
{
wxCommandEvent exitEvent(wxEVT_COMMAND_MENU_SELECTED, s_macExitMenuItemId);
- if (!win->ProcessEvent(exitEvent))
+ if (!win->GetEventHandler()->ProcessEvent(exitEvent))
win->Close(true) ;
}
else
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),
#endif
}
-#endif //__WXDEBUG__
+#endif // wxDEBUG_LEVEL
extern "C" void macPostedEventCallback(void *WXUNUSED(unused))
{
{
// Mac-specific
-#if defined( __WXDEBUG__ ) && wxOSX_USE_COCOA_OR_CARBON
+#if wxDEBUG_LEVEL && wxOSX_USE_COCOA_OR_CARBON
InstallDebugAssertOutputHandler( NewDebugAssertOutputHandlerUPP( wxMacAssertOutputHandler ) );
#endif
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
-
- if (m_isInsideYield)
- {
- if ( !onlyIfNeeded )
- {
- wxFAIL_MSG( wxT("wxYield called recursively" ) );
- }
-
- return false;
- }
-
- m_isInsideYield = 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 = 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
- m_isInsideYield = false;
-
- return true;
-}
-
// virtual
void wxApp::MacHandleUnhandledEvent( WXEVENTREF WXUNUSED(evr) )
{
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 )
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 )
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
}