]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/evtloop.h
add wxSP_THIN_SASH for completeness (#9902)
[wxWidgets.git] / include / wx / evtloop.h
index 6a573d713c8bc23f45cb09091a07639974145bea..bb22bb84db56f5460ee59fb8bece0aeeddc4bab5 100644 (file)
@@ -116,7 +116,7 @@ protected:
 #elif defined(__WXMSW__)
     #include "wx/msw/evtloop.h"
 #elif defined(__WXMAC__)
-    #include "wx/mac/evtloop.h"
+    #include "wx/osx/evtloop.h"
 #elif defined(__WXDFB__)
     #include "wx/dfb/evtloop.h"
 #else // other platform
@@ -156,7 +156,7 @@ protected:
 #else // !GUI
     // we can't define wxEventLoop differently in GUI and base libraries so use
     // a #define to still allow writing wxEventLoop in the user code
-    #if defined(__WXMSW__) || defined(__UNIX__)
+    #if wxUSE_CONSOLE_EVENTLOOP && (defined(__WXMSW__) || defined(__UNIX__))
         #define wxEventLoop wxConsoleEventLoop
     #else // we still must define it somehow for the code below...
         #define wxEventLoop wxEventLoopBase
@@ -223,4 +223,34 @@ private:
     wxEventLoopBase *m_evtLoopOld;
 };
 
+#if wxUSE_CONSOLE_EVENTLOOP
+
+class wxEventLoopGuarantor
+{
+public:
+    wxEventLoopGuarantor()
+    {
+        m_evtLoopNew = NULL;
+        if (!wxEventLoop::GetActive())
+        {
+            m_evtLoopNew = new wxEventLoop;
+            wxEventLoop::SetActive(m_evtLoopNew);
+        }
+    }
+
+    ~wxEventLoopGuarantor()
+    {
+        if (m_evtLoopNew)
+        {
+            wxEventLoop::SetActive(NULL);
+            delete m_evtLoopNew;
+        }
+    }
+
+private:
+    wxEventLoop *m_evtLoopNew;
+};
+
+#endif // wxUSE_CONSOLE_EVENTLOOP
+
 #endif // _WX_EVTLOOP_H_