DECLARE_NO_COPY_CLASS(StretchBltModeChanger)
};
+#if wxUSE_DYNLIB_CLASS
+
// helper class to cache dynamically loaded libraries and not attempt reloading
// them if it fails
class wxOnceOnlyDLLLoader
static wxOnceOnlyDLLLoader wxGDI32DLL(_T("gdi32"));
static wxOnceOnlyDLLLoader wxMSIMG32DLL(_T("msimg32"));
+#endif // wxUSE_DYNLIB_CLASS
+
// ===========================================================================
// implementation
// ===========================================================================
}
#if wxUSE_SPLINES
-void wxDC::DoDrawSpline(wxList *points)
+void wxDC::DoDrawSpline(const wxPointList *points)
{
#ifdef __WXWINCE__
// WinCE does not support ::PolyBezier so use generic version
size_t bezier_pos = 0;
wxCoord x1, y1, x2, y2, cx1, cy1, cx4, cy4;
- wxList::compatibility_iterator node = points->GetFirst();
- wxPoint *p = (wxPoint *)node->GetData();
+ wxPointList::compatibility_iterator node = points->GetFirst();
+ wxPoint *p = node->GetData();
lppt[ bezier_pos ].x = x1 = p->x;
lppt[ bezier_pos ].y = y1 = p->y;
bezier_pos++;
bezier_pos++;
node = node->GetNext();
- p = (wxPoint *)node->GetData();
+ p = node->GetData();
x2 = p->x;
y2 = p->y;
rx2 += (int)(100.0 * abs(w) * cos(ea));
ry2 -= (int)(100.0 * abs(h) * m_signY * sin(ea));
+ // Swap start and end positions if the end angle is less than the start angle.
+ if (ea < sa) {
+ int temp;
+ temp = rx2;
+ rx2 = rx1;
+ rx1 = temp;
+ temp = ry2;
+ ry2 = ry1;
+ ry1 = temp;
+ }
+
// draw pie with NULL_PEN first and then outline otherwise a line is
// drawn from the start and end points to the centre
HPEN hpenOld = (HPEN) ::SelectObject(GetHdc(), (HPEN) ::GetStockObject(NULL_PEN));
wxDCBase::DoGradientFillLinear(rect, initialColour, destColour, nDirection);
}
+#if wxUSE_DYNLIB_CLASS
+
static DWORD wxGetDCLayout(HDC hdc)
{
typedef DWORD (WINAPI *GetLayout_t)(HDC);
pfnSetLayout(GetHdc(), layout);
}
+
+#else // !wxUSE_DYNLIB_CLASS
+
+// we can't provide RTL support without dynamic loading, so stub it out
+wxLayoutDirection wxDC::GetLayoutDirection() const
+{
+ return wxLayout_Default;
+}
+
+void wxDC::SetLayoutDirection(wxLayoutDirection WXUNUSED(dir))
+{
+}
+
+#endif // wxUSE_DYNLIB_CLASS/!wxUSE_DYNLIB_CLASS