X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53a2db124c633f80bdb16336084262037d879a2c..a7d403698f6750bbf8c161e88aee5ab8a6b0bcd4:/include/wx/evtloop.h diff --git a/include/wx/evtloop.h b/include/wx/evtloop.h index 6a573d713c..bb22bb84db 100644 --- a/include/wx/evtloop.h +++ b/include/wx/evtloop.h @@ -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_