///////////////////////////////////////////////////////////////////////////////
-// 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
///////////////////////////////////////////////////////////////////////////////
// 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"
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 <Event.h>
+#include <SystemMgr.h>
+#include <Menu.h>
+#include <Form.h>
// ============================================================================
// wxEventLoop implementation
// ============================================================================
-wxEventLoop *wxEventLoopBase::ms_activeLoop = NULL;
-
// ----------------------------------------------------------------------------
// ctor/dtor
// ----------------------------------------------------------------------------
bool wxEventLoop::PreProcessMessage(WXMSG *msg)
{
- return false;
+ return false;
}
// ----------------------------------------------------------------------------
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;
}
bool wxEventLoop::Pending() const
{
- return false;
+ return false;
}
bool wxEventLoop::Dispatch()