]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/gtk/_gdi_wrap.cpp
added --enable-tga (on by default)
[wxWidgets.git] / wxPython / src / gtk / _gdi_wrap.cpp
index 8244e8a4a0dd403a991eee7d8717e2fc77a38a6c..a59a42b386aaee3fee8378aae00e4246444780eb 100644 (file)
@@ -3628,8 +3628,6 @@ public :
     }
     virtual ~wxGraphicsPath() {}
 
-    virtual wxGraphicsPath *Clone() const { return NULL; }
-
     void MoveToPoint( wxDouble, wxDouble ) {}
     void MoveToPoint( const wxPoint2DDouble& ) {}
     void AddLineToPoint( wxDouble, wxDouble ) {}
@@ -3659,6 +3657,7 @@ public :
     bool Contains( wxDouble , wxDouble , int ) { return false; }
     bool Contains( const wxPoint2DDouble& , int ) { return false; }
 };
+wxGraphicsPath wxNullGraphicsPath;
 
 
 class wxGraphicsMatrix : public wxGraphicsObject
@@ -3669,7 +3668,6 @@ public :
                         "wx.GraphicsMatrix is not available on this platform.");
     }
     virtual ~wxGraphicsMatrix() {}
-    virtual wxGraphicsMatrix *Clone() const { return NULL; }
     virtual void Concat( const wxGraphicsMatrix * ) {}
     virtual void Copy( const wxGraphicsMatrix * )  {}
     virtual void Set(wxDouble , wxDouble , wxDouble , wxDouble ,
@@ -3684,7 +3682,7 @@ public :
     virtual void TransformDistance( wxDouble *, wxDouble * ) {}
     virtual void * GetNativeMatrix() const { return NULL; }
 };
-
+wxGraphicsMatrix wxNullGraphicsMatrix;
 
 
 class wxGraphicsContext : public wxGraphicsObject
@@ -3843,6 +3841,9 @@ public:
 
 #endif
 
+SWIGINTERN void wxGraphicsMatrix_Copy(wxGraphicsMatrix *self,wxGraphicsMatrix const &t){
+            *self = t;
+        }
 SWIGINTERN PyObject *wxGraphicsContext_GetTextExtent(wxGraphicsContext *self,wxString const &text){
             wxDouble width = 0.0,
                      height = 0.0;
@@ -25150,62 +25151,20 @@ SWIGINTERN PyObject *GraphicsFont_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObj
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN int NullGraphicsPen_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsPen is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *NullGraphicsPen_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsPen), SWIGTYPE_p_wxGraphicsPen,  0 );
-  return pyobj;
-}
-
-
-SWIGINTERN int NullGraphicsBrush_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsBrush is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *NullGraphicsBrush_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsBrush), SWIGTYPE_p_wxGraphicsBrush,  0 );
-  return pyobj;
-}
-
-
-SWIGINTERN int NullGraphicsFont_set(PyObject *) {
-  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsFont is read-only.");
-  return 1;
-}
-
-
-SWIGINTERN PyObject *NullGraphicsFont_get(void) {
-  PyObject *pyobj = 0;
-  
-  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsFont), SWIGTYPE_p_wxGraphicsFont,  0 );
-  return pyobj;
-}
-
-
-SWIGINTERN PyObject *_wrap_delete_GraphicsPath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_GraphicsMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GraphicsPath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GraphicsMatrix" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
   {
     delete arg1;
     
@@ -25218,62 +25177,75 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_Clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Concat(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxGraphicsPath *result = 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsMatrix *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  PyObject *swig_obj[1] ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "t", NULL 
+  };
   
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_Concat",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Clone" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Concat" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsMatrix,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsMatrix_Concat" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsMatrix_Concat" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
   {
-    result = (wxGraphicsPath *)((wxGraphicsPath const *)arg1)->Clone();
+    (arg1)->Concat((wxGraphicsMatrix const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_MoveToPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsMatrix *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "t", NULL 
+  };
   
-  if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_Copy",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Copy" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsMatrix,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsMatrix_Copy" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsMatrix_Copy" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
   {
-    (arg1)->MoveToPoint(arg2,arg3);
+    wxGraphicsMatrix_Copy(arg1,(wxGraphicsMatrix const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25283,26 +25255,90 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_MoveToPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Set(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxPoint2D *arg2 = 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxDouble arg2 = (wxDouble) 1.0 ;
+  wxDouble arg3 = (wxDouble) 0.0 ;
+  wxDouble arg4 = (wxDouble) 0.0 ;
+  wxDouble arg5 = (wxDouble) 1.0 ;
+  wxDouble arg6 = (wxDouble) 0.0 ;
+  wxDouble arg7 = (wxDouble) 0.0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  wxPoint2D temp2 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  double val7 ;
+  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
+  PyObject * obj6 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "a",(char *) "b",(char *) "c",(char *) "d",(char *) "tx",(char *) "ty", NULL 
+  };
   
-  if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|OOOOOO:GraphicsMatrix_Set",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Set" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  {
-    arg2 = &temp2;
-    if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  if (obj1) {
+    ecode2 = SWIG_AsVal_double(obj1, &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Set" "', expected argument " "2"" of type '" "wxDouble""'");
+    } 
+    arg2 = static_cast< wxDouble >(val2);
+  }
+  if (obj2) {
+    ecode3 = SWIG_AsVal_double(obj2, &val3);
+    if (!SWIG_IsOK(ecode3)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsMatrix_Set" "', expected argument " "3"" of type '" "wxDouble""'");
+    } 
+    arg3 = static_cast< wxDouble >(val3);
+  }
+  if (obj3) {
+    ecode4 = SWIG_AsVal_double(obj3, &val4);
+    if (!SWIG_IsOK(ecode4)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsMatrix_Set" "', expected argument " "4"" of type '" "wxDouble""'");
+    } 
+    arg4 = static_cast< wxDouble >(val4);
+  }
+  if (obj4) {
+    ecode5 = SWIG_AsVal_double(obj4, &val5);
+    if (!SWIG_IsOK(ecode5)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsMatrix_Set" "', expected argument " "5"" of type '" "wxDouble""'");
+    } 
+    arg5 = static_cast< wxDouble >(val5);
+  }
+  if (obj5) {
+    ecode6 = SWIG_AsVal_double(obj5, &val6);
+    if (!SWIG_IsOK(ecode6)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsMatrix_Set" "', expected argument " "6"" of type '" "wxDouble""'");
+    } 
+    arg6 = static_cast< wxDouble >(val6);
+  }
+  if (obj6) {
+    ecode7 = SWIG_AsVal_double(obj6, &val7);
+    if (!SWIG_IsOK(ecode7)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "GraphicsMatrix_Set" "', expected argument " "7"" of type '" "wxDouble""'");
+    } 
+    arg7 = static_cast< wxDouble >(val7);
   }
   {
-    (arg1)->MoveToPoint((wxPoint2D const &)*arg2);
+    (arg1)->Set(arg2,arg3,arg4,arg5,arg6,arg7);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25312,55 +25348,22 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_MoveToPoint(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  
-  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_MoveToPoint",0,3,argv))) SWIG_fail;
-  --argc;
-  if (argc == 2) {
-    return _wrap_GraphicsPath_MoveToPoint__SWIG_1(self, argc, argv);
-  }
-  if (argc == 3) {
-    return _wrap_GraphicsPath_MoveToPoint__SWIG_0(self, argc, argv);
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_MoveToPoint'");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddLineToPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Invert(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
+  PyObject *swig_obj[1] ;
   
-  if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Invert" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
   {
-    (arg1)->AddLineToPoint(arg2,arg3);
+    (arg1)->Invert();
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25370,116 +25373,112 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddLineToPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_IsEqual(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxPoint2D *arg2 = 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsMatrix *arg2 = 0 ;
+  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  wxPoint2D temp2 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "t", NULL 
+  };
   
-  if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_IsEqual",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_IsEqual" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  {
-    arg2 = &temp2;
-    if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsMatrix,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsMatrix_IsEqual" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsMatrix_IsEqual" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
   }
+  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
   {
-    (arg1)->AddLineToPoint((wxPoint2D const &)*arg2);
+    result = (bool)((wxGraphicsMatrix const *)arg1)->IsEqual((wxGraphicsMatrix const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_Py_Void();
+  {
+    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+  }
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddLineToPoint(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_IsIdentity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  bool result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject *swig_obj[1] ;
   
-  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_AddLineToPoint",0,3,argv))) SWIG_fail;
-  --argc;
-  if (argc == 2) {
-    return _wrap_GraphicsPath_AddLineToPoint__SWIG_1(self, argc, argv);
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_IsIdentity" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
   }
-  if (argc == 3) {
-    return _wrap_GraphicsPath_AddLineToPoint__SWIG_0(self, argc, argv);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  {
+    result = (bool)((wxGraphicsMatrix const *)arg1)->IsIdentity();
+    if (PyErr_Occurred()) SWIG_fail;
   }
-  
+  {
+    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+  }
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_AddLineToPoint'");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddCurveToPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Translate(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
   wxDouble arg2 ;
   wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
-  wxDouble arg6 ;
-  wxDouble arg7 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   double val3 ;
   int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  double val6 ;
-  int ecode6 = 0 ;
-  double val7 ;
-  int ecode7 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "dx",(char *) "dy", NULL 
+  };
   
-  if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_Translate",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Translate" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Translate" "', expected argument " "2"" of type '" "wxDouble""'");
   } 
   arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsMatrix_Translate" "', expected argument " "3"" of type '" "wxDouble""'");
   } 
   arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
-  ecode6 = SWIG_AsVal_double(swig_obj[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "6"" of type '" "wxDouble""'");
-  } 
-  arg6 = static_cast< wxDouble >(val6);
-  ecode7 = SWIG_AsVal_double(swig_obj[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "7"" of type '" "wxDouble""'");
-  } 
-  arg7 = static_cast< wxDouble >(val7);
   {
-    (arg1)->AddCurveToPoint(arg2,arg3,arg4,arg5,arg6,arg7);
+    (arg1)->Translate(arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25489,38 +25488,42 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddCurveToPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Scale(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxPoint2D *arg2 = 0 ;
-  wxPoint2D *arg3 = 0 ;
-  wxPoint2D *arg4 = 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  wxPoint2D temp2 ;
-  wxPoint2D temp3 ;
-  wxPoint2D temp4 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "xScale",(char *) "yScale", NULL 
+  };
   
-  if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_Scale",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  {
-    arg2 = &temp2;
-    if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
-  }
-  {
-    arg3 = &temp3;
-    if ( ! wxPoint2D_helper(swig_obj[2], &arg3)) SWIG_fail;
-  }
-  {
-    arg4 = &temp4;
-    if ( ! wxPoint2D_helper(swig_obj[3], &arg4)) SWIG_fail;
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Scale" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Scale" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsMatrix_Scale" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
   {
-    (arg1)->AddCurveToPoint((wxPoint2D const &)*arg2,(wxPoint2D const &)*arg3,(wxPoint2D const &)*arg4);
+    (arg1)->Scale(arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25530,52 +25533,33 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddCurveToPoint(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[8];
-  
-  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_AddCurveToPoint",0,7,argv))) SWIG_fail;
-  --argc;
-  if (argc == 4) {
-    return _wrap_GraphicsPath_AddCurveToPoint__SWIG_1(self, argc, argv);
-  }
-  if (argc == 7) {
-    return _wrap_GraphicsPath_AddCurveToPoint__SWIG_0(self, argc, argv);
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_AddCurveToPoint'");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddPath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_Rotate(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxGraphicsPath *arg2 = (wxGraphicsPath *) 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxDouble arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "path", NULL 
+    (char *) "self",(char *) "angle", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsPath_AddPath",kwnames,&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_Rotate",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddPath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_AddPath" "', expected argument " "2"" of type '" "wxGraphicsPath const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Rotate" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
   }
-  arg2 = reinterpret_cast< wxGraphicsPath * >(argp2);
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Rotate" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
   {
-    (arg1)->AddPath((wxGraphicsPath const *)arg2);
+    (arg1)->Rotate(arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25585,119 +25569,229 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_CloseSubpath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_TransformPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxDouble *arg2 = (wxDouble *) 0 ;
+  wxDouble *arg3 = (wxDouble *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  PyObject *swig_obj[1] ;
+  wxDouble temp2 ;
+  int res2 = 0 ;
+  wxDouble temp3 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "INOUT",(char *) "INOUT", NULL 
+  };
   
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_TransformPoint",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_CloseSubpath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  {
-    (arg1)->CloseSubpath();
-    if (PyErr_Occurred()) SWIG_fail;
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_TransformPoint" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_double,0))))) {
+    double val; 
+    int ecode = SWIG_AsVal_double(obj1, &val);
+    if (!SWIG_IsOK(ecode)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformPoint" "', expected argument " "2"" of type '" "wxDouble""'");
+    }
+    temp2 = static_cast< wxDouble >(val);
+    arg2 = &temp2;
+    res2 = SWIG_AddTmpMask(ecode);
+  }
+  if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) {
+    double val; 
+    int ecode = SWIG_AsVal_double(obj2, &val);
+    if (!SWIG_IsOK(ecode)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformPoint" "', expected argument " "3"" of type '" "wxDouble""'");
+    }
+    temp3 = static_cast< wxDouble >(val);
+    arg3 = &temp3;
+    res3 = SWIG_AddTmpMask(ecode);
+  }
+  {
+    ((wxGraphicsMatrix const *)arg1)->TransformPoint(arg2,arg3);
+    if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsTmpObj(res2)) {
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg2)));
+  } else {
+    int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_double, new_flags));
+  }
+  if (SWIG_IsTmpObj(res3)) {
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3)));
+  } else {
+    int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags));
+  }
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_GetCurrentPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_TransformDistance(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+  PyObject *resultobj = 0;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxDouble *arg2 = (wxDouble *) 0 ;
+  wxDouble *arg3 = (wxDouble *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  wxDouble temp2 ;
+  int res2 = 0 ;
+  wxDouble temp3 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "INOUT",(char *) "INOUT", NULL 
+  };
+  
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_TransformDistance",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_TransformDistance" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_double,0))))) {
+    double val; 
+    int ecode = SWIG_AsVal_double(obj1, &val);
+    if (!SWIG_IsOK(ecode)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformDistance" "', expected argument " "2"" of type '" "wxDouble""'");
+    }
+    temp2 = static_cast< wxDouble >(val);
+    arg2 = &temp2;
+    res2 = SWIG_AddTmpMask(ecode);
+  }
+  if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) {
+    double val; 
+    int ecode = SWIG_AsVal_double(obj2, &val);
+    if (!SWIG_IsOK(ecode)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformDistance" "', expected argument " "3"" of type '" "wxDouble""'");
+    }
+    temp3 = static_cast< wxDouble >(val);
+    arg3 = &temp3;
+    res3 = SWIG_AddTmpMask(ecode);
+  }
+  {
+    ((wxGraphicsMatrix const *)arg1)->TransformDistance(arg2,arg3);
+    if (PyErr_Occurred()) SWIG_fail;
+  }
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsTmpObj(res2)) {
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg2)));
+  } else {
+    int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_double, new_flags));
+  }
+  if (SWIG_IsTmpObj(res3)) {
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3)));
+  } else {
+    int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
+    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags));
+  }
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GraphicsMatrix_GetNativeMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  void *result = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject *swig_obj[1] ;
+  
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_GetNativeMatrix" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  {
+    result = (void *)((wxGraphicsMatrix const *)arg1)->GetNativeMatrix();
+    if (PyErr_Occurred()) SWIG_fail;
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *GraphicsMatrix_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_wxGraphicsMatrix, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_delete_GraphicsPath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxPoint2D result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_GetCurrentPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GraphicsPath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   {
-    result = (arg1)->GetCurrentPoint();
+    delete arg1;
+    
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj((new wxPoint2D(static_cast< const wxPoint2D& >(result))), SWIGTYPE_p_wxPoint2D, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddArc__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_MoveToPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
   wxDouble arg2 ;
   wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
-  wxDouble arg6 ;
-  bool arg7 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   double val3 ;
   int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  double val6 ;
-  int ecode6 = 0 ;
-  bool val7 ;
-  int ecode7 = 0 ;
   
-  if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
+  if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddArc" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddArc" "', expected argument " "2"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
   } 
   arg2 = static_cast< wxDouble >(val2);
   ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddArc" "', expected argument " "3"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
   } 
   arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddArc" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddArc" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
-  ecode6 = SWIG_AsVal_double(swig_obj[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddArc" "', expected argument " "6"" of type '" "wxDouble""'");
-  } 
-  arg6 = static_cast< wxDouble >(val6);
-  ecode7 = SWIG_AsVal_bool(swig_obj[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "GraphicsPath_AddArc" "', expected argument " "7"" of type '" "bool""'");
-  } 
-  arg7 = static_cast< bool >(val7);
   {
-    (arg1)->AddArc(arg2,arg3,arg4,arg5,arg6,arg7);
+    (arg1)->MoveToPoint(arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25707,58 +25801,26 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddArc__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_MoveToPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
   wxPoint2D *arg2 = 0 ;
-  wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
-  bool arg6 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   wxPoint2D temp2 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  bool val6 ;
-  int ecode6 = 0 ;
   
-  if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
+  if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddArc" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_MoveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   {
     arg2 = &temp2;
     if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
   }
-  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddArc" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddArc" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddArc" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
-  ecode6 = SWIG_AsVal_bool(swig_obj[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddArc" "', expected argument " "6"" of type '" "bool""'");
-  } 
-  arg6 = static_cast< bool >(val6);
   {
-    (arg1)->AddArc((wxPoint2D const &)*arg2,arg3,arg4,arg5,arg6);
+    (arg1)->MoveToPoint((wxPoint2D const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25768,79 +25830,55 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddArc(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_MoveToPoint(PyObject *self, PyObject *args) {
   int argc;
-  PyObject *argv[8];
+  PyObject *argv[4];
   
-  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_AddArc",0,7,argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_MoveToPoint",0,3,argv))) SWIG_fail;
   --argc;
-  if (argc == 6) {
-    return _wrap_GraphicsPath_AddArc__SWIG_1(self, argc, argv);
+  if (argc == 2) {
+    return _wrap_GraphicsPath_MoveToPoint__SWIG_1(self, argc, argv);
   }
-  if (argc == 7) {
-    return _wrap_GraphicsPath_AddArc__SWIG_0(self, argc, argv);
+  if (argc == 3) {
+    return _wrap_GraphicsPath_MoveToPoint__SWIG_0(self, argc, argv);
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_AddArc'");
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_MoveToPoint'");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddQuadCurveToPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddLineToPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
   wxDouble arg2 ;
   wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   double val3 ;
   int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "cx",(char *) "cy",(char *) "x",(char *) "y", NULL 
-  };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:GraphicsPath_AddQuadCurveToPoint",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if ((nobjs < 3) || (nobjs > 3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
   } 
   arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
   } 
   arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
   {
-    (arg1)->AddQuadCurveToPoint(arg2,arg3,arg4,arg5);
+    (arg1)->AddLineToPoint(arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25850,60 +25888,26 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddRectangle(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddLineToPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
+  wxPoint2D *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "x",(char *) "y",(char *) "w",(char *) "h", NULL 
-  };
+  wxPoint2D temp2 ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:GraphicsPath_AddRectangle",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddLineToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
   {
-    (arg1)->AddRectangle(arg2,arg3,arg4,arg5);
+    arg2 = &temp2;
+    if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
+  }
+  {
+    (arg1)->AddLineToPoint((wxPoint2D const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -25913,61 +25917,26 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddCircle(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
-  PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
-  wxDouble arg4 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "x",(char *) "y",(char *) "r", NULL 
-  };
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddLineToPoint(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[4];
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:GraphicsPath_AddCircle",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddCircle" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_AddLineToPoint",0,3,argv))) SWIG_fail;
+  --argc;
+  if (argc == 2) {
+    return _wrap_GraphicsPath_AddLineToPoint__SWIG_1(self, argc, argv);
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddCircle" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddCircle" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddCircle" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  {
-    (arg1)->AddCircle(arg2,arg3,arg4);
-    if (PyErr_Occurred()) SWIG_fail;
+  if (argc == 3) {
+    return _wrap_GraphicsPath_AddLineToPoint__SWIG_0(self, argc, argv);
   }
-  resultobj = SWIG_Py_Void();
-  return resultobj;
+  
 fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_AddLineToPoint'");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddArcToPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddCurveToPoint__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
   wxDouble arg2 ;
@@ -25975,6 +25944,7 @@ SWIGINTERN PyObject *_wrap_GraphicsPath_AddArcToPoint(PyObject *SWIGUNUSEDPARM(s
   wxDouble arg4 ;
   wxDouble arg5 ;
   wxDouble arg6 ;
+  wxDouble arg7 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -25987,49 +25957,47 @@ SWIGINTERN PyObject *_wrap_GraphicsPath_AddArcToPoint(PyObject *SWIGUNUSEDPARM(s
   int ecode5 = 0 ;
   double val6 ;
   int ecode6 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  PyObject * obj5 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "x1",(char *) "y1",(char *) "x2",(char *) "y2",(char *) "r", NULL 
-  };
+  double val7 ;
+  int ecode7 = 0 ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOOO:GraphicsPath_AddArcToPoint",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
   } 
   arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
   } 
   arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "4"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "4"" of type '" "wxDouble""'");
   } 
   arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
   if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "5"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "5"" of type '" "wxDouble""'");
   } 
   arg5 = static_cast< wxDouble >(val5);
-  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  ecode6 = SWIG_AsVal_double(swig_obj[5], &val6);
   if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "6"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "6"" of type '" "wxDouble""'");
   } 
   arg6 = static_cast< wxDouble >(val6);
+  ecode7 = SWIG_AsVal_double(swig_obj[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "7"" of type '" "wxDouble""'");
+  } 
+  arg7 = static_cast< wxDouble >(val7);
   {
-    (arg1)->AddArcToPoint(arg2,arg3,arg4,arg5,arg6);
+    (arg1)->AddCurveToPoint(arg2,arg3,arg4,arg5,arg6,arg7);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26039,132 +26007,38 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddEllipse(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddCurveToPoint__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
+  wxPoint2D *arg2 = 0 ;
+  wxPoint2D *arg3 = 0 ;
+  wxPoint2D *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "x",(char *) "y",(char *) "w",(char *) "h", NULL 
-  };
+  wxPoint2D temp2 ;
+  wxPoint2D temp3 ;
+  wxPoint2D temp4 ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:GraphicsPath_AddEllipse",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if ((nobjs < 4) || (nobjs > 4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddCurveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
   {
-    (arg1)->AddEllipse(arg2,arg3,arg4,arg5);
-    if (PyErr_Occurred()) SWIG_fail;
+    arg2 = &temp2;
+    if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
   }
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_GraphicsPath_AddRoundedRectangle(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
-  PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
-  wxDouble arg4 ;
-  wxDouble arg5 ;
-  wxDouble arg6 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  double val6 ;
-  int ecode6 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  PyObject * obj5 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "x",(char *) "y",(char *) "w",(char *) "h",(char *) "radius", NULL 
-  };
-  
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOOO:GraphicsPath_AddRoundedRectangle",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+  {
+    arg3 = &temp3;
+    if ( ! wxPoint2D_helper(swig_obj[2], &arg3)) SWIG_fail;
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
-  ecode4 = SWIG_AsVal_double(obj3, &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "4"" of type '" "wxDouble""'");
-  } 
-  arg4 = static_cast< wxDouble >(val4);
-  ecode5 = SWIG_AsVal_double(obj4, &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "5"" of type '" "wxDouble""'");
-  } 
-  arg5 = static_cast< wxDouble >(val5);
-  ecode6 = SWIG_AsVal_double(obj5, &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "6"" of type '" "wxDouble""'");
-  } 
-  arg6 = static_cast< wxDouble >(val6);
   {
-    (arg1)->AddRoundedRectangle(arg2,arg3,arg4,arg5,arg6);
+    arg4 = &temp4;
+    if ( ! wxPoint2D_helper(swig_obj[3], &arg4)) SWIG_fail;
+  }
+  {
+    (arg1)->AddCurveToPoint((wxPoint2D const &)*arg2,(wxPoint2D const &)*arg3,(wxPoint2D const &)*arg4);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26174,57 +26048,55 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_GetNativePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  void *result = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddCurveToPoint(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[8];
   
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_GetNativePath" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
+  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_AddCurveToPoint",0,7,argv))) SWIG_fail;
+  --argc;
+  if (argc == 4) {
+    return _wrap_GraphicsPath_AddCurveToPoint__SWIG_1(self, argc, argv);
   }
-  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  {
-    result = (void *)((wxGraphicsPath const *)arg1)->GetNativePath();
-    if (PyErr_Occurred()) SWIG_fail;
+  if (argc == 7) {
+    return _wrap_GraphicsPath_AddCurveToPoint__SWIG_0(self, argc, argv);
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 |  0 );
-  return resultobj;
+  
 fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_AddCurveToPoint'");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_UnGetNativePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddPath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  void *arg2 = (void *) 0 ;
+  wxGraphicsPath *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "p", NULL 
+    (char *) "self",(char *) "path", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsPath_UnGetNativePath",kwnames,&obj0,&obj1)) SWIG_fail;
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsPath_AddPath",kwnames,&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_UnGetNativePath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddPath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsPath,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_UnGetNativePath" "', expected argument " "2"" of type '" "void *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_AddPath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsPath_AddPath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
   }
+  arg2 = reinterpret_cast< wxGraphicsPath * >(argp2);
   {
-    (arg1)->UnGetNativePath(arg2);
+    (arg1)->AddPath((wxGraphicsPath const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26234,33 +26106,22 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_Transform(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_CloseSubpath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxGraphicsMatrix *arg2 = (wxGraphicsMatrix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "matrix", NULL 
-  };
+  PyObject *swig_obj[1] ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsPath_Transform",kwnames,&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Transform" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_CloseSubpath" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_Transform" "', expected argument " "2"" of type '" "wxGraphicsMatrix *""'"); 
-  }
-  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
   {
-    (arg1)->Transform(arg2);
+    (arg1)->CloseSubpath();
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26270,10 +26131,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_GetBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_GetCurrentPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxRect2DDouble result;
+  wxPoint2D result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -26282,179 +26143,225 @@ SWIGINTERN PyObject *_wrap_GraphicsPath_GetBox(PyObject *SWIGUNUSEDPARM(self), P
   swig_obj[0] = args;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_GetBox" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_GetCurrentPoint" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   {
-    result = (arg1)->GetBox();
+    result = ((wxGraphicsPath const *)arg1)->GetCurrentPoint();
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj((new wxRect2DDouble(static_cast< const wxRect2DDouble& >(result))), SWIGTYPE_p_wxRect2DDouble, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new wxPoint2D(static_cast< const wxPoint2D& >(result))), SWIGTYPE_p_wxPoint2D, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_Contains__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddArc__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
   wxDouble arg2 ;
   wxDouble arg3 ;
-  int arg4 = (int) wxWINDING_RULE ;
-  bool result;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
+  wxDouble arg6 ;
+  bool arg7 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   double val3 ;
   int ecode3 = 0 ;
-  int val4 ;
+  double val4 ;
   int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
+  bool val7 ;
+  int ecode7 = 0 ;
   
-  if ((nobjs < 3) || (nobjs > 4)) SWIG_fail;
+  if ((nobjs < 7) || (nobjs > 7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Contains" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddArc" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_Contains" "', expected argument " "2"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddArc" "', expected argument " "2"" of type '" "wxDouble""'");
   } 
   arg2 = static_cast< wxDouble >(val2);
   ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_Contains" "', expected argument " "3"" of type '" "wxDouble""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddArc" "', expected argument " "3"" of type '" "wxDouble""'");
   } 
   arg3 = static_cast< wxDouble >(val3);
-  if (swig_obj[3]) {
-    ecode4 = SWIG_AsVal_int(swig_obj[3], &val4);
-    if (!SWIG_IsOK(ecode4)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_Contains" "', expected argument " "4"" of type '" "int""'");
-    } 
-    arg4 = static_cast< int >(val4);
-  }
+  ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddArc" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddArc" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
+  ecode6 = SWIG_AsVal_double(swig_obj[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddArc" "', expected argument " "6"" of type '" "wxDouble""'");
+  } 
+  arg6 = static_cast< wxDouble >(val6);
+  ecode7 = SWIG_AsVal_bool(swig_obj[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "GraphicsPath_AddArc" "', expected argument " "7"" of type '" "bool""'");
+  } 
+  arg7 = static_cast< bool >(val7);
   {
-    result = (bool)(arg1)->Contains(arg2,arg3,arg4);
+    (arg1)->AddArc(arg2,arg3,arg4,arg5,arg6,arg7);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  {
-    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
-  }
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_Contains__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddArc__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
-  wxPoint2DDouble *arg2 = 0 ;
-  int arg3 = (int) wxWINDING_RULE ;
-  bool result;
+  wxPoint2D *arg2 = 0 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
+  bool arg6 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  int val3 ;
+  wxPoint2D temp2 ;
+  double val3 ;
   int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  bool val6 ;
+  int ecode6 = 0 ;
   
-  if ((nobjs < 2) || (nobjs > 3)) SWIG_fail;
+  if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Contains" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddArc" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_wxPoint2DDouble,  0  | 0);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_Contains" "', expected argument " "2"" of type '" "wxPoint2DDouble const &""'"); 
-  }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsPath_Contains" "', expected argument " "2"" of type '" "wxPoint2DDouble const &""'"); 
-  }
-  arg2 = reinterpret_cast< wxPoint2DDouble * >(argp2);
-  if (swig_obj[2]) {
-    ecode3 = SWIG_AsVal_int(swig_obj[2], &val3);
-    if (!SWIG_IsOK(ecode3)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_Contains" "', expected argument " "3"" of type '" "int""'");
-    } 
-    arg3 = static_cast< int >(val3);
-  }
   {
-    result = (bool)(arg1)->Contains((wxPoint2DDouble const &)*arg2,arg3);
-    if (PyErr_Occurred()) SWIG_fail;
+    arg2 = &temp2;
+    if ( ! wxPoint2D_helper(swig_obj[1], &arg2)) SWIG_fail;
   }
+  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddArc" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(swig_obj[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddArc" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddArc" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
+  ecode6 = SWIG_AsVal_bool(swig_obj[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddArc" "', expected argument " "6"" of type '" "bool""'");
+  } 
+  arg6 = static_cast< bool >(val6);
   {
-    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    (arg1)->AddArc((wxPoint2D const &)*arg2,arg3,arg4,arg5,arg6);
+    if (PyErr_Occurred()) SWIG_fail;
   }
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsPath_Contains(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddArc(PyObject *self, PyObject *args) {
   int argc;
-  PyObject *argv[5];
+  PyObject *argv[8];
   
-  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_Contains",0,4,argv))) SWIG_fail;
+  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_AddArc",0,7,argv))) SWIG_fail;
   --argc;
-  if ((argc >= 2) && (argc <= 3)) {
-    int _v = 0;
-    {
-      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_wxPoint2DDouble, 0);
-      _v = SWIG_CheckState(res);
-    }
-    if (!_v) goto check_1;
-    if (argc > 2) {
-      {
-        {
-          int res = SWIG_AsVal_int(argv[2], NULL);
-          _v = SWIG_CheckState(res);
-        }
-      }
-      if (!_v) goto check_1;
-    }
-    return _wrap_GraphicsPath_Contains__SWIG_1(self, argc, argv);
+  if (argc == 6) {
+    return _wrap_GraphicsPath_AddArc__SWIG_1(self, argc, argv);
   }
-check_1:
-  
-  if ((argc >= 3) && (argc <= 4)) {
-    return _wrap_GraphicsPath_Contains__SWIG_0(self, argc, argv);
+  if (argc == 7) {
+    return _wrap_GraphicsPath_AddArc__SWIG_0(self, argc, argv);
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_Contains'");
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_AddArc'");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *GraphicsPath_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_wxGraphicsPath, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_delete_GraphicsMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddQuadCurveToPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  PyObject *swig_obj[1] ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "cx",(char *) "cy",(char *) "x",(char *) "y", NULL 
+  };
   
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:GraphicsPath_AddQuadCurveToPoint",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GraphicsMatrix" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddQuadCurveToPoint" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
   {
-    delete arg1;
-    
+    (arg1)->AddQuadCurveToPoint(arg2,arg3,arg4,arg5);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26464,59 +26371,60 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxGraphicsMatrix *result = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Clone" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  {
-    result = (wxGraphicsMatrix *)((wxGraphicsMatrix const *)arg1)->Clone();
-    if (PyErr_Occurred()) SWIG_fail;
-  }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Concat(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddRectangle(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxGraphicsMatrix *arg2 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "t", NULL 
+    (char *) "self",(char *) "x",(char *) "y",(char *) "w",(char *) "h", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_Concat",kwnames,&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:GraphicsPath_AddRectangle",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Concat" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsMatrix_Concat" "', expected argument " "2"" of type '" "wxGraphicsMatrix const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
-  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddRectangle" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
   {
-    (arg1)->Concat((wxGraphicsMatrix const *)arg2);
+    (arg1)->AddRectangle(arg2,arg3,arg4,arg5);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26526,33 +26434,51 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddCircle(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxGraphicsMatrix *arg2 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "t", NULL 
+    (char *) "self",(char *) "x",(char *) "y",(char *) "r", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_Copy",kwnames,&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:GraphicsPath_AddCircle",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Copy" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsMatrix_Copy" "', expected argument " "2"" of type '" "wxGraphicsMatrix const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddCircle" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
-  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddCircle" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddCircle" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddCircle" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
   {
-    (arg1)->Copy((wxGraphicsMatrix const *)arg2);
+    (arg1)->AddCircle(arg2,arg3,arg4);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26562,15 +26488,14 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Set(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddArcToPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxDouble arg2 = (wxDouble) 1.0 ;
-  wxDouble arg3 = (wxDouble) 0.0 ;
-  wxDouble arg4 = (wxDouble) 0.0 ;
-  wxDouble arg5 = (wxDouble) 1.0 ;
-  wxDouble arg6 = (wxDouble) 0.0 ;
-  wxDouble arg7 = (wxDouble) 0.0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
+  wxDouble arg6 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -26583,69 +26508,49 @@ SWIGINTERN PyObject *_wrap_GraphicsMatrix_Set(PyObject *SWIGUNUSEDPARM(self), Py
   int ecode5 = 0 ;
   double val6 ;
   int ecode6 = 0 ;
-  double val7 ;
-  int ecode7 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
-  PyObject * obj6 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "a",(char *) "b",(char *) "c",(char *) "d",(char *) "tx",(char *) "ty", NULL 
+    (char *) "self",(char *) "x1",(char *) "y1",(char *) "x2",(char *) "y2",(char *) "r", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|OOOOOO:GraphicsMatrix_Set",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOOO:GraphicsPath_AddArcToPoint",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Set" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  if (obj1) {
-    ecode2 = SWIG_AsVal_double(obj1, &val2);
-    if (!SWIG_IsOK(ecode2)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Set" "', expected argument " "2"" of type '" "wxDouble""'");
-    } 
-    arg2 = static_cast< wxDouble >(val2);
-  }
-  if (obj2) {
-    ecode3 = SWIG_AsVal_double(obj2, &val3);
-    if (!SWIG_IsOK(ecode3)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsMatrix_Set" "', expected argument " "3"" of type '" "wxDouble""'");
-    } 
-    arg3 = static_cast< wxDouble >(val3);
-  }
-  if (obj3) {
-    ecode4 = SWIG_AsVal_double(obj3, &val4);
-    if (!SWIG_IsOK(ecode4)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsMatrix_Set" "', expected argument " "4"" of type '" "wxDouble""'");
-    } 
-    arg4 = static_cast< wxDouble >(val4);
-  }
-  if (obj4) {
-    ecode5 = SWIG_AsVal_double(obj4, &val5);
-    if (!SWIG_IsOK(ecode5)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsMatrix_Set" "', expected argument " "5"" of type '" "wxDouble""'");
-    } 
-    arg5 = static_cast< wxDouble >(val5);
-  }
-  if (obj5) {
-    ecode6 = SWIG_AsVal_double(obj5, &val6);
-    if (!SWIG_IsOK(ecode6)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsMatrix_Set" "', expected argument " "6"" of type '" "wxDouble""'");
-    } 
-    arg6 = static_cast< wxDouble >(val6);
-  }
-  if (obj6) {
-    ecode7 = SWIG_AsVal_double(obj6, &val7);
-    if (!SWIG_IsOK(ecode7)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "GraphicsMatrix_Set" "', expected argument " "7"" of type '" "wxDouble""'");
-    } 
-    arg7 = static_cast< wxDouble >(val7);
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddArcToPoint" "', expected argument " "6"" of type '" "wxDouble""'");
+  } 
+  arg6 = static_cast< wxDouble >(val6);
   {
-    (arg1)->Set(arg2,arg3,arg4,arg5,arg6,arg7);
+    (arg1)->AddArcToPoint(arg2,arg3,arg4,arg5,arg6);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26655,22 +26560,60 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Invert(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddEllipse(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  PyObject *swig_obj[1] ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "x",(char *) "y",(char *) "w",(char *) "h", NULL 
+  };
   
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:GraphicsPath_AddEllipse",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Invert" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddEllipse" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
   {
-    (arg1)->Invert();
+    (arg1)->AddEllipse(arg2,arg3,arg4,arg5);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26680,109 +26623,129 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_IsEqual(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_AddRoundedRectangle(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxGraphicsMatrix *arg2 = (wxGraphicsMatrix *) 0 ;
-  bool result;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  wxDouble arg4 ;
+  wxDouble arg5 ;
+  wxDouble arg6 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  double val6 ;
+  int ecode6 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  PyObject * obj5 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "t", NULL 
+    (char *) "self",(char *) "x",(char *) "y",(char *) "w",(char *) "h",(char *) "radius", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_IsEqual",kwnames,&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOOO:GraphicsPath_AddRoundedRectangle",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_IsEqual" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsMatrix_IsEqual" "', expected argument " "2"" of type '" "wxGraphicsMatrix const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
-  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  ecode4 = SWIG_AsVal_double(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "4"" of type '" "wxDouble""'");
+  } 
+  arg4 = static_cast< wxDouble >(val4);
+  ecode5 = SWIG_AsVal_double(obj4, &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "5"" of type '" "wxDouble""'");
+  } 
+  arg5 = static_cast< wxDouble >(val5);
+  ecode6 = SWIG_AsVal_double(obj5, &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "GraphicsPath_AddRoundedRectangle" "', expected argument " "6"" of type '" "wxDouble""'");
+  } 
+  arg6 = static_cast< wxDouble >(val6);
   {
-    result = (bool)((wxGraphicsMatrix const *)arg1)->IsEqual((wxGraphicsMatrix const *)arg2);
+    (arg1)->AddRoundedRectangle(arg2,arg3,arg4,arg5,arg6);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  {
-    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
-  }
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_IsIdentity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_GetNativePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  bool result;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  void *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
   
   if (!args) SWIG_fail;
   swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_IsIdentity" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_GetNativePath" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   {
-    result = (bool)(arg1)->IsIdentity();
+    result = (void *)((wxGraphicsPath const *)arg1)->GetNativePath();
     if (PyErr_Occurred()) SWIG_fail;
   }
-  {
-    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
-  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Translate(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_UnGetNativePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  void *arg2 = (void *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
+  int res2 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "dx",(char *) "dy", NULL 
+    (char *) "self",(char *) "p", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_Translate",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsPath_UnGetNativePath",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Translate" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_UnGetNativePath" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_UnGetNativePath" "', expected argument " "2"" of type '" "void *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Translate" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsMatrix_Translate" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
   {
-    (arg1)->Translate(arg2,arg3);
+    ((wxGraphicsPath const *)arg1)->UnGetNativePath(arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26792,42 +26755,36 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Scale(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_Transform(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxDouble arg2 ;
-  wxDouble arg3 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxGraphicsMatrix *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   char *  kwnames[] = {
-    (char *) "self",(char *) "xScale",(char *) "yScale", NULL 
+    (char *) "self",(char *) "matrix", NULL 
   };
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_Scale",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsPath_Transform",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Scale" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Transform" "', expected argument " "1"" of type '" "wxGraphicsPath *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Scale" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
-  ecode3 = SWIG_AsVal_double(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsMatrix_Scale" "', expected argument " "3"" of type '" "wxDouble""'");
-  } 
-  arg3 = static_cast< wxDouble >(val3);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsMatrix,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_Transform" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsPath_Transform" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
   {
-    (arg1)->Scale(arg2,arg3);
+    (arg1)->Transform((wxGraphicsMatrix const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -26837,102 +26794,77 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_Rotate(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_GetBox(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxDouble arg2 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxRect2DDouble result;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "angle", NULL 
-  };
+  PyObject *swig_obj[1] ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsMatrix_Rotate",kwnames,&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_Rotate" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_GetBox" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  ecode2 = SWIG_AsVal_double(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsMatrix_Rotate" "', expected argument " "2"" of type '" "wxDouble""'");
-  } 
-  arg2 = static_cast< wxDouble >(val2);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
   {
-    (arg1)->Rotate(arg2);
+    result = ((wxGraphicsPath const *)arg1)->GetBox();
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_NewPointerObj((new wxRect2DDouble(static_cast< const wxRect2DDouble& >(result))), SWIGTYPE_p_wxRect2DDouble, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_TransformPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_Contains__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxDouble *arg2 = (wxDouble *) 0 ;
-  wxDouble *arg3 = (wxDouble *) 0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxDouble arg2 ;
+  wxDouble arg3 ;
+  int arg4 = (int) wxODDEVEN_RULE ;
+  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  wxDouble temp2 ;
-  int res2 = 0 ;
-  wxDouble temp3 ;
-  int res3 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "INOUT",(char *) "INOUT", NULL 
-  };
+  double val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_TransformPoint",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if ((nobjs < 3) || (nobjs > 4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_TransformPoint" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
-  }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_double,0))))) {
-    double val; 
-    int ecode = SWIG_AsVal_double(obj1, &val);
-    if (!SWIG_IsOK(ecode)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformPoint" "', expected argument " "2"" of type '" "wxDouble""'");
-    }
-    temp2 = static_cast< wxDouble >(val);
-    arg2 = &temp2;
-    res2 = SWIG_AddTmpMask(ecode);
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Contains" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
   }
-  if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) {
-    double val; 
-    int ecode = SWIG_AsVal_double(obj2, &val);
-    if (!SWIG_IsOK(ecode)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformPoint" "', expected argument " "3"" of type '" "wxDouble""'");
-    }
-    temp3 = static_cast< wxDouble >(val);
-    arg3 = &temp3;
-    res3 = SWIG_AddTmpMask(ecode);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GraphicsPath_Contains" "', expected argument " "2"" of type '" "wxDouble""'");
+  } 
+  arg2 = static_cast< wxDouble >(val2);
+  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_Contains" "', expected argument " "3"" of type '" "wxDouble""'");
+  } 
+  arg3 = static_cast< wxDouble >(val3);
+  if (swig_obj[3]) {
+    ecode4 = SWIG_AsVal_int(swig_obj[3], &val4);
+    if (!SWIG_IsOK(ecode4)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "GraphicsPath_Contains" "', expected argument " "4"" of type '" "int""'");
+    } 
+    arg4 = static_cast< int >(val4);
   }
   {
-    (arg1)->TransformPoint(arg2,arg3);
+    result = (bool)((wxGraphicsPath const *)arg1)->Contains(arg2,arg3,arg4);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsTmpObj(res2)) {
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg2)));
-  } else {
-    int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_double, new_flags));
-  }
-  if (SWIG_IsTmpObj(res3)) {
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3)));
-  } else {
-    int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags));
+  {
+    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
   }
   return resultobj;
 fail:
@@ -26940,66 +26872,46 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_TransformDistance(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+SWIGINTERN PyObject *_wrap_GraphicsPath_Contains__SWIG_1(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  wxDouble *arg2 = (wxDouble *) 0 ;
-  wxDouble *arg3 = (wxDouble *) 0 ;
+  wxGraphicsPath *arg1 = (wxGraphicsPath *) 0 ;
+  wxPoint2DDouble *arg2 = 0 ;
+  int arg3 = (int) wxODDEVEN_RULE ;
+  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  wxDouble temp2 ;
+  void *argp2 = 0 ;
   int res2 = 0 ;
-  wxDouble temp3 ;
-  int res3 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  char *  kwnames[] = {
-    (char *) "self",(char *) "INOUT",(char *) "INOUT", NULL 
-  };
+  int val3 ;
+  int ecode3 = 0 ;
   
-  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:GraphicsMatrix_TransformDistance",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
+  if ((nobjs < 2) || (nobjs > 3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_TransformDistance" "', expected argument " "1"" of type '" "wxGraphicsMatrix *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsPath_Contains" "', expected argument " "1"" of type '" "wxGraphicsPath const *""'"); 
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  if (!(SWIG_IsOK((res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2),SWIGTYPE_p_double,0))))) {
-    double val; 
-    int ecode = SWIG_AsVal_double(obj1, &val);
-    if (!SWIG_IsOK(ecode)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformDistance" "', expected argument " "2"" of type '" "wxDouble""'");
-    }
-    temp2 = static_cast< wxDouble >(val);
-    arg2 = &temp2;
-    res2 = SWIG_AddTmpMask(ecode);
+  arg1 = reinterpret_cast< wxGraphicsPath * >(argp1);
+  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_wxPoint2DDouble,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsPath_Contains" "', expected argument " "2"" of type '" "wxPoint2DDouble const &""'"); 
   }
-  if (!(SWIG_IsOK((res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3),SWIGTYPE_p_double,0))))) {
-    double val; 
-    int ecode = SWIG_AsVal_double(obj2, &val);
-    if (!SWIG_IsOK(ecode)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode), "in method '" "GraphicsMatrix_TransformDistance" "', expected argument " "3"" of type '" "wxDouble""'");
-    }
-    temp3 = static_cast< wxDouble >(val);
-    arg3 = &temp3;
-    res3 = SWIG_AddTmpMask(ecode);
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsPath_Contains" "', expected argument " "2"" of type '" "wxPoint2DDouble const &""'"); 
+  }
+  arg2 = reinterpret_cast< wxPoint2DDouble * >(argp2);
+  if (swig_obj[2]) {
+    ecode3 = SWIG_AsVal_int(swig_obj[2], &val3);
+    if (!SWIG_IsOK(ecode3)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GraphicsPath_Contains" "', expected argument " "3"" of type '" "int""'");
+    } 
+    arg3 = static_cast< int >(val3);
   }
   {
-    (arg1)->TransformDistance(arg2,arg3);
+    result = (bool)((wxGraphicsPath const *)arg1)->Contains((wxPoint2DDouble const &)*arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_Py_Void();
-  if (SWIG_IsTmpObj(res2)) {
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg2)));
-  } else {
-    int new_flags = SWIG_IsNewObj(res2) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg2), SWIGTYPE_p_double, new_flags));
-  }
-  if (SWIG_IsTmpObj(res3)) {
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_double((*arg3)));
-  } else {
-    int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN |  0 ) :  0 ;
-    resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_double, new_flags));
+  {
+    resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
   }
   return resultobj;
 fail:
@@ -27007,39 +26919,119 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_GraphicsMatrix_GetNativeMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  wxGraphicsMatrix *arg1 = (wxGraphicsMatrix *) 0 ;
-  void *result = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
+SWIGINTERN PyObject *_wrap_GraphicsPath_Contains(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
   
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsMatrix, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsMatrix_GetNativeMatrix" "', expected argument " "1"" of type '" "wxGraphicsMatrix const *""'"); 
+  if (!(argc = SWIG_Python_UnpackTuple(args,"GraphicsPath_Contains",0,4,argv))) SWIG_fail;
+  --argc;
+  if ((argc >= 2) && (argc <= 3)) {
+    int _v = 0;
+    {
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_wxPoint2DDouble, 0);
+      _v = SWIG_CheckState(res);
+    }
+    if (!_v) goto check_1;
+    if (argc > 2) {
+      {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+      }
+      if (!_v) goto check_1;
+    }
+    return _wrap_GraphicsPath_Contains__SWIG_1(self, argc, argv);
   }
-  arg1 = reinterpret_cast< wxGraphicsMatrix * >(argp1);
-  {
-    result = (void *)((wxGraphicsMatrix const *)arg1)->GetNativeMatrix();
-    if (PyErr_Occurred()) SWIG_fail;
+check_1:
+  
+  if ((argc >= 3) && (argc <= 4)) {
+    return _wrap_GraphicsPath_Contains__SWIG_0(self, argc, argv);
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 |  0 );
-  return resultobj;
+  
 fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"No matching function for overloaded 'GraphicsPath_Contains'");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *GraphicsMatrix_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *GraphicsPath_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_wxGraphicsMatrix, SWIG_NewClientData(obj));
+  SWIG_TypeNewClientData(SWIGTYPE_p_wxGraphicsPath, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
+SWIGINTERN int NullGraphicsPen_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsPen is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *NullGraphicsPen_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsPen), SWIGTYPE_p_wxGraphicsPen,  0 );
+  return pyobj;
+}
+
+
+SWIGINTERN int NullGraphicsBrush_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsBrush is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *NullGraphicsBrush_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsBrush), SWIGTYPE_p_wxGraphicsBrush,  0 );
+  return pyobj;
+}
+
+
+SWIGINTERN int NullGraphicsFont_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsFont is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *NullGraphicsFont_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsFont), SWIGTYPE_p_wxGraphicsFont,  0 );
+  return pyobj;
+}
+
+
+SWIGINTERN int NullGraphicsMatrix_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsMatrix is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *NullGraphicsMatrix_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsMatrix), SWIGTYPE_p_wxGraphicsMatrix,  0 );
+  return pyobj;
+}
+
+
+SWIGINTERN int NullGraphicsPath_set(PyObject *) {
+  SWIG_Error(SWIG_AttributeError,"Variable NullGraphicsPath is read-only.");
+  return 1;
+}
+
+
+SWIGINTERN PyObject *NullGraphicsPath_get(void) {
+  PyObject *pyobj = 0;
+  
+  pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&wxNullGraphicsPath), SWIGTYPE_p_wxGraphicsPath,  0 );
+  return pyobj;
+}
+
+
 SWIGINTERN PyObject *_wrap_delete_GraphicsContext(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
@@ -27199,7 +27191,7 @@ fail:
 SWIGINTERN PyObject *_wrap_GraphicsContext_CreatePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
-  wxGraphicsPath *result = 0 ;
+  wxGraphicsPath result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -27212,10 +27204,10 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_CreatePath(PyObject *SWIGUNUSEDPARM(s
   }
   arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
   {
-    result = (wxGraphicsPath *)(arg1)->CreatePath();
+    result = (arg1)->CreatePath();
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_wxGraphicsPath, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new wxGraphicsPath(static_cast< const wxGraphicsPath& >(result))), SWIGTYPE_p_wxGraphicsPath, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -27526,7 +27518,7 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_CreateMatrix(PyObject *SWIGUNUSEDPARM
   wxDouble arg5 = (wxDouble) 1.0 ;
   wxDouble arg6 = (wxDouble) 0.0 ;
   wxDouble arg7 = (wxDouble) 0.0 ;
-  wxGraphicsMatrix *result = 0 ;
+  wxGraphicsMatrix result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -27601,10 +27593,10 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_CreateMatrix(PyObject *SWIGUNUSEDPARM
     arg7 = static_cast< wxDouble >(val7);
   }
   {
-    result = (wxGraphicsMatrix *)(arg1)->CreateMatrix(arg2,arg3,arg4,arg5,arg6,arg7);
+    result = (arg1)->CreateMatrix(arg2,arg3,arg4,arg5,arg6,arg7);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new wxGraphicsMatrix(static_cast< const wxGraphicsMatrix& >(result))), SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -27940,6 +27932,110 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_GraphicsContext_ConcatTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+  PyObject *resultobj = 0;
+  wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
+  wxGraphicsMatrix *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "matrix", NULL 
+  };
+  
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsContext_ConcatTransform",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsContext, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsContext_ConcatTransform" "', expected argument " "1"" of type '" "wxGraphicsContext *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsMatrix,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_ConcatTransform" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsContext_ConcatTransform" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
+  {
+    (arg1)->ConcatTransform((wxGraphicsMatrix const &)*arg2);
+    if (PyErr_Occurred()) SWIG_fail;
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GraphicsContext_SetTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
+  PyObject *resultobj = 0;
+  wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
+  wxGraphicsMatrix *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  char *  kwnames[] = {
+    (char *) "self",(char *) "matrix", NULL 
+  };
+  
+  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:GraphicsContext_SetTransform",kwnames,&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_wxGraphicsContext, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsContext_SetTransform" "', expected argument " "1"" of type '" "wxGraphicsContext *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsMatrix,  0  | 0);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_SetTransform" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsContext_SetTransform" "', expected argument " "2"" of type '" "wxGraphicsMatrix const &""'"); 
+  }
+  arg2 = reinterpret_cast< wxGraphicsMatrix * >(argp2);
+  {
+    (arg1)->SetTransform((wxGraphicsMatrix const &)*arg2);
+    if (PyErr_Occurred()) SWIG_fail;
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_GraphicsContext_GetTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
+  wxGraphicsMatrix result;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject *swig_obj[1] ;
+  
+  if (!args) SWIG_fail;
+  swig_obj[0] = args;
+  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_wxGraphicsContext, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsContext_GetTransform" "', expected argument " "1"" of type '" "wxGraphicsContext const *""'"); 
+  }
+  arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
+  {
+    result = ((wxGraphicsContext const *)arg1)->GetTransform();
+    if (PyErr_Occurred()) SWIG_fail;
+  }
+  resultobj = SWIG_NewPointerObj((new wxGraphicsMatrix(static_cast< const wxGraphicsMatrix& >(result))), SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_GraphicsContext_SetPen__SWIG_0(PyObject *SWIGUNUSEDPARM(self), int nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
@@ -28237,7 +28333,7 @@ fail:
 SWIGINTERN PyObject *_wrap_GraphicsContext_StrokePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
-  wxGraphicsPath *arg2 = (wxGraphicsPath *) 0 ;
+  wxGraphicsPath *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -28254,13 +28350,16 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_StrokePath(PyObject *SWIGUNUSEDPARM(s
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsContext_StrokePath" "', expected argument " "1"" of type '" "wxGraphicsContext *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsPath,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_StrokePath" "', expected argument " "2"" of type '" "wxGraphicsPath const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_StrokePath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsContext_StrokePath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
   }
   arg2 = reinterpret_cast< wxGraphicsPath * >(argp2);
   {
-    (arg1)->StrokePath((wxGraphicsPath const *)arg2);
+    (arg1)->StrokePath((wxGraphicsPath const &)*arg2);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -28273,8 +28372,8 @@ fail:
 SWIGINTERN PyObject *_wrap_GraphicsContext_FillPath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
-  wxGraphicsPath *arg2 = (wxGraphicsPath *) 0 ;
-  int arg3 = (int) wxWINDING_RULE ;
+  wxGraphicsPath *arg2 = 0 ;
+  int arg3 = (int) wxODDEVEN_RULE ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -28294,9 +28393,12 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_FillPath(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsContext_FillPath" "', expected argument " "1"" of type '" "wxGraphicsContext *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsPath,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_FillPath" "', expected argument " "2"" of type '" "wxGraphicsPath const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_FillPath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsContext_FillPath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
   }
   arg2 = reinterpret_cast< wxGraphicsPath * >(argp2);
   if (obj2) {
@@ -28307,7 +28409,7 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_FillPath(PyObject *SWIGUNUSEDPARM(sel
     arg3 = static_cast< int >(val3);
   }
   {
-    (arg1)->FillPath((wxGraphicsPath const *)arg2,arg3);
+    (arg1)->FillPath((wxGraphicsPath const &)*arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -28320,8 +28422,8 @@ fail:
 SWIGINTERN PyObject *_wrap_GraphicsContext_DrawPath(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
   PyObject *resultobj = 0;
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
-  wxGraphicsPath *arg2 = (wxGraphicsPath *) 0 ;
-  int arg3 = (int) wxWINDING_RULE ;
+  wxGraphicsPath *arg2 = 0 ;
+  int arg3 = (int) wxODDEVEN_RULE ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -28341,9 +28443,12 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_DrawPath(PyObject *SWIGUNUSEDPARM(sel
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GraphicsContext_DrawPath" "', expected argument " "1"" of type '" "wxGraphicsContext *""'"); 
   }
   arg1 = reinterpret_cast< wxGraphicsContext * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_wxGraphicsPath, 0 |  0 );
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_wxGraphicsPath,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_DrawPath" "', expected argument " "2"" of type '" "wxGraphicsPath const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GraphicsContext_DrawPath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "GraphicsContext_DrawPath" "', expected argument " "2"" of type '" "wxGraphicsPath const &""'"); 
   }
   arg2 = reinterpret_cast< wxGraphicsPath * >(argp2);
   if (obj2) {
@@ -28354,7 +28459,7 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_DrawPath(PyObject *SWIGUNUSEDPARM(sel
     arg3 = static_cast< int >(val3);
   }
   {
-    (arg1)->DrawPath((wxGraphicsPath const *)arg2,arg3);
+    (arg1)->DrawPath((wxGraphicsPath const &)*arg2,arg3);
     if (PyErr_Occurred()) SWIG_fail;
   }
   resultobj = SWIG_Py_Void();
@@ -28959,7 +29064,7 @@ SWIGINTERN PyObject *_wrap_GraphicsContext_DrawLines(PyObject *SWIGUNUSEDPARM(se
   wxGraphicsContext *arg1 = (wxGraphicsContext *) 0 ;
   size_t arg2 ;
   wxPoint2D *arg3 = (wxPoint2D *) 0 ;
-  int arg4 = (int) wxWINDING_RULE ;
+  int arg4 = (int) wxODDEVEN_RULE ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val4 ;
@@ -29447,7 +29552,7 @@ fail:
 SWIGINTERN PyObject *_wrap_GraphicsRenderer_CreatePath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   wxGraphicsRenderer *arg1 = (wxGraphicsRenderer *) 0 ;
-  wxGraphicsPath *result = 0 ;
+  wxGraphicsPath result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject *swig_obj[1] ;
@@ -29460,10 +29565,10 @@ SWIGINTERN PyObject *_wrap_GraphicsRenderer_CreatePath(PyObject *SWIGUNUSEDPARM(
   }
   arg1 = reinterpret_cast< wxGraphicsRenderer * >(argp1);
   {
-    result = (wxGraphicsPath *)(arg1)->CreatePath();
+    result = (arg1)->CreatePath();
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_wxGraphicsPath, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new wxGraphicsPath(static_cast< const wxGraphicsPath& >(result))), SWIGTYPE_p_wxGraphicsPath, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -29479,7 +29584,7 @@ SWIGINTERN PyObject *_wrap_GraphicsRenderer_CreateMatrix(PyObject *SWIGUNUSEDPAR
   wxDouble arg5 = (wxDouble) 1.0 ;
   wxDouble arg6 = (wxDouble) 0.0 ;
   wxDouble arg7 = (wxDouble) 0.0 ;
-  wxGraphicsMatrix *result = 0 ;
+  wxGraphicsMatrix result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -29554,10 +29659,10 @@ SWIGINTERN PyObject *_wrap_GraphicsRenderer_CreateMatrix(PyObject *SWIGUNUSEDPAR
     arg7 = static_cast< wxDouble >(val7);
   }
   {
-    result = (wxGraphicsMatrix *)(arg1)->CreateMatrix(arg2,arg3,arg4,arg5,arg6,arg7);
+    result = (arg1)->CreateMatrix(arg2,arg3,arg4,arg5,arg6,arg7);
     if (PyErr_Occurred()) SWIG_fail;
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj((new wxGraphicsMatrix(static_cast< const wxGraphicsMatrix& >(result))), SWIGTYPE_p_wxGraphicsMatrix, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -38335,8 +38440,21 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"delete_GraphicsFont", (PyCFunction)_wrap_delete_GraphicsFont, METH_O, NULL},
         { (char *)"GraphicsFont_swigregister", GraphicsFont_swigregister, METH_VARARGS, NULL},
         { (char *)"GraphicsFont_swiginit", GraphicsFont_swiginit, METH_VARARGS, NULL},
+        { (char *)"delete_GraphicsMatrix", (PyCFunction)_wrap_delete_GraphicsMatrix, METH_O, NULL},
+        { (char *)"GraphicsMatrix_Concat", (PyCFunction) _wrap_GraphicsMatrix_Concat, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_Copy", (PyCFunction) _wrap_GraphicsMatrix_Copy, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_Set", (PyCFunction) _wrap_GraphicsMatrix_Set, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_Invert", (PyCFunction)_wrap_GraphicsMatrix_Invert, METH_O, NULL},
+        { (char *)"GraphicsMatrix_IsEqual", (PyCFunction) _wrap_GraphicsMatrix_IsEqual, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_IsIdentity", (PyCFunction)_wrap_GraphicsMatrix_IsIdentity, METH_O, NULL},
+        { (char *)"GraphicsMatrix_Translate", (PyCFunction) _wrap_GraphicsMatrix_Translate, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_Scale", (PyCFunction) _wrap_GraphicsMatrix_Scale, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_Rotate", (PyCFunction) _wrap_GraphicsMatrix_Rotate, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_TransformPoint", (PyCFunction) _wrap_GraphicsMatrix_TransformPoint, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_TransformDistance", (PyCFunction) _wrap_GraphicsMatrix_TransformDistance, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsMatrix_GetNativeMatrix", (PyCFunction)_wrap_GraphicsMatrix_GetNativeMatrix, METH_O, NULL},
+        { (char *)"GraphicsMatrix_swigregister", GraphicsMatrix_swigregister, METH_VARARGS, NULL},
         { (char *)"delete_GraphicsPath", (PyCFunction)_wrap_delete_GraphicsPath, METH_O, NULL},
-        { (char *)"GraphicsPath_Clone", (PyCFunction)_wrap_GraphicsPath_Clone, METH_O, NULL},
         { (char *)"GraphicsPath_MoveToPoint", _wrap_GraphicsPath_MoveToPoint, METH_VARARGS, NULL},
         { (char *)"GraphicsPath_AddLineToPoint", _wrap_GraphicsPath_AddLineToPoint, METH_VARARGS, NULL},
         { (char *)"GraphicsPath_AddCurveToPoint", _wrap_GraphicsPath_AddCurveToPoint, METH_VARARGS, NULL},
@@ -38356,21 +38474,6 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"GraphicsPath_GetBox", (PyCFunction)_wrap_GraphicsPath_GetBox, METH_O, NULL},
         { (char *)"GraphicsPath_Contains", _wrap_GraphicsPath_Contains, METH_VARARGS, NULL},
         { (char *)"GraphicsPath_swigregister", GraphicsPath_swigregister, METH_VARARGS, NULL},
-        { (char *)"delete_GraphicsMatrix", (PyCFunction)_wrap_delete_GraphicsMatrix, METH_O, NULL},
-        { (char *)"GraphicsMatrix_Clone", (PyCFunction)_wrap_GraphicsMatrix_Clone, METH_O, NULL},
-        { (char *)"GraphicsMatrix_Concat", (PyCFunction) _wrap_GraphicsMatrix_Concat, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_Copy", (PyCFunction) _wrap_GraphicsMatrix_Copy, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_Set", (PyCFunction) _wrap_GraphicsMatrix_Set, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_Invert", (PyCFunction)_wrap_GraphicsMatrix_Invert, METH_O, NULL},
-        { (char *)"GraphicsMatrix_IsEqual", (PyCFunction) _wrap_GraphicsMatrix_IsEqual, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_IsIdentity", (PyCFunction)_wrap_GraphicsMatrix_IsIdentity, METH_O, NULL},
-        { (char *)"GraphicsMatrix_Translate", (PyCFunction) _wrap_GraphicsMatrix_Translate, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_Scale", (PyCFunction) _wrap_GraphicsMatrix_Scale, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_Rotate", (PyCFunction) _wrap_GraphicsMatrix_Rotate, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_TransformPoint", (PyCFunction) _wrap_GraphicsMatrix_TransformPoint, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_TransformDistance", (PyCFunction) _wrap_GraphicsMatrix_TransformDistance, METH_VARARGS | METH_KEYWORDS, NULL},
-        { (char *)"GraphicsMatrix_GetNativeMatrix", (PyCFunction)_wrap_GraphicsMatrix_GetNativeMatrix, METH_O, NULL},
-        { (char *)"GraphicsMatrix_swigregister", GraphicsMatrix_swigregister, METH_VARARGS, NULL},
         { (char *)"delete_GraphicsContext", (PyCFunction)_wrap_delete_GraphicsContext, METH_O, NULL},
         { (char *)"GraphicsContext_Create", _wrap_GraphicsContext_Create, METH_VARARGS, NULL},
         { (char *)"GraphicsContext_CreateFromNative", (PyCFunction) _wrap_GraphicsContext_CreateFromNative, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -38391,6 +38494,9 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"GraphicsContext_Translate", (PyCFunction) _wrap_GraphicsContext_Translate, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GraphicsContext_Scale", (PyCFunction) _wrap_GraphicsContext_Scale, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GraphicsContext_Rotate", (PyCFunction) _wrap_GraphicsContext_Rotate, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsContext_ConcatTransform", (PyCFunction) _wrap_GraphicsContext_ConcatTransform, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsContext_SetTransform", (PyCFunction) _wrap_GraphicsContext_SetTransform, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GraphicsContext_GetTransform", (PyCFunction)_wrap_GraphicsContext_GetTransform, METH_O, NULL},
         { (char *)"GraphicsContext_SetPen", _wrap_GraphicsContext_SetPen, METH_VARARGS, NULL},
         { (char *)"GraphicsContext_SetBrush", _wrap_GraphicsContext_SetBrush, METH_VARARGS, NULL},
         { (char *)"GraphicsContext_SetFont", _wrap_GraphicsContext_SetFont, METH_VARARGS, NULL},
@@ -40691,6 +40797,8 @@ SWIGEXPORT void SWIG_init(void) {
   SWIG_addvarlink(SWIG_globals(),(char*)"NullGraphicsPen",NullGraphicsPen_get, NullGraphicsPen_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"NullGraphicsBrush",NullGraphicsBrush_get, NullGraphicsBrush_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"NullGraphicsFont",NullGraphicsFont_get, NullGraphicsFont_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"NullGraphicsMatrix",NullGraphicsMatrix_get, NullGraphicsMatrix_set);
+  SWIG_addvarlink(SWIG_globals(),(char*)"NullGraphicsPath",NullGraphicsPath_get, NullGraphicsPath_set);
   SWIG_Python_SetConstant(d, "IMAGELIST_DRAW_NORMAL",SWIG_From_int(static_cast< int >(wxIMAGELIST_DRAW_NORMAL)));
   SWIG_Python_SetConstant(d, "IMAGELIST_DRAW_TRANSPARENT",SWIG_From_int(static_cast< int >(wxIMAGELIST_DRAW_TRANSPARENT)));
   SWIG_Python_SetConstant(d, "IMAGELIST_DRAW_SELECTED",SWIG_From_int(static_cast< int >(wxIMAGELIST_DRAW_SELECTED)));