+//-----------------------------------------------------------------------------
+// wxClientDC
+//-----------------------------------------------------------------------------
+
+#if wxUSE_NEW_DC
+IMPLEMENT_ABSTRACT_CLASS(wxGTKClientImplDC, wxGTKWindowImplDC)
+#else
+IMPLEMENT_ABSTRACT_CLASS(wxClientDC, wxWindowDC)
+#endif
+
+#if wxUSE_NEW_DC
+wxGTKClientImplDC::wxGTKClientImplDC( wxDC *owner )
+ : wxGTKWindowImplDC( owner )
+{
+}
+
+wxGTKClientImplDC::wxGTKClientImplDC( wxDC *owner, wxWindow *win )
+ : wxGTKWindowImplDC( owner, win )
+#else
+wxClientDC::wxClientDC()
+{
+}
+
+wxClientDC::wxClientDC( wxWindow *win )
+ : wxWindowDC( win )
+#endif
+
+{
+ wxCHECK_RET( win, _T("NULL window in wxGTKClientImplDC::wxClientDC") );
+
+#ifdef __WXUNIVERSAL__
+ wxPoint ptOrigin = win->GetClientAreaOrigin();
+ SetDeviceOrigin(ptOrigin.x, ptOrigin.y);
+ wxSize size = win->GetClientSize();
+ SetClippingRegion(wxPoint(0, 0), size);
+#endif // __WXUNIVERSAL__
+}
+
+void wxGTKClientImplDC::DoGetSize(int *width, int *height) const
+{
+ wxCHECK_RET( m_owningWindow, _T("GetSize() doesn't work without window") );
+
+ m_owningWindow->GetClientSize( width, height );
+}
+