]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/evtloop.cpp
Added selection API.
[wxWidgets.git] / src / palmos / evtloop.cpp
index 36b0cf43dbaa9db4da0628555a7e0645970e0bed..ec93249cbcfb144c8507430fb0ad97f6cfb56c5d 100644 (file)
@@ -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
 ///////////////////////////////////////////////////////////////////////////////
 // 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
 // ----------------------------------------------------------------------------
@@ -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()