+void wxClientDC::InitDC()
+{
+ wxWindowDC::InitDC();
+
+ // in wxUniv build we must manually do some DC adjustments usually
+ // performed by Windows for us
+ //
+ // we also need to take the menu/toolbar manually into account under
+ // Windows CE because they're just another control there, not anything
+ // special as usually under Windows
+#if defined(__WXUNIVERSAL__) || defined(__WXWINCE__)
+ wxPoint ptOrigin = m_canvas->GetClientAreaOrigin();
+ if ( ptOrigin.x || ptOrigin.y )
+ {
+ // no need to shift DC origin if shift is null
+ SetDeviceOrigin(ptOrigin.x, ptOrigin.y);
+ }
+
+ // clip the DC to avoid overwriting the non client area
+ SetClippingRegion(wxPoint(0, 0), m_canvas->GetClientSize());
+#endif // __WXUNIVERSAL__ || __WXWINCE__
+}
+
+wxClientDC::~wxClientDC()
+{
+}
+
+void wxClientDC::DoGetSize(int *width, int *height) const
+{
+ wxCHECK_RET( m_canvas, _T("wxClientDC without a window?") );
+
+ m_canvas->GetClientSize(width, height);
+}
+