]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dc.h
Added fixes for Unicode compilation.
[wxWidgets.git] / include / wx / dc.h
index ef4e0e331b69025a7ebecd89b948517220d8db97..e6183bf8b9a3d38e0e651836feb30849d9b49cb0 100644 (file)
@@ -56,7 +56,7 @@ public:
         m_deviceOriginX = m_deviceOriginY = 0;
 
         m_logicalScaleX = m_logicalScaleY =
-        m_userScaleX = m_userScaleY = 
+        m_userScaleX = m_userScaleY =
         m_scaleX = m_scaleY = 1.0;
 
         m_logicalFunction = -1;
@@ -109,7 +109,7 @@ public:
         { DoDrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); }
 
     void DrawEllipticArc(long x, long y, long w, long h, double sa, double ea)
-        { DoDrawEllipticArc(x, y, x, y, sa, ea); }
+        { DoDrawEllipticArc(x, y, w, h, sa, ea); }
     void DrawEllipticArc(const wxPoint& pt, const wxSize& sz,
                          double sa, double ea)
         { DoDrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); }
@@ -121,23 +121,7 @@ public:
 
     void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0)
         { DoDrawLines(n, points, xoffset, yoffset); }
-    void DrawLines(const wxList *list, long xoffset = 0, long yoffset = 0)
-    {
-        int n = list->Number();
-        wxPoint *points = new wxPoint[n];
-
-        int i = 0;
-        for ( wxNode *node = list->First(); node; node = node->Next(), i++ )
-        {
-            wxPoint *point = (wxPoint *)node->Data();
-            points[i].x = point->x;
-            points[i].y = point->y;
-        }
-
-        DoDrawLines(n, points, xoffset, yoffset);
-
-        delete [] points;
-    }
+    void DrawLines(const wxList *list, long xoffset = 0, long yoffset = 0);
 
     void DrawPolygon(int n, wxPoint points[],
                      long xoffset = 0, long yoffset = 0,
@@ -146,23 +130,7 @@ public:
 
     void DrawPolygon(const wxList *list,
                      long xoffset = 0, long yoffset = 0,
-                     int fillStyle = wxODDEVEN_RULE)
-    {
-        int n = list->Number();
-        wxPoint *points = new wxPoint[n];
-
-        int i = 0;
-        for ( wxNode *node = list->First(); node; node = node->Next(), i++ )
-        {
-            wxPoint *point = (wxPoint *)node->Data();
-            points[i].x = point->x;
-            points[i].y = point->y;
-        }
-
-        DoDrawPolygon(n, points, xoffset, yoffset, fillStyle);
-
-        delete [] points;
-    }
+                     int fillStyle = wxODDEVEN_RULE);
 
     void DrawRectangle(long x, long y, long width, long height)
         { DoDrawRectangle(x, y, width, height); }
@@ -180,6 +148,8 @@ public:
     void DrawRoundedRectangle(const wxRect& r, double radius)
         { DoDrawRoundedRectangle(r.x, r.y, r.width, r.height, radius); }
 
+    void DrawCircle(long x, long y, long radius)
+        { DoDrawEllipse(x - radius, y - radius, 2*radius, 2*radius); }
     void DrawEllipse(long x, long y, long width, long height)
         { DoDrawEllipse(x, y, width, height); }
     void DrawEllipse(const wxPoint& pt, const wxSize& sz)
@@ -219,42 +189,9 @@ public:
     }
 
 #if wxUSE_SPLINES
-    // TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?)
-    void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3)
-    {
-        wxList point_list;
-
-        wxPoint *point1 = new wxPoint;
-        point1->x = x1; point1->y = y1;
-        point_list.Append((wxObject*)point1);
-
-        wxPoint *point2 = new wxPoint;
-        point2->x = x2; point2->y = y2;
-        point_list.Append((wxObject*)point2);
-
-        wxPoint *point3 = new wxPoint;
-        point3->x = x3; point3->y = y3;
-        point_list.Append((wxObject*)point3);
-
-        DrawSpline(&point_list);
-
-        for( wxNode *node = point_list.First(); node; node = node->Next() )
-        {
-            wxPoint *p = (wxPoint *)node->Data();
-            delete p;
-        }
-    }
-
-    void DrawSpline(int n, wxPoint points[])
-    {
-        wxList list;
-        for (int i =0; i < n; i++)
-        {
-            list.Append((wxObject*)&points[i]);
-        }
-
-        DrawSpline(&list);
-    }
+// TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?)
+    void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3);
+    void DrawSpline(int n, wxPoint points[]);
 
     void DrawSpline(wxList *points) { DoDrawSpline(points); }
 #endif // wxUSE_SPLINES
@@ -397,8 +334,6 @@ public:
     }
     virtual void SetUserScale(double x, double y) = 0;
 
-    virtual void SetSystemScale(double x, double y) = 0;
-
     virtual void GetLogicalScale(double *x, double *y)
     {
         if ( x ) *x = m_logicalScaleX;
@@ -509,8 +444,11 @@ protected:
     virtual void DoSetClippingRegionAsRegion(const wxRegion& region) = 0;
     virtual void DoSetClippingRegion(long x, long y,
                                      long width, long height) = 0;
+
+    // FIXME are these functions really different?
     virtual void DoGetClippingRegion(long *x, long *y,
-                                     long *width, long *height) = 0;
+                                     long *w, long *h)
+        { DoGetClippingBox(x, y, w, h); }
     virtual void DoGetClippingBox(long *x, long *y,
                                   long *w, long *h) const
     {
@@ -539,7 +477,9 @@ protected:
         if ( y ) *y = m_deviceOriginY;
     }
 
+#if wxUSE_SPLINES
     virtual void DoDrawSpline(wxList *points) = 0;
+#endif
 
 protected:
     // flags