X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3ef595d5f879ec3ed4ef511445487261304313e2..d2fa1873252760fe064ce643127390c299ddf451:/src/unix/evtloopunix.cpp diff --git a/src/unix/evtloopunix.cpp b/src/unix/evtloopunix.cpp index 897f39a5bc..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,6 +27,8 @@ #endif #include +#include "wx/apptrait.h" +#include "wx/evtloop.h" #include "wx/thread.h" #include "wx/module.h" #include "wx/unix/private/timer.h" @@ -35,10 +37,6 @@ #define TRACE_EVENTS _T("events") -//this code should not be compiled when GUI is defined -//(monolithic build issue) -#if !wxUSE_GUI - // =========================================================================== // wxEventLoop::PipeIOHandler implementation // =========================================================================== @@ -128,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 ( @@ -156,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; @@ -184,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