X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2eb10e2a17a02acaaa32a41304243999f3a862a1..204e4cd6ee65758d39a89402a85ecd07ecf364f2:/src/msw/dc.cpp diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp index 52e247fce2..2f2d0e54a5 100644 --- a/src/msw/dc.cpp +++ b/src/msw/dc.cpp @@ -17,7 +17,7 @@ // headers // --------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "dc.h" #endif @@ -630,7 +630,12 @@ void wxDC::DoDrawArc(wxCoord x1, wxCoord y1, wxCoord xc, wxCoord yc) { #ifdef __WXWINCE__ - // FIXME: emulate Arc + // Slower emulation since WinCE doesn't support Pie and Arc + double r = sqrt( (x1-xc)*(x1-xc) + (y1-yc)*(y1-yc) ); + double sa = acos((x1-xc)/r)/M_PI*180; // between 0 and 180 + if( y1>yc ) sa = -sa; // below center + double ea = atan2(yc-y2, x2-xc)/M_PI*180; + DoDrawEllipticArcRot( xc-r, yc-r, 2*r, 2*r, sa, ea ); #else #ifdef __WXMICROWIN__ @@ -921,7 +926,7 @@ void wxDC::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) void wxDC::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea) { #ifdef __WXWINCE__ - // FIXME + DoDrawEllipticArcRot( x, y, w, h, sa, ea ); #else #ifdef __WXMICROWIN__