X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..71e483d39adbc1c80ef2fa998bd7f18e1704440c:/src/mac/dcmemory.cpp diff --git a/src/mac/dcmemory.cpp b/src/mac/dcmemory.cpp index 7cbd330821..fba8a5891e 100644 --- a/src/mac/dcmemory.cpp +++ b/src/mac/dcmemory.cpp @@ -23,23 +23,59 @@ IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxPaintDC) wxMemoryDC::wxMemoryDC(void) { + m_ok = TRUE; + SetBackground(*wxWHITE_BRUSH); + SetBrush(*wxWHITE_BRUSH); + SetPen(*wxBLACK_PEN); m_ok = FALSE; }; wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) { + m_ok = TRUE; + SetBackground(*wxWHITE_BRUSH); + SetBrush(*wxWHITE_BRUSH); + SetPen(*wxBLACK_PEN); m_ok = FALSE; }; wxMemoryDC::~wxMemoryDC(void) { + if ( m_selected.Ok() ) + { + wxBitmapRefData * bmap = (wxBitmapRefData*) (m_selected.GetRefData()) ; + UnlockPixels( GetGWorldPixMap( (CGrafPtr) bmap->m_hBitmap ) ) ; + } }; void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) { + if ( m_selected.Ok() ) + { + wxBitmapRefData * bmap = (wxBitmapRefData*) (m_selected.GetRefData()) ; + UnlockPixels( GetGWorldPixMap( (CGrafPtr) bmap->m_hBitmap ) ) ; + } m_selected = bitmap; if (m_selected.Ok()) { + wxBitmapRefData * bmap = (wxBitmapRefData*) (m_selected.GetRefData()) ; + if ( bmap->m_hBitmap ) + { + m_macPort = (GrafPtr) bmap->m_hBitmap ; + LockPixels( GetGWorldPixMap( (CGrafPtr) m_macPort ) ) ; + wxMask * mask = bitmap.GetMask() ; + if ( mask ) + { + m_macMask = mask->GetMaskBitmap() ; + } + MacSetupPort() ; + m_ok = TRUE ; + // SetBackground(wxBrush(*wxWHITE, wxSOLID)); + } + else + { + m_ok = FALSE; + } } else { @@ -47,7 +83,7 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) }; }; -void wxMemoryDC::GetSize( int *width, int *height ) const +void wxMemoryDC::DoGetSize( int *width, int *height ) const { if (m_selected.Ok()) {