-#if wxUSE_GUI && wxUSE_LOGGUI && !defined(__WXMICROWIN__)
- return new wxLogGui;
-#else // !GUI
- return new wxLogStderr;
-#endif // wxUSE_GUI
-}
-
-#endif // wxUSE_LOG
-
-wxMessageOutput *wxAppBase::CreateMessageOutput()
-{
- // The standard way of printing help on command line arguments (app --help)
- // is (according to common practice):
- // - console apps: to stderr (on any platform)
- // - GUI apps: stderr on Unix platforms (!)
- // message box under Windows and others
-#if wxUSE_GUI && !defined(__UNIX__)
- // wxMessageOutputMessageBox doesn't work under Motif
- #ifdef __WXMOTIF__
- return new wxMessageOutputLog;
- #else
- return new wxMessageOutputMessageBox;
- #endif
-#else // !wxUSE_GUI || __UNIX__
- return new wxMessageOutputStderr;
-#endif
-}
-
-// ---------------------------------------------------------------------------
-// wxAppBase
-// ----------------------------------------------------------------------------
-
-void wxAppBase::ProcessPendingEvents()
-{
- // ensure that we're the only thread to modify the pending events list
- wxENTER_CRIT_SECT( *wxPendingEventsLocker );
-
- if ( !wxPendingEvents )
- {
- wxLEAVE_CRIT_SECT( *wxPendingEventsLocker );
- return;
- }
-
- // iterate until the list becomes empty
- wxNode *node = wxPendingEvents->First();
- while (node)
- {
- wxEvtHandler *handler = (wxEvtHandler *)node->Data();
- delete node;
-
- // In ProcessPendingEvents(), new handlers might be add
- // and we can safely leave the critical section here.
- wxLEAVE_CRIT_SECT( *wxPendingEventsLocker );
- handler->ProcessPendingEvents();
- wxENTER_CRIT_SECT( *wxPendingEventsLocker );
-
- node = wxPendingEvents->First();
- }
-
- wxLEAVE_CRIT_SECT( *wxPendingEventsLocker );