+} // end of wxClientDCImpl::wxClientDCImpl
+
+void wxClientDCImpl::InitDC()
+{
+    wxWindowDCImpl::InitDC();
+
+    // in wxUniv build we must manually do some DC adjustments usually
+    // performed by Windows for us
+#ifdef __WXUNIVERSAL__
+    wxPoint ptOrigin = m_pCanvas->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_pCanvas->GetClientSize());
+#endif // __WXUNIVERSAL__
+} // end of wxClientDCImpl::InitDC
+
+wxClientDCImpl::~wxClientDCImpl()
+{
+} // end of wxClientDCImpl::~wxClientDCImpl
+
+void wxClientDCImpl::DoGetSize(
+  int*                              pnWidth
+, int*                              pnHeight
+) const
+{
+    wxCHECK_RET( m_pCanvas, wxT("wxWindowDC without a window?") );
+    m_pCanvas->GetClientSize( pnWidth
+                             ,pnHeight
+                            );
+} // end of wxClientDCImpl::DoGetSize