e27f554012
Refactor the console event loop code into separate files to untangle it from the GUI version and ensure that it doesn't depend on the GUI at all. It can now be defined in the base library and simply reused by the core one. This also makes the console event loop usable for other ports under Windows, e.g. wxGTK. Closes #14426. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msw/evtloopconsole.h
|
|
// Purpose: wxConsoleEventLoop class for Windows
|
|
// 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_EVTLOOPCONSOLE_H_
|
|
#define _WX_MSW_EVTLOOPCONSOLE_H_
|
|
|
|
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_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();
|
|
virtual bool YieldFor(long WXUNUSED(eventsToProcess)) { return true; }
|
|
|
|
// Windows-specific function to process a single message
|
|
virtual void ProcessMessage(WXMSG *msg);
|
|
};
|
|
|
|
#endif // wxUSE_CONSOLE_EVENTLOOP
|
|
|
|
#endif // _WX_MSW_EVTLOOPCONSOLE_H_
|