X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14eb37a05eb3741f4c8d9e64b7af45480706cb15..a7689c49fe02c0c065facf736ab28b19f5997b7c:/include/wx/msw/evtloop.h?ds=sidebyside diff --git a/include/wx/msw/evtloop.h b/include/wx/msw/evtloop.h index 2869b07a92..e7afd91bab 100644 --- a/include/wx/msw/evtloop.h +++ b/include/wx/msw/evtloop.h @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// // Name: wx/msw/evtloop.h -// Purpose: wxEventLoop class for MSW +// Purpose: wxEventLoop class for wxMSW port // Author: Vadim Zeitlin // Modified by: // Created: 2004-07-31 @@ -12,33 +12,16 @@ #ifndef _WX_MSW_EVTLOOP_H_ #define _WX_MSW_EVTLOOP_H_ -#if wxUSE_GUI +#include "wx/dynarray.h" +#include "wx/msw/wrapwin.h" #include "wx/window.h" -#endif +#include "wx/msw/evtloopconsole.h" // for wxMSWEventLoopBase // ---------------------------------------------------------------------------- // wxEventLoop // ---------------------------------------------------------------------------- -class WXDLLIMPEXP_BASE wxMSWEventLoopBase : public wxEventLoopManual -{ -public: - wxMSWEventLoopBase(); - - // implement base class pure virtuals - virtual bool Pending() const; - -protected: - // get the next message from queue and return true or return false if we - // got WM_QUIT or an error occurred - bool GetNextMessage(WXMSG *msg); - - // same as above but with a timeout and return value can be -1 meaning that - // time out expired in addition to - int GetNextMessageTimeout(WXMSG *msg, unsigned long timeout); -}; - -#if wxUSE_GUI +WX_DECLARE_EXPORTED_OBJARRAY(MSG, wxMSGArray); class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxMSWEventLoopBase { @@ -72,6 +55,7 @@ public: virtual bool Dispatch(); virtual int DispatchTimeout(unsigned long timeout); virtual void WakeUp(); + virtual bool YieldFor(long eventsToProcess); protected: virtual void OnNextIteration(); @@ -81,31 +65,11 @@ private: // non NULL) static bool IsChildOfCriticalWindow(wxWindowMSW *win); + // array of messages used for temporary storage by YieldFor() + wxMSGArray m_arrMSG; // critical window or NULL static wxWindowMSW *ms_winCritical; }; -#else // !wxUSE_GUI - -#if wxUSE_CONSOLE_EVENTLOOP - -class WXDLLIMPEXP_BASE wxConsoleEventLoop : public wxMSWEventLoopBase -{ -public: - wxConsoleEventLoop() { } - - // override/implement base class virtuals - virtual bool Dispatch(); - virtual int DispatchTimeout(unsigned long timeout); - virtual void WakeUp(); - - // MSW-specific function to process a single message - virtual void ProcessMessage(WXMSG *msg); -}; - -#endif // wxUSE_CONSOLE_EVENTLOOP - -#endif // wxUSE_GUI/!wxUSE_GUI - #endif // _WX_MSW_EVTLOOP_H_