X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..f7035880664b0989ba37df99956b556c322d50a7:/src/mac/dcmemory.cpp diff --git a/src/mac/dcmemory.cpp b/src/mac/dcmemory.cpp index 7cbd330821..85f1af33c5 100644 --- a/src/mac/dcmemory.cpp +++ b/src/mac/dcmemory.cpp @@ -23,31 +23,62 @@ 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) +wxMemoryDC::~wxMemoryDC() { + if ( m_selected.Ok() ) + { + UnlockPixels( GetGWorldPixMap(m_selected.GetHBITMAP()) ); + } }; void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) { - m_selected = bitmap; - if (m_selected.Ok()) - { + if ( m_selected.Ok() ) + { + UnlockPixels( GetGWorldPixMap(m_selected.GetHBITMAP()) ); + } + m_selected = bitmap; + if (m_selected.Ok()) + { + if ( m_selected.GetHBITMAP() ) + { + m_macPort = (GrafPtr) m_selected.GetHBITMAP() ; + LockPixels( GetGWorldPixMap( (CGrafPtr) m_macPort ) ) ; + wxMask * mask = bitmap.GetMask() ; + if ( mask ) + { + m_macMask = mask->GetMaskBitmap() ; + } + m_ok = TRUE ; + } + else + { + m_ok = FALSE; + } } else { m_ok = FALSE; - }; -}; + } +} -void wxMemoryDC::GetSize( int *width, int *height ) const +void wxMemoryDC::DoGetSize( int *width, int *height ) const { if (m_selected.Ok()) { @@ -58,7 +89,7 @@ void wxMemoryDC::GetSize( int *width, int *height ) const { if (width) (*width) = 0; if (height) (*height) = 0; - }; -}; + } +}