]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/evtloop.cpp
fixing focus, fixes #9985
[wxWidgets.git] / src / palmos / evtloop.cpp
index 36b0cf43dbaa9db4da0628555a7e0645970e0bed..01bd21e9820fd9cf62c8fd77d7304a7f43ca22ed 100644 (file)
@@ -1,10 +1,10 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        palmos/evtloop.cpp
-// Purpose:     implements wxEventLoop for Palm OS
-// Author:      William Osborne
+// Name:        src/palmos/evtloop.cpp
+// Purpose:     implements wxGUIEventLoop for Palm OS
+// Author:      William Osborne - minimal working wxPalmOS port
 // Modified by:
 // Created:     10.14.04
 // Modified by:
 // Created:     10.14.04
-// RCS-ID:      $Id
+// RCS-ID:      $Id$
 // Copyright:   (c) William Osborne
 // License:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) William Osborne
 // License:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 // headers
 // ----------------------------------------------------------------------------
 
 // 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"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
     WX_DEFINE_OBJARRAY(wxMsgArray);
 #endif // wxUSE_THREADS
 
     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
+// wxGUIEventLoop implementation
 // ============================================================================
 
 // ============================================================================
 
-wxEventLoop *wxEventLoopBase::ms_activeLoop = NULL;
-
 // ----------------------------------------------------------------------------
 // ctor/dtor
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 // ctor/dtor
 // ----------------------------------------------------------------------------
 
-wxEventLoop::wxEventLoop()
+wxGUIEventLoop::wxGUIEventLoop()
 {
     m_shouldExit = false;
     m_exitcode = 0;
 }
 
 // ----------------------------------------------------------------------------
 {
     m_shouldExit = false;
     m_exitcode = 0;
 }
 
 // ----------------------------------------------------------------------------
-// wxEventLoop message processing
+// wxGUIEventLoop message processing
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-void wxEventLoop::ProcessMessage(WXMSG *msg)
+void wxGUIEventLoop::ProcessMessage(WXMSG *msg)
 {
 }
 
 {
 }
 
-bool wxEventLoop::PreProcessMessage(WXMSG *msg)
+bool wxGUIEventLoop::PreProcessMessage(WXMSG *msg)
 {
 {
-       return false;
+    return false;
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
-// wxEventLoop running and exiting
+// wxGUIEventLoop running and exiting
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-bool wxEventLoop::IsRunning() const
+bool wxGUIEventLoop::IsRunning() const
 {
     return true;
 }
 
 {
     return true;
 }
 
-int wxEventLoop::Run()
+int wxGUIEventLoop::Run()
 {
     status_t    error;
     EventType    event;
 
 {
     status_t    error;
     EventType    event;
 
+    wxEventLoopActivator activate(this);
+
     do {
         wxTheApp && wxTheApp->ProcessIdle();
     do {
         wxTheApp && wxTheApp->ProcessIdle();
-        
+
         EvtGetEvent(&event, evtWaitForever);
 
         if (SysHandleEvent(&event))
             continue;
         EvtGetEvent(&event, evtWaitForever);
 
         if (SysHandleEvent(&event))
             continue;
-            
+
         if (MenuHandleEvent(0, &event, &error))
             continue;
         if (MenuHandleEvent(0, &event, &error))
             continue;
-            
+
         FrmDispatchEvent(&event);
 
         FrmDispatchEvent(&event);
 
-    } while (event.eType != appStopEvent);    
-    
+    } while (event.eType != appStopEvent);
+
     return 0;
 }
 
     return 0;
 }
 
-void wxEventLoop::Exit(int rc)
+void wxGUIEventLoop::Exit(int rc)
 {
     FrmCloseAllForms();
 
 {
     FrmCloseAllForms();
 
@@ -149,16 +122,21 @@ void wxEventLoop::Exit(int rc)
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
-// wxEventLoop message processing dispatching
+// wxGUIEventLoop message processing dispatching
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 
-bool wxEventLoop::Pending() const
+bool wxGUIEventLoop::Pending() const
 {
 {
-       return false;
+    return false;
 }
 
 }
 
-bool wxEventLoop::Dispatch()
+bool wxGUIEventLoop::Dispatch()
 {
     return false;
 }
 
 {
     return false;
 }
 
+void wxGUIEventLoop::WakeUp()
+{
+    return;
+}
+