]>
git.saurik.com Git - wxWidgets.git/blob - src/mac/dcclient.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxClientDC class
8 // Copyright: (c) AUTHOR
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
13 #pragma implementation "dcclient.h"
16 #include "wx/dcclient.h"
17 #include "wx/dcmemory.h"
18 #include "wx/region.h"
19 #include "wx/window.h"
22 //-----------------------------------------------------------------------------
24 //-----------------------------------------------------------------------------
26 #define RAD2DEG 57.2957795131
28 //-----------------------------------------------------------------------------
30 //-----------------------------------------------------------------------------
32 #if !USE_SHARED_LIBRARY
33 IMPLEMENT_DYNAMIC_CLASS(wxWindowDC
, wxDC
)
34 IMPLEMENT_DYNAMIC_CLASS(wxClientDC
, wxWindowDC
)
35 IMPLEMENT_DYNAMIC_CLASS(wxPaintDC
, wxWindowDC
)
42 #include "wx/mac/uma.h"
44 wxWindowDC::wxWindowDC()
48 wxWindowDC::wxWindowDC(wxWindow
*the_canvas
)
51 wxWindowMac
* rootwindow
;
53 // this time it is really the full window
55 the_canvas
->MacGetPortParams(&m_macLocalOrigin
, &clipRect
, &windowref
, &rootwindow
);
56 SetRectRgn( m_macBoundaryClipRgn
, clipRect
.left
, clipRect
.top
, clipRect
.right
, clipRect
.bottom
) ;
57 SectRgn( m_macBoundaryClipRgn
, the_canvas
->MacGetVisibleRegion().GetWXHRGN() , m_macBoundaryClipRgn
) ;
58 OffsetRgn( m_macBoundaryClipRgn
, m_macLocalOrigin
.h
, m_macLocalOrigin
.v
) ;
59 CopyRgn( m_macBoundaryClipRgn
, m_macCurrentClipRgn
) ;
60 m_macPort
= UMAGetWindowPort( windowref
) ;
62 wxSize size
= the_canvas
->GetSize() ;
67 SetBackground(the_canvas
->MacGetBackgroundBrush());
70 wxWindowDC::~wxWindowDC()
78 wxClientDC::wxClientDC()
82 wxClientDC::wxClientDC(wxWindow
*window
)
85 wxWindowMac
* rootwindow
;
88 wxPoint origin
= window
->GetClientAreaOrigin() ;
90 window
->MacGetPortClientParams(&m_macLocalOrigin
, &clipRect
, &windowref
, &rootwindow
);
91 SetRectRgn( m_macBoundaryClipRgn
, clipRect
.left
+ origin
.x
, clipRect
.top
+ origin
.y
, clipRect
.right
+ origin
.x
, clipRect
.bottom
+ origin
.y
) ;
92 SectRgn( m_macBoundaryClipRgn
, window
->MacGetVisibleRegion().GetWXHRGN() , m_macBoundaryClipRgn
) ;
93 OffsetRgn( m_macBoundaryClipRgn
, -origin
.x
, -origin
.y
) ;
94 OffsetRgn( m_macBoundaryClipRgn
, m_macLocalOrigin
.h
, m_macLocalOrigin
.v
) ;
95 CopyRgn( m_macBoundaryClipRgn
, m_macCurrentClipRgn
) ;
96 m_macPort
= UMAGetWindowPort( windowref
) ;
98 wxSize size
= window
->GetSize() ;
102 SetBackground(window
->MacGetBackgroundBrush());
103 SetFont( window
->GetFont() ) ;
106 wxClientDC::~wxClientDC()
114 wxPaintDC::wxPaintDC()
118 wxPaintDC::wxPaintDC(wxWindow
*window
)
120 WindowRef windowref
;
121 wxWindowMac
* rootwindow
;
124 wxPoint origin
= window
->GetClientAreaOrigin() ;
126 window
->MacGetPortClientParams(&m_macLocalOrigin
, &clipRect
, &windowref
, &rootwindow
);
127 SetRectRgn( m_macBoundaryClipRgn
, clipRect
.left
+ origin
.x
, clipRect
.top
+ origin
.y
, clipRect
.right
+ origin
.x
, clipRect
.bottom
+ origin
.y
) ;
128 SectRgn( m_macBoundaryClipRgn
, window
->MacGetVisibleRegion().GetWXHRGN() , m_macBoundaryClipRgn
) ;
129 OffsetRgn( m_macBoundaryClipRgn
, -origin
.x
, -origin
.y
) ;
130 SectRgn( m_macBoundaryClipRgn
, window
->GetUpdateRegion().GetWXHRGN() , m_macBoundaryClipRgn
) ;
131 OffsetRgn( m_macBoundaryClipRgn
, m_macLocalOrigin
.h
, m_macLocalOrigin
.v
) ;
132 CopyRgn( m_macBoundaryClipRgn
, m_macCurrentClipRgn
) ;
133 m_macPort
= UMAGetWindowPort( windowref
) ;
136 wxCoord x , y ,w , h ;
137 window->GetUpdateRegion().GetBox( x , y , w , h ) ;
139 wxSize size = window->GetSize() ;
142 SetClippingRegion( x , y , w , h ) ;
144 SetBackground(window
->MacGetBackgroundBrush());
145 SetFont(window
->GetFont() ) ;
148 wxPaintDC::~wxPaintDC()