]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/basemsw.cpp
Correct drawing of mnemonics in wxStaticBox label under wxMSW.
[wxWidgets.git] / src / msw / basemsw.cpp
index 6120c9e472e2032093b54508b9b094b710d0e228..ba07b70914d1af42d6cfca1a2477d905a298c62f 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     22.06.2003
 // RCS-ID:      $Id$
 // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
-// License:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 #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"
 
 // ============================================================================
-// wxConsoleAppTraits implementation
+// wxAppTraits implementation
 // ============================================================================
 
-void wxConsoleAppTraits::AlwaysYield()
+WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
 {
-    MSG msg;
-    while ( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
-        ;
+    return ::WaitForSingleObject((HANDLE)hThread, INFINITE);
 }
 
+// ============================================================================
+// wxConsoleAppTraits implementation
+// ============================================================================
+
 void *wxConsoleAppTraits::BeforeChildWaitLoop()
 {
     // nothing to do here
@@ -59,3 +69,31 @@ bool wxConsoleAppTraits::DoMessageFromThreadWait()
     return true;
 }
 
+#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;
+}