X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ffecfa5aeb540b54914739dbb8603edbbd4c00a0..ed97f493ab59a3fc510b50bad9e1cc8648fc490f:/src/palmos/evtloop.cpp diff --git a/src/palmos/evtloop.cpp b/src/palmos/evtloop.cpp index 36b0cf43db..ec93249cbc 100644 --- a/src/palmos/evtloop.cpp +++ b/src/palmos/evtloop.cpp @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: palmos/evtloop.cpp +// Name: src/palmos/evtloop.cpp // Purpose: implements wxEventLoop for Palm OS -// Author: William Osborne +// Author: William Osborne - minimal working wxPalmOS port // Modified by: // Created: 10.14.04 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) William Osborne // License: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "evtloop.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -50,40 +46,15 @@ WX_DEFINE_OBJARRAY(wxMsgArray); #endif // wxUSE_THREADS -// ---------------------------------------------------------------------------- -// helper class -// ---------------------------------------------------------------------------- - -// 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; -}; +#include +#include +#include +#include // ============================================================================ // wxEventLoop implementation // ============================================================================ -wxEventLoop *wxEventLoopBase::ms_activeLoop = NULL; - // ---------------------------------------------------------------------------- // ctor/dtor // ---------------------------------------------------------------------------- @@ -104,7 +75,7 @@ void wxEventLoop::ProcessMessage(WXMSG *msg) bool wxEventLoop::PreProcessMessage(WXMSG *msg) { - return false; + return false; } // ---------------------------------------------------------------------------- @@ -121,21 +92,23 @@ int wxEventLoop::Run() status_t error; EventType event; + wxEventLoopActivator activate(this); + do { wxTheApp && wxTheApp->ProcessIdle(); - + EvtGetEvent(&event, evtWaitForever); if (SysHandleEvent(&event)) continue; - + if (MenuHandleEvent(0, &event, &error)) continue; - + FrmDispatchEvent(&event); - } while (event.eType != appStopEvent); - + } while (event.eType != appStopEvent); + return 0; } @@ -154,7 +127,7 @@ void wxEventLoop::Exit(int rc) bool wxEventLoop::Pending() const { - return false; + return false; } bool wxEventLoop::Dispatch()