///////////////////////////////////////////////////////////////////////////////
// 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
-// RCS-ID: $Id$
// Copyright: (c) 2003-2004 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#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);
-};
-
-#if wxUSE_GUI
+WX_DECLARE_EXPORTED_OBJARRAY(MSG, wxMSGArray);
class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxMSWEventLoopBase
{
// override/implement base class virtuals
virtual bool Dispatch();
+ virtual int DispatchTimeout(unsigned long timeout);
virtual void WakeUp();
+ virtual bool YieldFor(long eventsToProcess);
protected:
virtual void OnNextIteration();
// 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
-
-class WXDLLIMPEXP_BASE wxConsoleEventLoop : public wxMSWEventLoopBase
-{
-public:
- wxConsoleEventLoop() { }
-
- // override/implement base class virtuals
- virtual bool Dispatch();
- virtual void WakeUp();
-
-protected:
- virtual void OnNextIteration();
-};
-
-#endif // wxUSE_GUI/!wxUSE_GUI
-
#endif // _WX_MSW_EVTLOOP_H_