X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/05e2b077c6187ff4d894e4af58ccd99536c9c584..987263fe1974dac46a38d6d623557ccf89a25992:/src/mgl/app.cpp?ds=inline diff --git a/src/mgl/app.cpp b/src/mgl/app.cpp index 2e85732f90..dffb68253c 100644 --- a/src/mgl/app.cpp +++ b/src/mgl/app.cpp @@ -7,7 +7,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "app.h" #endif @@ -204,11 +204,11 @@ static void wxDestroyMGL_WM() IMPLEMENT_DYNAMIC_CLASS(wxApp,wxEvtHandler) BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) + EVT_IDLE(wxAppBase::OnIdle) END_EVENT_TABLE() -wxApp::wxApp() : m_mainLoop(NULL) +wxApp::wxApp() { } @@ -272,115 +272,9 @@ bool wxApp::OnInitGui() return TRUE; } -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -void wxApp::OnIdle(wxIdleEvent &event) -{ - static bool s_inOnIdle = FALSE; - - /* Avoid recursion (via ProcessEvent default case) */ - if (s_inOnIdle) - return; - - s_inOnIdle = TRUE; - - /* Resend in the main thread events which have been prepared in other - threads */ - ProcessPendingEvents(); - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - -#if wxUSE_LOG - // flush the logged messages if any - wxLog::FlushActive(); -#endif // wxUSE_LOG - - // Send OnIdle events to all windows - if ( SendIdleEvents() ) - event.RequestMore(TRUE); - - s_inOnIdle = FALSE; -} - -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - - wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow* win = node->GetData(); - if ( SendIdleEvents(win) ) - needMore = TRUE; - node = node->GetNext(); - } - - return needMore; -} - -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - - win->GetEventHandler()->ProcessEvent(event); - - if ( event.MoreRequested() ) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if ( SendIdleEvents(win) ) - needMore = TRUE; - - node = node->Next(); - } - return needMore; -} - -int wxApp::MainLoop() -{ - int rt; - m_mainLoop = new wxEventLoop; - - rt = m_mainLoop->Run(); - - delete m_mainLoop; - m_mainLoop = NULL; - return rt; -} - -void wxApp::ExitMainLoop() -{ - if ( m_mainLoop ) - m_mainLoop->Exit(0); -} - bool wxApp::Initialized() { - return (wxTopLevelWindows.GetCount() != 0); -} - -bool wxApp::Pending() -{ - return wxEventLoop::GetActive()->Pending(); -} - -void wxApp::Dispatch() -{ - wxEventLoop::GetActive()->Dispatch(); + return wxTopLevelWindows.GetCount() != 0; } bool wxApp::Initialize(int& argc, wxChar **argv)