if ( !m_logicalFunctionSupported )
return;
- bool fill = m_brush.GetStyle() != wxTRANSPARENT;
-
wxGraphicsPath path = m_graphicContext->CreatePath();
m_graphicContext->PushState();
- m_graphicContext->Translate(x+w/2,y+h/2);
+ m_graphicContext->Translate(x+w/2.0,y+h/2.0);
wxDouble factor = ((wxDouble) w) / h;
m_graphicContext->Scale( factor , 1.0);
- if ( fill && (sa!=ea) )
- path.MoveToPoint(0,0);
+
// since these angles (ea,sa) are measured counter-clockwise, we invert them to
// get clockwise angles
- path.AddArc( 0, 0, h/2 , DegToRad(-sa) , DegToRad(-ea), sa > ea );
- if ( fill && (sa!=ea) )
- path.AddLineToPoint(0,0);
+ path.AddArc( 0, 0, h/2.0 , DegToRad(-sa) , DegToRad(-ea), sa > ea );
m_graphicContext->DrawPath( path );
m_graphicContext->PopState();
}
if (w == 0 || h == 0)
return;
+ if ( m_graphicContext->ShouldOffset() )
+ {
+ // if we are offsetting the entire rectangle is moved 0.5, so the
+ // border line gets off by 1
+ w -= 1;
+ h -= 1;
+ }
m_graphicContext->DrawRoundedRectangle( x,y,w,h,radius);
}
if ( !m_logicalFunctionSupported )
return;
+ if ( m_graphicContext->ShouldOffset() )
+ {
+ // if we are offsetting the entire rectangle is moved 0.5, so the
+ // border line gets off by 1
+ w -= 1;
+ h -= 1;
+ }
m_graphicContext->DrawEllipse(x,y,w,h);
}
void wxGCDC::DoGetTextExtent( const wxString &str, wxCoord *width, wxCoord *height,
wxCoord *descent, wxCoord *externalLeading ,
- wxFont *theFont ) const
+ const wxFont *theFont ) const
{
wxCHECK_RET( Ok(), wxT("wxGCDC(cg)::DoGetTextExtent - invalid DC") );