]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/basemsw.cpp
Allow OS X Cocoa (or any OS X port) to override GetBestSize and provide a native...
[wxWidgets.git] / src / msw / basemsw.cpp
index e033e2be88acbbf90c0b5e219df14b3a642db005..4981322259fe6006ab884c9b50f7b52f24d3bf72 100644 (file)
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/event.h"
 #endif //WX_PRECOMP
 
 #include "wx/apptrait.h"
+#include "wx/evtloop.h"
 #include "wx/msw/private/timer.h"
 // MBN: this is a workaround for MSVC 5: if it is not #included in
 // some wxBase file, wxRecursionGuard methods won't be exported from
 // wxBase.dll, and MSVC 5 will give linker errors
 #include "wx/recguard.h"
 
+#include "wx/crt.h"
 #include "wx/msw/private.h"
 
 // ============================================================================
@@ -49,21 +52,6 @@ WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
 // 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
@@ -81,15 +69,31 @@ bool wxConsoleAppTraits::DoMessageFromThreadWait()
     return true;
 }
 
-wxTimerImpl *
-wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
+#if wxUSE_TIMER
+
+wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer)
 {
     return new wxMSWTimerImpl(timer);
 }
 
+#endif // wxUSE_TIMER
+
+wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop()
+{
+#if wxUSE_CONSOLE_EVENTLOOP
+    return new wxEventLoop();
+#else // !wxUSE_CONSOLE_EVENTLOOP
+    return NULL;
+#endif // wxUSE_CONSOLE_EVENTLOOP/!wxUSE_CONSOLE_EVENTLOOP
+}
+
 
 WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread)
 {
     return DoSimpleWaitForThread(hThread);
 }
 
+bool wxConsoleAppTraits::WriteToStderr(const wxString& text)
+{
+    return wxFprintf(stderr, "%s", text) != -1;
+}