2011-03-20 18:05:19 +00:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: wx/msw/apptrait.h
|
|
|
|
// Purpose: class implementing wxAppTraits for MSW
|
|
|
|
// Author: Vadim Zeitlin
|
|
|
|
// Modified by:
|
|
|
|
// Created: 21.06.2003
|
|
|
|
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef _WX_MSW_APPTRAIT_H_
|
|
|
|
#define _WX_MSW_APPTRAIT_H_
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// wxGUI/ConsoleAppTraits: must derive from wxAppTraits, not wxAppTraitsBase
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class WXDLLIMPEXP_BASE wxConsoleAppTraits : public wxConsoleAppTraitsBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
virtual wxEventLoopBase *CreateEventLoop();
|
|
|
|
virtual void *BeforeChildWaitLoop();
|
|
|
|
virtual void AfterChildWaitLoop(void *data);
|
|
|
|
#if wxUSE_TIMER
|
|
|
|
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
2011-03-23 09:13:01 +00:00
|
|
|
#endif // wxUSE_TIMER
|
|
|
|
#if wxUSE_THREADS
|
2011-03-20 18:05:19 +00:00
|
|
|
virtual bool DoMessageFromThreadWait();
|
|
|
|
virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags);
|
2011-03-23 09:13:01 +00:00
|
|
|
#endif // wxUSE_THREADS
|
2011-03-20 18:05:19 +00:00
|
|
|
virtual bool CanUseStderr() { return true; }
|
|
|
|
virtual bool WriteToStderr(const wxString& text);
|
|
|
|
};
|
|
|
|
|
|
|
|
#if wxUSE_GUI
|
|
|
|
|
2013-09-22 22:44:55 +00:00
|
|
|
#if defined(__WXMSW__)
|
|
|
|
|
2011-03-20 18:05:19 +00:00
|
|
|
class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
virtual wxEventLoopBase *CreateEventLoop();
|
|
|
|
virtual void *BeforeChildWaitLoop();
|
|
|
|
virtual void AfterChildWaitLoop(void *data);
|
|
|
|
#if wxUSE_TIMER
|
|
|
|
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
2011-03-23 09:13:01 +00:00
|
|
|
#endif // wxUSE_TIMER
|
|
|
|
#if wxUSE_THREADS
|
2011-03-20 18:05:19 +00:00
|
|
|
virtual bool DoMessageFromThreadWait();
|
|
|
|
virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags);
|
2011-03-23 09:13:01 +00:00
|
|
|
#endif // wxUSE_THREADS
|
2016-06-26 05:25:29 +00:00
|
|
|
wxPortId GetToolkitVersion(int *majVer = NULL,
|
|
|
|
int *minVer = NULL,
|
|
|
|
int *microVer = NULL) const wxOVERRIDE;
|
2011-03-20 18:05:19 +00:00
|
|
|
|
|
|
|
virtual bool CanUseStderr();
|
|
|
|
virtual bool WriteToStderr(const wxString& text);
|
|
|
|
};
|
|
|
|
|
2013-09-22 22:44:55 +00:00
|
|
|
#elif defined(__WXGTK__)
|
|
|
|
|
|
|
|
class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
virtual wxEventLoopBase *CreateEventLoop();
|
|
|
|
virtual void *BeforeChildWaitLoop() { return NULL; }
|
|
|
|
virtual void AfterChildWaitLoop(void *WXUNUSED(data)) { }
|
|
|
|
#if wxUSE_TIMER
|
|
|
|
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if wxUSE_THREADS && defined(__WXGTK20__)
|
|
|
|
virtual void MutexGuiEnter();
|
|
|
|
virtual void MutexGuiLeave();
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if wxUSE_THREADS
|
|
|
|
virtual bool DoMessageFromThreadWait() { return true; }
|
|
|
|
virtual WXDWORD WaitForThread(WXHANDLE hThread, int WXUNUSED(flags))
|
|
|
|
{ return DoSimpleWaitForThread(hThread); }
|
|
|
|
#endif // wxUSE_THREADS
|
2016-06-26 05:25:29 +00:00
|
|
|
virtual wxPortId GetToolkitVersion(int *majVer = NULL,
|
|
|
|
int *minVer = NULL,
|
|
|
|
int *microVer = NULL) const;
|
2013-09-22 22:44:55 +00:00
|
|
|
|
|
|
|
virtual bool CanUseStderr() { return false; }
|
|
|
|
virtual bool WriteToStderr(const wxString& WXUNUSED(text)) { return false; }
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2011-03-20 18:05:19 +00:00
|
|
|
#endif // wxUSE_GUI
|
|
|
|
|
|
|
|
#endif // _WX_MSW_APPTRAIT_H_
|