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"
20 #include "wx/toplevel.h"
22 #include "wx/mac/private.h"
24 //-----------------------------------------------------------------------------
26 //-----------------------------------------------------------------------------
28 #define RAD2DEG 57.2957795131
30 //-----------------------------------------------------------------------------
32 //-----------------------------------------------------------------------------
34 #if !USE_SHARED_LIBRARY
35 IMPLEMENT_DYNAMIC_CLASS(wxWindowDC
, wxDC
)
36 IMPLEMENT_DYNAMIC_CLASS(wxClientDC
, wxWindowDC
)
37 IMPLEMENT_DYNAMIC_CLASS(wxPaintDC
, wxWindowDC
)
44 #include "wx/mac/uma.h"
46 wxWindowDC::wxWindowDC()
50 wxWindowDC::wxWindowDC(wxWindow
*the_canvas
)
52 wxTopLevelWindowMac
* rootwindow
= the_canvas
->MacGetTopLevelWindow() ;
53 WindowRef windowref
= (WindowRef
) rootwindow
->MacGetWindowRef() ;
57 the_canvas
->MacWindowToRootWindow( &x
, &y
) ;
58 m_macLocalOrigin
.x
= x
;
59 m_macLocalOrigin
.y
= y
;
60 CopyRgn( (RgnHandle
) the_canvas
->MacGetVisibleRegion().GetWXHRGN() , (RgnHandle
) m_macBoundaryClipRgn
) ;
61 OffsetRgn( (RgnHandle
) m_macBoundaryClipRgn
, m_macLocalOrigin
.x
, m_macLocalOrigin
.y
) ;
62 CopyRgn( (RgnHandle
) m_macBoundaryClipRgn
, (RgnHandle
) m_macCurrentClipRgn
) ;
63 m_macPort
= UMAGetWindowPort( windowref
) ;
65 wxSize size
= the_canvas
->GetSize() ;
70 SetBackground(the_canvas
->MacGetBackgroundBrush());
73 wxWindowDC::~wxWindowDC()
81 wxClientDC::wxClientDC()
85 wxClientDC::wxClientDC(wxWindow
*window
)
87 wxTopLevelWindowMac
* rootwindow
= window
->MacGetTopLevelWindow() ;
88 WindowRef windowref
= (WindowRef
) rootwindow
->MacGetWindowRef() ;
89 wxPoint origin
= window
->GetClientAreaOrigin() ;
90 wxSize size
= window
->GetClientSize() ;
94 window
->MacWindowToRootWindow( &x
, &y
) ;
95 m_macLocalOrigin
.x
= x
;
96 m_macLocalOrigin
.y
= y
;
97 SetRectRgn( (RgnHandle
) m_macBoundaryClipRgn
, origin
.x
, origin
.y
, origin
.x
+ size
.x
, origin
.y
+ size
.y
) ;
98 SectRgn( (RgnHandle
) m_macBoundaryClipRgn
, (RgnHandle
) window
->MacGetVisibleRegion().GetWXHRGN() , (RgnHandle
) m_macBoundaryClipRgn
) ;
99 OffsetRgn( (RgnHandle
) m_macBoundaryClipRgn
, -origin
.x
, -origin
.y
) ;
100 OffsetRgn( (RgnHandle
) m_macBoundaryClipRgn
, m_macLocalOrigin
.x
, m_macLocalOrigin
.y
) ;
101 CopyRgn( (RgnHandle
) m_macBoundaryClipRgn
,(RgnHandle
) m_macCurrentClipRgn
) ;
102 m_macPort
= UMAGetWindowPort( windowref
) ;
107 SetBackground(window
->MacGetBackgroundBrush());
108 SetFont( window
->GetFont() ) ;
111 wxClientDC::~wxClientDC()
119 wxPaintDC::wxPaintDC()
123 wxPaintDC::wxPaintDC(wxWindow
*window
)
125 wxTopLevelWindowMac
* rootwindow
= window
->MacGetTopLevelWindow() ;
126 WindowRef windowref
= (WindowRef
) rootwindow
->MacGetWindowRef() ;
127 wxPoint origin
= window
->GetClientAreaOrigin() ;
128 wxSize size
= window
->GetClientSize() ;
132 window
->MacWindowToRootWindow( &x
, &y
) ;
133 m_macLocalOrigin
.x
= x
;
134 m_macLocalOrigin
.y
= y
;
135 SetRectRgn( (RgnHandle
) m_macBoundaryClipRgn
, origin
.x
, origin
.y
, origin
.x
+ size
.x
, origin
.y
+ size
.y
) ;
136 SectRgn( (RgnHandle
) m_macBoundaryClipRgn
, (RgnHandle
) window
->MacGetVisibleRegion().GetWXHRGN() , (RgnHandle
) m_macBoundaryClipRgn
) ;
137 OffsetRgn( (RgnHandle
) m_macBoundaryClipRgn
, -origin
.x
, -origin
.y
) ;
138 SectRgn( (RgnHandle
) m_macBoundaryClipRgn
, (RgnHandle
) window
->GetUpdateRegion().GetWXHRGN() , (RgnHandle
) m_macBoundaryClipRgn
) ;
139 OffsetRgn( (RgnHandle
) m_macBoundaryClipRgn
, m_macLocalOrigin
.x
, m_macLocalOrigin
.y
) ;
140 CopyRgn( (RgnHandle
) m_macBoundaryClipRgn
, (RgnHandle
) m_macCurrentClipRgn
) ;
141 m_macPort
= UMAGetWindowPort( windowref
) ;
146 SetBackground(window
->MacGetBackgroundBrush());
147 SetFont( window
->GetFont() ) ;
150 wxPaintDC::~wxPaintDC()