X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b44ffc0e77a8db603b3aba597e4c4df2e2e518f..27d7687903b04c56878597fefccf3daafd0a58fa:/src/msw/dcclient.cpp?ds=sidebyside diff --git a/src/msw/dcclient.cpp b/src/msw/dcclient.cpp index b965c68430..bad81c1e72 100644 --- a/src/msw/dcclient.cpp +++ b/src/msw/dcclient.cpp @@ -33,10 +33,6 @@ #include "wx/window.h" #endif -#if wxUSE_GRAPHICS_CONTEXT -#include "wx/graphics.h" -#endif - #include "wx/msw/private.h" // ---------------------------------------------------------------------------- @@ -71,13 +67,13 @@ WX_DEFINE_OBJARRAY(wxArrayDCInfo) static PAINTSTRUCT g_paintStruct; -#ifdef __WXDEBUG__ +#ifdef wxHAS_PAINT_DEBUG // a global variable which we check to verify that wxPaintDC are only // created in response to WM_PAINT message - doing this from elsewhere is a // common programming error among wxWidgets programmers and might lead to // very subtle and difficult to debug refresh/repaint bugs. int g_isPainting = 0; -#endif // __WXDEBUG__ +#endif // wxHAS_PAINT_DEBUG // =========================================================================== // implementation @@ -97,7 +93,7 @@ wxWindowDCImpl::wxWindowDCImpl( wxDC *owner ) : wxWindowDCImpl::wxWindowDCImpl( wxDC *owner, wxWindow *window ) : wxMSWDCImpl( owner ) { - wxCHECK_RET( window, _T("invalid window in wxWindowDCImpl") ); + wxCHECK_RET( window, wxT("invalid window in wxWindowDCImpl") ); m_window = window; m_hDC = (WXHDC) ::GetWindowDC(GetHwndOf(m_window)); @@ -113,26 +109,15 @@ void wxWindowDCImpl::InitDC() // DrawText() to OPAQUE as required, otherwise always TRANSPARENT, ::SetBkMode(GetHdc(), TRANSPARENT); - // default bg colour is pne of the window - SetBackground(wxBrush(m_window->GetBackgroundColour(), wxBRUSHSTYLE_SOLID)); - // since we are a window dc we need to grab the palette from the window #if wxUSE_PALETTE InitializePalette(); #endif } -#if wxUSE_GRAPHICS_CONTEXT -wxGraphicsContext* wxWindowDCImpl::CreateGraphicsContext() -{ - wxWindowDC *windowdc = (wxWindowDC*) GetOwner(); - return wxGraphicsRenderer::GetDefaultRenderer()->CreateContext( *windowdc ); -} -#endif - void wxWindowDCImpl::DoGetSize(int *width, int *height) const { - wxCHECK_RET( m_window, _T("wxWindowDCImpl without a window?") ); + wxCHECK_RET( m_window, wxT("wxWindowDCImpl without a window?") ); m_window->GetSize(width, height); } @@ -151,7 +136,7 @@ wxClientDCImpl::wxClientDCImpl( wxDC *owner ) : wxClientDCImpl::wxClientDCImpl( wxDC *owner, wxWindow *window ) : wxWindowDCImpl( owner ) { - wxCHECK_RET( window, _T("invalid window in wxClientDCImpl") ); + wxCHECK_RET( window, wxT("invalid window in wxClientDCImpl") ); m_window = window; m_hDC = (WXHDC)::GetDC(GetHwndOf(window)); @@ -192,7 +177,7 @@ wxClientDCImpl::~wxClientDCImpl() void wxClientDCImpl::DoGetSize(int *width, int *height) const { - wxCHECK_RET( m_window, _T("wxClientDCImpl without a window?") ); + wxCHECK_RET( m_window, wxT("wxClientDCImpl without a window?") ); m_window->GetClientSize(width, height); } @@ -231,14 +216,14 @@ wxPaintDCImpl::wxPaintDCImpl( wxDC *owner, wxWindow *window ) : { wxCHECK_RET( window, wxT("NULL canvas in wxPaintDCImpl ctor") ); -#ifdef __WXDEBUG__ +#ifdef wxHAS_PAINT_DEBUG if ( g_isPainting <= 0 ) { wxFAIL_MSG( wxT("wxPaintDCImpl may be created only in EVT_PAINT handler!") ); return; } -#endif // __WXDEBUG__ +#endif // wxHAS_PAINT_DEBUG m_window = window; @@ -251,6 +236,11 @@ wxPaintDCImpl::wxPaintDCImpl( wxDC *owner, wxWindow *window ) : } else // not in cache, create a new one { + // see comments in src/msw/window.cpp where this is defined + extern bool wxDidCreatePaintDC; + + wxDidCreatePaintDC = true; + m_hDC = (WXHDC)::BeginPaint(GetHwndOf(m_window), &g_paintStruct); if (m_hDC) ms_cache.Add(new wxPaintDCInfo(m_window, this));