X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e913f796a6a0431c79ffb79a2ba5922ff770eca..69fb2f97492421b85b661add445012e98c1eaea9:/src/unix/evtloopunix.cpp diff --git a/src/unix/evtloopunix.cpp b/src/unix/evtloopunix.cpp index ff12e32638..fc1f469ae4 100644 --- a/src/unix/evtloopunix.cpp +++ b/src/unix/evtloopunix.cpp @@ -19,7 +19,7 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/evtloop.h" +#if wxUSE_CONSOLE_EVENTLOOP #ifndef WX_PRECOMP #include "wx/app.h" @@ -27,21 +27,16 @@ #endif #include +#include "wx/apptrait.h" +#include "wx/evtloop.h" #include "wx/thread.h" #include "wx/module.h" +#include "wx/unix/private/timer.h" #include "wx/unix/private/epolldispatcher.h" #include "wx/private/selectdispatcher.h" -#if wxUSE_TIMER - #include "wx/generic/private/timer.h" -#endif - #define TRACE_EVENTS _T("events") -//this code should not be compiled when GUI is defined -//(monolithic build issue) -#if !wxUSE_GUI - // =========================================================================== // wxEventLoop::PipeIOHandler implementation // =========================================================================== @@ -131,15 +126,9 @@ wxConsoleEventLoop::wxConsoleEventLoop() return; } -#ifdef HAVE_SYS_EPOLL_H - m_dispatcher = wxEpollDispatcher::Get(); + m_dispatcher = wxFDIODispatcher::Get(); if ( !m_dispatcher ) -#endif // HAVE_SYS_EPOLL_H - { - m_dispatcher = wxSelectDispatcher::Get(); - } - - wxCHECK_RET( m_dispatcher, _T("failed to create IO dispatcher") ); + return; m_dispatcher->RegisterFD ( @@ -147,7 +136,7 @@ wxConsoleEventLoop::wxConsoleEventLoop() &m_wakeupPipe, wxFDIO_INPUT ); -}; +} //----------------------------------------------------------------------------- // events dispatch and loop handling @@ -159,17 +148,6 @@ bool wxConsoleEventLoop::Pending() const } bool wxConsoleEventLoop::Dispatch() -{ - wxTheApp->ProcessPendingEvents(); - return true; -} - -void wxConsoleEventLoop::WakeUp() -{ - m_wakeupPipe.WakeUp(); -} - -void wxConsoleEventLoop::OnNextIteration() { // calculate the timeout until the next timer expiration int timeout; @@ -187,14 +165,31 @@ void wxConsoleEventLoop::OnNextIteration() timeout = wxFDIODispatcher::TIMEOUT_INFINITE; } - m_dispatcher->RunLoop(timeout); + m_dispatcher->Dispatch(timeout); #if wxUSE_TIMER wxTimerScheduler::Get().NotifyExpired(); #endif + wxTheApp->ProcessPendingEvents(); + return true; +} + +void wxConsoleEventLoop::WakeUp() +{ + m_wakeupPipe.WakeUp(); +} + +void wxConsoleEventLoop::OnNextIteration() +{ // call the signal handlers for any signals we caught recently wxTheApp->CheckSignal(); } -#endif // !wxUSE_GUI + +wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop() +{ + return new wxEventLoop(); +} + +#endif // wxUSE_CONSOLE_EVENTLOOP