X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e570a44b372cf56526c128eab646615fa59520fc..6968a3b87cee46f5c5af9b46e1ef97f17133cef7:/include/wx/msw/apptrait.h

diff --git a/include/wx/msw/apptrait.h b/include/wx/msw/apptrait.h
index 7b7971a578..81a203f78f 100644
--- a/include/wx/msw/apptrait.h
+++ b/include/wx/msw/apptrait.h
@@ -19,29 +19,79 @@
 class WXDLLIMPEXP_BASE wxConsoleAppTraits : public wxConsoleAppTraitsBase
 {
 public:
+    virtual wxEventLoopBase *CreateEventLoop();
     virtual void *BeforeChildWaitLoop();
-    virtual void AlwaysYield();
     virtual void AfterChildWaitLoop(void *data);
-
+#if wxUSE_TIMER
+    virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
+#endif // wxUSE_TIMER
+#if wxUSE_THREADS
     virtual bool DoMessageFromThreadWait();
-    virtual WXDWORD WaitForThread(WXHANDLE hThread);
+    virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags);
+#endif // wxUSE_THREADS
+#ifndef __WXWINCE__
+    virtual bool CanUseStderr() { return true; }
+    virtual bool WriteToStderr(const wxString& text);
+#endif // !__WXWINCE__
 };
 
 #if wxUSE_GUI
 
+#if defined(__WXMSW__)
+
 class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase
 {
 public:
+    virtual wxEventLoopBase *CreateEventLoop();
     virtual void *BeforeChildWaitLoop();
-    virtual void AlwaysYield();
     virtual void AfterChildWaitLoop(void *data);
-
+#if wxUSE_TIMER
+    virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
+#endif // wxUSE_TIMER
+#if wxUSE_THREADS
     virtual bool DoMessageFromThreadWait();
-    virtual wxPortId GetToolkitVersion(int *majVer, int *minVer) const;
-    virtual WXDWORD WaitForThread(WXHANDLE hThread);
+    virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags);
+#endif // wxUSE_THREADS
+    virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const;
+
+#ifndef __WXWINCE__
+    virtual bool CanUseStderr();
+    virtual bool WriteToStderr(const wxString& text);
+#endif // !__WXWINCE__
 };
 
+#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
+    virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const;
+
+#ifndef __WXWINCE__
+    virtual bool CanUseStderr() { return false; }
+    virtual bool WriteToStderr(const wxString& WXUNUSED(text)) { return false; }
+#endif // !__WXWINCE__
+};
+
+#endif
+
 #endif // wxUSE_GUI
 
 #endif // _WX_MSW_APPTRAIT_H_
-