]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/basemsw.cpp
Enable variadic macros for VC9 and later.
[wxWidgets.git] / src / msw / basemsw.cpp
index 4ba9b8b091703a86d6c85b0929e686dc32f26717..67ab1674a6ea4423aee72d14c953676c59bd8301 100644 (file)
@@ -1,12 +1,12 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        msw/basemsw.cpp
+// Name:        src/msw/basemsw.cpp
 // Purpose:     misc stuff only used in console applications under MSW
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     22.06.2003
 // RCS-ID:      $Id$
 // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
-// License:     wxWindows licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -25,6 +25,7 @@
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/event.h"
 #endif //WX_PRECOMP
 
 #include "wx/apptrait.h"
 // wxBase.dll, and MSVC 5 will give linker errors
 #include "wx/recguard.h"
 
+#include "wx/crt.h"
 #include "wx/msw/private.h"
 
 // ============================================================================
 // wxAppTraits implementation
 // ============================================================================
 
+#if wxUSE_THREADS
 WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
 {
     return ::WaitForSingleObject((HANDLE)hThread, INFINITE);
 }
+#endif // wxUSE_THREADS
 
 // ============================================================================
 // wxConsoleAppTraits implementation
 // ============================================================================
 
-void wxConsoleAppTraits::AlwaysYield()
-{
-    // we need to use special logic to deal with WM_PAINT: as this pseudo
-    // message is generated automatically as long as there are invalidated
-    // windows belonging to this thread, we'd never return if we waited here
-    // until we have no more of them left. OTOH, this message is always the
-    // last one in the queue, so we can safely return as soon as we detect it
-    MSG msg;
-    while ( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
-    {
-        if ( msg.message == WM_PAINT )
-            break;
-    }
-}
-
 void *wxConsoleAppTraits::BeforeChildWaitLoop()
 {
     // nothing to do here
@@ -76,12 +65,19 @@ void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data))
     // nothing to do here
 }
 
+#if wxUSE_THREADS
 bool wxConsoleAppTraits::DoMessageFromThreadWait()
 {
     // nothing to process here
     return true;
 }
 
+WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread, int WXUNUSED(flags))
+{
+    return DoSimpleWaitForThread(hThread);
+}
+#endif // wxUSE_THREADS
+
 #if wxUSE_TIMER
 
 wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
@@ -101,8 +97,7 @@ wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop()
 }
 
 
-WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread)
+bool wxConsoleAppTraits::WriteToStderr(const wxString& text)
 {
-    return DoSimpleWaitForThread(hThread);
+    return wxFprintf(stderr, "%s", text) != -1;
 }
-