X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad81651f00edc6f489d9b6a0839d316a964fd521..a9249b2eb2a40d8c71f828669045c4ddaa8dc5ff:/src/mac/carbon/dcclient.cpp diff --git a/src/mac/carbon/dcclient.cpp b/src/mac/carbon/dcclient.cpp index 12100b81cd..efb55b34c0 100644 --- a/src/mac/carbon/dcclient.cpp +++ b/src/mac/carbon/dcclient.cpp @@ -16,6 +16,7 @@ #include "wx/dcclient.h" #include "wx/dcmemory.h" #include "wx/region.h" +#include "wx/window.h" #include //----------------------------------------------------------------------------- @@ -28,34 +29,43 @@ // wxPaintDC //----------------------------------------------------------------------------- +#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) +#endif /* * wxWindowDC */ -#include +#include "wx/mac/uma.h" -wxWindowDC::wxWindowDC(void) +wxWindowDC::wxWindowDC() { } -wxWindowDC::wxWindowDC(wxWindow *the_canvas) +wxWindowDC::wxWindowDC(wxWindow *the_canvas) { WindowRef windowref ; - wxWindow* rootwindow ; + wxWindowMac* rootwindow ; // this time it is really the full window - - the_canvas->MacGetPortParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow ); + Rect clipRect ; + the_canvas->MacGetPortParams(&m_macLocalOrigin, &clipRect , &windowref , &rootwindow ); + SetRectRgn( m_macBoundaryClipRgn , clipRect.left , clipRect.top , clipRect.right , clipRect.bottom ) ; + CopyRgn( m_macBoundaryClipRgn , m_macCurrentClipRgn ) ; m_macPort = UMAGetWindowPort( windowref ) ; - MacSetupPort() ; + m_minY = m_minX = 0; + wxSize size = the_canvas->GetSize() ; + m_maxX = size.x ; + m_maxY = size.y ; + m_ok = TRUE ; + SetBackground(wxBrush(the_canvas->GetBackgroundColour(), wxSOLID)); } -wxWindowDC::~wxWindowDC(void) +wxWindowDC::~wxWindowDC() { } @@ -63,24 +73,30 @@ wxWindowDC::~wxWindowDC(void) * wxClientDC */ -wxClientDC::wxClientDC(void) +wxClientDC::wxClientDC() { } wxClientDC::wxClientDC(wxWindow *window) { WindowRef windowref ; - wxWindow* rootwindow ; + wxWindowMac* rootwindow ; - window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow ); + Rect clipRect ; + window->MacGetPortClientParams(&m_macLocalOrigin, &clipRect , &windowref , &rootwindow ); + SetRectRgn( m_macBoundaryClipRgn , clipRect.left , clipRect.top , clipRect.right , clipRect.bottom ) ; + CopyRgn( m_macBoundaryClipRgn , m_macCurrentClipRgn ) ; m_macPort = UMAGetWindowPort( windowref ) ; - MacSetupPort() ; + m_minY = m_minX = 0; + wxSize size = window->GetSize() ; + m_maxX = size.x ; + m_maxY = size.y ; m_ok = TRUE ; SetBackground(wxBrush(window->GetBackgroundColour(), wxSOLID)); SetFont( window->GetFont() ) ; } -wxClientDC::~wxClientDC(void) +wxClientDC::~wxClientDC() { } @@ -88,23 +104,30 @@ wxClientDC::~wxClientDC(void) * wxPaintDC */ -wxPaintDC::wxPaintDC(void) +wxPaintDC::wxPaintDC() { } wxPaintDC::wxPaintDC(wxWindow *window) { WindowRef windowref ; - wxWindow* rootwindow ; + wxWindowMac* rootwindow ; - window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow ); - + Rect clipRect ; + window->MacGetPortClientParams(&m_macLocalOrigin, &clipRect , &windowref , &rootwindow ); + CopyRgn( window->GetUpdateRegion().GetWXHRGN() , m_macBoundaryClipRgn ) ; + CopyRgn( m_macBoundaryClipRgn , m_macCurrentClipRgn ) ; m_macPort = UMAGetWindowPort( windowref ) ; - MacSetupPort() ; m_ok = TRUE ; - long x , y ,w , h ; + /* + wxCoord x , y ,w , h ; window->GetUpdateRegion().GetBox( x , y , w , h ) ; + m_minY = m_minX = 0; + wxSize size = window->GetSize() ; + m_maxX = size.x ; + m_maxY = size.y ; SetClippingRegion( x , y , w , h ) ; + */ SetBackground(wxBrush(window->GetBackgroundColour(), wxSOLID)); SetFont(window->GetFont() ) ; }