// headers
// ---------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "dc.h"
#endif
#include "wx/icon.h"
#endif
+#include "wx/msw/private.h" // needs to be before #include <commdlg.h>
+
#include "wx/sysopt.h"
#include "wx/dcprint.h"
#include "wx/module.h"
#include <string.h>
#include <math.h>
-#include "wx/msw/private.h" // needs to be before #include <commdlg.h>
-
#if wxUSE_COMMON_DIALOGS && !defined(__WXMICROWIN__)
#include <commdlg.h>
#endif
COLORREF m_colFgOld, m_colBgOld;
bool m_changed;
+
+ DECLARE_NO_COPY_CLASS(wxColourChanger)
};
// this class saves the old stretch blit mode during its life time
const HDC m_hdc;
int m_modeOld;
+
+ DECLARE_NO_COPY_CLASS(StretchBltModeChanger)
};
// ===========================================================================
}
CalcBoundingBox(x, y);
-
+
return success;
#endif
}
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__
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__
}
if ( !success && (caps & RC_STRETCHBLT) )
+#endif
+ // __WXWINCE__
{
+#ifndef __WXWINCE__
StretchBltModeChanger changeMode(GetHdc(), COLORONCOLOR);
+#endif
if ( !::StretchBlt
(
success = TRUE;
}
}
-#endif
- // __WXWINCE__
}
::SetTextColor(GetHdc(), old_textground);