X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6342fb5e6524edffa219d5843536ea279bba4df..fcdd53359135f790b85728c4254b97095a56dad8:/src/unix/evtloopunix.cpp diff --git a/src/unix/evtloopunix.cpp b/src/unix/evtloopunix.cpp index d9e4100457..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,18 +27,16 @@ #endif #include +#include "wx/apptrait.h" +#include "wx/evtloop.h" #include "wx/thread.h" #include "wx/module.h" -#include "wx/generic/private/timer.h" +#include "wx/unix/private/timer.h" #include "wx/unix/private/epolldispatcher.h" #include "wx/private/selectdispatcher.h" #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 ( @@ -144,7 +136,7 @@ wxConsoleEventLoop::wxConsoleEventLoop() &m_wakeupPipe, wxFDIO_INPUT ); -}; +} //----------------------------------------------------------------------------- // events dispatch and loop handling @@ -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