// Created: 01.06.01
// RCS-ID: $Id$
// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// License: wxWidgets licence
+// License: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
- #pragma implementation "evtloop.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
wxDEFINE_TIED_SCOPED_PTR_TYPE(wxEventLoopImpl);
-// this object sets the wxEventLoop given to the ctor as the currently active
-// one and unsets it in its dtor
-class wxEventLoopActivator
-{
-public:
- wxEventLoopActivator(wxEventLoop **pActive,
- wxEventLoop *evtLoop)
- {
- m_pActive = pActive;
- m_evtLoopOld = *pActive;
- *pActive = evtLoop;
- }
-
- ~wxEventLoopActivator()
- {
- // restore the previously active event loop
- *m_pActive = m_evtLoopOld;
- }
-
-private:
- wxEventLoop *m_evtLoopOld;
- wxEventLoop **m_pActive;
-};
-
// ============================================================================
// wxEventLoopImpl implementation
// ============================================================================
// wxEventLoop implementation
// ============================================================================
-wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
-
// ----------------------------------------------------------------------------
// wxEventLoop running and exiting
// ----------------------------------------------------------------------------
wxASSERT_MSG( !m_impl, _T("should have been deleted in Run()") );
}
-bool wxEventLoop::IsRunning() const
-{
- return m_impl != NULL;
-}
-
//////////////////////////////////////////////////////////////////////////////
//
// Keep trying to process messages until WM_QUIT
// SendIdleMessage() and Dispatch() below may throw so the code here should
// be exception-safe, hence we must use local objects for all actions we
// should undo
- wxEventLoopActivator activate(&ms_activeLoop, this);
+ wxEventLoopActivator activate(this);
wxEventLoopImplTiedPtr impl(&m_impl, new wxEventLoopImpl);
CallEventLoopMethod callOnExit(this, &wxEventLoop::OnExit);
while ( !Pending() && m_impl->SendIdleMessage() )
{
wxTheApp->HandleSockets();
- wxUsleep(10);
+ wxMilliSleep(10);
}
wxTheApp->HandleSockets();
}
}
else
- wxUsleep(10);
+ wxMilliSleep(10);
}
return m_impl->GetExitCode();