From: Robin Dunn Date: Sat, 21 Feb 2004 01:53:46 +0000 (+0000) Subject: Use a local copy of the old wxBufferedDC classes until the ones in the X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ef22e3d35e23237cb616e420951f5da8c46c0200 Use a local copy of the old wxBufferedDC classes until the ones in the C++ library are fixed again. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/include/wx/wxPython/wxPython_int.h b/wxPython/include/wx/wxPython/wxPython_int.h index 9fb470f268..8929f3aef0 100644 --- a/wxPython/include/wx/wxPython/wxPython_int.h +++ b/wxPython/include/wx/wxPython/wxPython_int.h @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff --git a/wxPython/src/_dc.i b/wxPython/src/_dc.i index d359bbdbab..b21b3dffff 100644 --- a/wxPython/src/_dc.i +++ b/wxPython/src/_dc.i @@ -570,6 +570,97 @@ public: %newgroup +%{ +//-=-=-=-=-=-=-=-=-=-=- +#if 0 +#include +#else + + +// Temporarily put a set of classes here similar to the old buffered DC +// classes until the real ones can be fixed to work "correctly" again. + +class wxBufferedDC : public wxMemoryDC +{ +private: + wxDC *m_dc; + wxBitmap m_buffer; + +public: + + wxBufferedDC() : m_dc( 0 ) {} + + wxBufferedDC( wxDC *dc, const wxBitmap &buffer ) + : m_dc( dc ), m_buffer( buffer ) + { + SelectObject( m_buffer ); + } + + wxBufferedDC( wxDC *dc, const wxSize &area ) + : m_dc( dc ), m_buffer( area.GetWidth(), area.GetHeight() ) + { + SelectObject( m_buffer ); + } + + ~wxBufferedDC() { + if( m_dc != 0 ) + UnMask(); + } + + + void Init( wxDC *dc, const wxBitmap &buffer ) { + wxASSERT_MSG( m_dc == 0 && m_buffer == wxNullBitmap, + _T("wxBufferedDC already initialised") ); + m_dc = dc; + m_buffer = buffer; + SelectObject( m_buffer ); + } + + void Init( wxDC *dc, const wxSize &area ) { + wxASSERT_MSG( m_dc == 0 && m_buffer == wxNullBitmap, + _T("wxBufferedDC already initialised") ); + m_dc = dc; + m_buffer = wxBitmap( area.GetWidth(), area.GetHeight() ); + SelectObject( m_buffer ); + } + + void UnMask() { + wxASSERT_MSG( m_dc != 0, _T("No low level DC associated with buffer (anymore)") ); + m_dc->Blit( 0, 0, m_buffer.GetWidth(), m_buffer.GetHeight(), this, 0, 0 ); + m_dc = 0; + } +}; + + +class wxBufferedPaintDC : public wxBufferedDC +{ +private: + wxPaintDC m_paintdc; + +public: + wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer = wxNullBitmap ) + : m_paintdc( window ) + { + window->PrepareDC( m_paintdc ); + + if( buffer != wxNullBitmap ) + Init( &m_paintdc, buffer ); + else + Init( &m_paintdc, window->GetClientSize() ); + } + + ~wxBufferedPaintDC() { + UnMask(); + } +}; + +#endif +//-=-=-=-=-=-=-=-=-=-=- +%} + + + + class wxBufferedDC : public wxMemoryDC { public: @@ -614,7 +705,7 @@ class wxBufferedPaintDC : public wxBufferedDC { public: - // If no bitmap is supplied by the user, a temporary one wil; be created. + // If no bitmap is supplied by the user, a temporary one will be created. wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer = wxNullBitmap ); };