X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d02af7bbb9848f660bb291a833a892cc5f20cda7..585266618c27ac77a5e5316c03e06ffc514715c9:/src/gtk/dcclient.cpp diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp index 9ffa33f3ba..588fbb5501 100644 --- a/src/gtk/dcclient.cpp +++ b/src/gtk/dcclient.cpp @@ -393,6 +393,13 @@ void wxWindowDC::SetUpDC() } } +void wxWindowDC::DoGetSize( int* width, int* height ) const +{ + wxCHECK_RET( m_owner, _T("GetSize() doesn't work without window") ); + + m_owner->GetSize(width, height); +} + void wxWindowDC::DoFloodFill( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxColour &WXUNUSED(col), int WXUNUSED(style) ) { @@ -526,7 +533,12 @@ void wxWindowDC::DoDrawArc( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, } if (m_pen.GetStyle() != wxTRANSPARENT) + { gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 ); + + gdk_draw_line( m_window, m_penGC, xx1, yy1, xxc, yyc ); + gdk_draw_line( m_window, m_penGC, xxc, yyc, xx2, yy2 ); + } } CalcBoundingBox (x1, y1); @@ -549,7 +561,7 @@ void wxWindowDC::DoDrawEllipticArc( wxCoord x, wxCoord y, wxCoord width, wxCoord if (m_window) { wxCoord start = wxCoord(sa * 64.0); - wxCoord end = wxCoord(ea * 64.0); + wxCoord end = wxCoord((ea-sa) * 64.0); if (m_brush.GetStyle() != wxTRANSPARENT) { @@ -2212,20 +2224,15 @@ void wxWindowDC::DoDrawSpline( wxList *points ) // wxPaintDC //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC,wxWindowDC) - -wxPaintDC::wxPaintDC() - : wxWindowDC() -{ -} +IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxClientDC) wxPaintDC::wxPaintDC( wxWindow *win ) - : wxWindowDC( win ) + : wxClientDC( win ) { #if USE_PAINT_REGION if (!win->m_clipPaintRegion) return; - + m_paintClippingRegion = win->GetUpdateRegion(); GdkRegion *region = m_paintClippingRegion.GetRegion(); if ( region ) @@ -2244,16 +2251,18 @@ wxPaintDC::wxPaintDC( wxWindow *win ) // wxClientDC //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxClientDC,wxWindowDC) +IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) -wxClientDC::wxClientDC() - : wxWindowDC() +wxClientDC::wxClientDC( wxWindow *win ) + : wxWindowDC( win ) { } -wxClientDC::wxClientDC( wxWindow *win ) - : wxWindowDC( win ) +void wxClientDC::DoGetSize(int *width, int *height) const { + wxCHECK_RET( m_owner, _T("GetSize() doesn't work without window") ); + + m_owner->GetClientSize( width, height ); } // ----------------------------------------------------------------------------