+{
+ AllocExclusive();
+ GetPathData()->AddQuadCurveToPoint(cx,cy,x,y);
+}
+
+// appends a rectangle as a new closed subpath
+void wxGraphicsPath::AddRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+ AllocExclusive();
+ GetPathData()->AddRectangle(x,y,w,h);
+}
+
+// appends an ellipsis as a new closed subpath fitting the passed rectangle
+void wxGraphicsPath::AddCircle( wxDouble x, wxDouble y, wxDouble r )
+{
+ AllocExclusive();
+ GetPathData()->AddCircle(x,y,r);
+}
+
+// appends a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1)
+void wxGraphicsPath::AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDouble y2, wxDouble r )
+{
+ GetPathData()->AddArcToPoint(x1,y1,x2,y2,r);
+}
+
+// appends an ellipse
+void wxGraphicsPath::AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h)
+{
+ AllocExclusive();
+ GetPathData()->AddEllipse(x,y,w,h);
+}
+
+// appends a rounded rectangle
+void wxGraphicsPath::AddRoundedRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h, wxDouble radius)
+{
+ AllocExclusive();
+ GetPathData()->AddRoundedRectangle(x,y,w,h,radius);
+}
+
+// returns the native path
+void * wxGraphicsPath::GetNativePath() const
+{
+ return GetPathData()->GetNativePath();
+}
+
+// give the native path returned by GetNativePath() back (there might be some deallocations necessary)
+void wxGraphicsPath::UnGetNativePath(void *p)const
+{
+ GetPathData()->UnGetNativePath(p);
+}
+
+// transforms each point of this path by the matrix
+void wxGraphicsPath::Transform( const wxGraphicsMatrix& matrix )
+{
+ AllocExclusive();
+ GetPathData()->Transform(matrix.GetMatrixData());
+}
+
+// gets the bounding box enclosing all points (possibly including control points)
+void wxGraphicsPath::GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h) const
+{
+ GetPathData()->GetBox(x,y,w,h);
+}
+
+bool wxGraphicsPath::Contains( wxDouble x, wxDouble y, wxPolygonFillMode fillStyle ) const
+{
+ return GetPathData()->Contains(x,y,fillStyle);
+}
+
+//
+// Emulations, these mus be implemented in the ...Data classes in order to allow for proper overrides
+//
+
+void wxGraphicsPathData::AddQuadCurveToPoint( wxDouble cx, wxDouble cy, wxDouble x, wxDouble y )