1/////////////////////////////////////////////////////////////////////////////// 2// Name: msw/basemsw.cpp 3// Purpose: misc stuff only used in console applications under MSW 4// Author: Vadim Zeitlin 5// Modified by: 6// Created: 22.06.2003 7// RCS-ID: $Id: basemsw.cpp 39831 2006-06-25 23:53:53Z VZ $ 8// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> 9// License: wxWindows licence 10/////////////////////////////////////////////////////////////////////////////// 11 12// ============================================================================ 13// declarations 14// ============================================================================ 15 16// ---------------------------------------------------------------------------- 17// headers 18// ---------------------------------------------------------------------------- 19 20// for compilers that support precompilation, includes "wx.h". 21#include "wx/wxprec.h" 22 23#ifdef __BORLANDC__ 24 #pragma hdrstop 25#endif 26 27#ifndef WX_PRECOMP 28#endif //WX_PRECOMP 29 30#include "wx/apptrait.h" 31// MBN: this is a workaround for MSVC 5: if it is not #included in 32// some wxBase file, wxRecursionGuard methods won't be exported from 33// wxBase.dll, and MSVC 5 will give linker errors 34#include "wx/recguard.h" 35 36#include "wx/msw/private.h" 37 38// ============================================================================ 39// wxConsoleAppTraits implementation 40// ============================================================================ 41 42void wxConsoleAppTraits::AlwaysYield() 43{ 44 // we need to use special logic to deal with WM_PAINT: as this pseudo 45 // message is generated automatically as long as there are invalidated 46 // windows belonging to this thread, we'd never return if we waited here 47 // until we have no more of them left. OTOH, this message is always the 48 // last one in the queue, so we can safely return as soon as we detect it 49 MSG msg; 50 while ( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) 51 { 52 if ( msg.message == WM_PAINT ) 53 break; 54 } 55} 56 57void *wxConsoleAppTraits::BeforeChildWaitLoop() 58{ 59 // nothing to do here 60 return NULL; 61} 62 63void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data)) 64{ 65 // nothing to do here 66} 67 68bool wxConsoleAppTraits::DoMessageFromThreadWait() 69{ 70 // nothing to process here 71 return true; 72} 73 74