X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5cd99866132366b74289e5a08e963723732bae01..6968a3b87cee46f5c5af9b46e1ef97f17133cef7:/include/wx/evtloop.h?ds=sidebyside diff --git a/include/wx/evtloop.h b/include/wx/evtloop.h index 7a9495afbf..ee6759d5b3 100644 --- a/include/wx/evtloop.h +++ b/include/wx/evtloop.h @@ -17,8 +17,7 @@ // TODO: implement wxEventLoopSource for MSW (it should wrap a HANDLE and be // monitored using MsgWaitForMultipleObjects()) -#if defined(__WXOSX__) || defined(__WXGTK20__) || defined(__WXDFB__) || \ - (!wxUSE_GUI && defined(__UNIX__)) +#if defined(__WXOSX__) || (defined(__UNIX__) && !defined(__WXMSW__)) #define wxUSE_EVENTLOOP_SOURCE 1 #else #define wxUSE_EVENTLOOP_SOURCE 0 @@ -185,7 +184,7 @@ protected: wxDECLARE_NO_COPY_CLASS(wxEventLoopBase); }; -#if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXDFB__) || defined(__UNIX__) +#if defined(__WINDOWS__) || defined(__WXMAC__) || defined(__WXDFB__) || (defined(__UNIX__) && !defined(__WXOSX__)) // this class can be used to implement a standard event loop logic using // Pending() and Dispatch() @@ -228,35 +227,38 @@ private: #endif // platforms using "manual" loop -// include the header defining wxConsoleEventLoop for Unix systems -#if defined(__UNIX__) - #include "wx/unix/evtloop.h" -#endif - // we're moving away from old m_impl wxEventLoop model as otherwise the user // code doesn't have access to platform-specific wxEventLoop methods and this // can sometimes be very useful (e.g. under MSW this is necessary for // integration with MFC) but currently this is not done for all ports yet (e.g. // wxX11) so fall back to the old wxGUIEventLoop definition below for them -#if defined(__WXPALMOS__) - #include "wx/palmos/evtloop.h" -#elif defined(__WXMSW__) - // this header defines both console and GUI loops for MSW - #include "wx/msw/evtloop.h" -#elif defined(__WXOSX__) +#if defined(__DARWIN__) // CoreFoundation-based event loop is currently in wxBase so include it in // any case too (although maybe it actually shouldn't be there at all) - #include "wx/osx/evtloop.h" -#elif wxUSE_GUI + #include "wx/osx/core/evtloop.h" +#endif + +// include the header defining wxConsoleEventLoop +#if defined(__UNIX__) && !defined(__WXMSW__) + #include "wx/unix/evtloop.h" +#elif defined(__WINDOWS__) + #include "wx/msw/evtloopconsole.h" +#endif + +#if wxUSE_GUI // include the appropriate header defining wxGUIEventLoop -#if defined(__WXCOCOA__) +#if defined(__WXMSW__) + #include "wx/msw/evtloop.h" +#elif defined(__WXCOCOA__) #include "wx/cocoa/evtloop.h" +#elif defined(__WXOSX__) + #include "wx/osx/evtloop.h" #elif defined(__WXDFB__) #include "wx/dfb/evtloop.h" -#elif defined(__WXGTK__) +#elif defined(__WXGTK20__) #include "wx/gtk/evtloop.h" #else // other platform @@ -270,6 +272,19 @@ public: wxGUIEventLoop() { m_impl = NULL; } virtual ~wxGUIEventLoop(); +#if wxUSE_EVENTLOOP_SOURCE + // We need to define a base class pure virtual method but we can't provide + // a generic implementation for it so simply fail. + virtual wxEventLoopSource * + AddSourceForFD(int WXUNUSED(fd), + wxEventLoopSourceHandler * WXUNUSED(handler), + int WXUNUSED(flags)) + { + wxFAIL_MSG( "support for event loop sources not implemented" ); + return NULL; + } +#endif // wxUSE_EVENTLOOP_SOURCE + virtual int Run(); virtual void Exit(int rc = 0); virtual bool Pending() const; @@ -309,7 +324,7 @@ protected: #else // !wxUSE_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 wxUSE_CONSOLE_EVENTLOOP && (defined(__WXMSW__) || defined(__UNIX__)) + #if wxUSE_CONSOLE_EVENTLOOP && (defined(__WINDOWS__) || defined(__UNIX__)) #define wxEventLoop wxConsoleEventLoop #else // we still must define it somehow for the code below... #define wxEventLoop wxEventLoopBase @@ -318,7 +333,7 @@ protected: inline bool wxEventLoopBase::IsRunning() const { return GetActive() == this; } -#if wxUSE_GUI +#if wxUSE_GUI && !defined(__WXOSX__) // ---------------------------------------------------------------------------- // wxModalEventLoop // ----------------------------------------------------------------------------