* wxWindowDC
*/
-#include <wx/mac/uma.h>
+#include "wx/mac/uma.h"
wxWindowDC::wxWindowDC()
{
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 ) ;
+ SectRgn( m_macBoundaryClipRgn , the_canvas->MacGetVisibleRegion().GetWXHRGN() , m_macBoundaryClipRgn ) ;
+ OffsetRgn( m_macBoundaryClipRgn , m_macLocalOrigin.h , m_macLocalOrigin.v ) ;
+ CopyRgn( m_macBoundaryClipRgn , m_macCurrentClipRgn ) ;
m_macPort = UMAGetWindowPort( windowref ) ;
m_minY = m_minX = 0;
wxSize size = the_canvas->GetSize() ;
m_maxY = size.y ;
m_ok = TRUE ;
- SetBackground(wxBrush(the_canvas->GetBackgroundColour(), wxSOLID));
+ SetBackground(the_canvas->MacGetBackgroundBrush());
}
wxWindowDC::~wxWindowDC()
wxClientDC::wxClientDC(wxWindow *window)
{
WindowRef windowref ;
- wxWindow* rootwindow ;
+ wxWindowMac* rootwindow ;
+
+ Rect clipRect ;
+ wxPoint origin = window->GetClientAreaOrigin() ;
- window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow );
+ window->MacGetPortClientParams(&m_macLocalOrigin, &clipRect , &windowref , &rootwindow );
+ SetRectRgn( m_macBoundaryClipRgn , clipRect.left + origin.x , clipRect.top + origin.y , clipRect.right + origin.x , clipRect.bottom + origin.y ) ;
+ SectRgn( m_macBoundaryClipRgn , window->MacGetVisibleRegion().GetWXHRGN() , m_macBoundaryClipRgn ) ;
+ OffsetRgn( m_macBoundaryClipRgn , -origin.x , -origin.y ) ;
+ OffsetRgn( m_macBoundaryClipRgn , m_macLocalOrigin.h , m_macLocalOrigin.v ) ;
+ CopyRgn( m_macBoundaryClipRgn , m_macCurrentClipRgn ) ;
m_macPort = UMAGetWindowPort( windowref ) ;
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));
+ SetBackground(window->MacGetBackgroundBrush());
SetFont( window->GetFont() ) ;
}
wxPaintDC::wxPaintDC(wxWindow *window)
{
WindowRef windowref ;
- wxWindow* rootwindow ;
+ wxWindowMac* rootwindow ;
- window->MacGetPortClientParams(&m_macLocalOrigin, &m_macClipRect , &windowref , &rootwindow );
-
+ Rect clipRect ;
+ wxPoint origin = window->GetClientAreaOrigin() ;
+
+ window->MacGetPortClientParams(&m_macLocalOrigin, &clipRect , &windowref , &rootwindow );
+ SetRectRgn( m_macBoundaryClipRgn , clipRect.left + origin.x , clipRect.top + origin.y , clipRect.right + origin.x , clipRect.bottom + origin.y ) ;
+ SectRgn( m_macBoundaryClipRgn , window->MacGetVisibleRegion().GetWXHRGN() , m_macBoundaryClipRgn ) ;
+ OffsetRgn( m_macBoundaryClipRgn , -origin.x , -origin.y ) ;
+ SectRgn( m_macBoundaryClipRgn , window->GetUpdateRegion().GetWXHRGN() , m_macBoundaryClipRgn ) ;
+ OffsetRgn( m_macBoundaryClipRgn , m_macLocalOrigin.h , m_macLocalOrigin.v ) ;
+ CopyRgn( m_macBoundaryClipRgn , m_macCurrentClipRgn ) ;
m_macPort = UMAGetWindowPort( windowref ) ;
m_ok = TRUE ;
/*
m_maxY = size.y ;
SetClippingRegion( x , y , w , h ) ;
*/
- SetBackground(wxBrush(window->GetBackgroundColour(), wxSOLID));
- SetFont(window->GetFont() ) ;
+ SetBackground(window->MacGetBackgroundBrush());
+ SetFont(window->GetFont() ) ;
}
wxPaintDC::~wxPaintDC()