From e91a9dfcc3589df1d3577bb8d4695f269405a52b Mon Sep 17 00:00:00 2001
From: Robin Dunn <robin@alldunn.com>
Date: Fri, 10 Sep 1999 06:25:47 +0000
Subject: [PATCH] wxPython module for OGL added.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 utils/wxPython/demo/Main.py               |    12 +-
 utils/wxPython/demo/wxOGL.py              |   209 +
 utils/wxPython/modules/ogl/.cvsignore     |     5 +
 utils/wxPython/modules/ogl/_extras.py     |    35 +
 utils/wxPython/modules/ogl/_ogldefs.i     |    61 +
 utils/wxPython/modules/ogl/build.cfg      |    17 +
 utils/wxPython/modules/ogl/ogl.cpp        |   650 ++
 utils/wxPython/modules/ogl/ogl.i          |   179 +
 utils/wxPython/modules/ogl/ogl.py         |   154 +
 utils/wxPython/modules/ogl/oglbasic.cpp   |  8602 ++++++++++++++
 utils/wxPython/modules/ogl/oglbasic.i     |   380 +
 utils/wxPython/modules/ogl/oglbasic.py    |   788 ++
 utils/wxPython/modules/ogl/oglc.def       |     2 +
 utils/wxPython/modules/ogl/oglcanvas.cpp  |  2363 ++++
 utils/wxPython/modules/ogl/oglcanvas.i    |   157 +
 utils/wxPython/modules/ogl/oglcanvas.py   |   224 +
 utils/wxPython/modules/ogl/oglhelpers.cpp |   135 +
 utils/wxPython/modules/ogl/oglhelpers.h   |   251 +
 utils/wxPython/modules/ogl/oglshapes.cpp  | 11706 ++++++++++++++++++++
 utils/wxPython/modules/ogl/oglshapes.i    |   515 +
 utils/wxPython/modules/ogl/oglshapes.py   |  1071 ++
 utils/wxPython/modules/ogl/oglshapes2.cpp |  8282 ++++++++++++++
 utils/wxPython/modules/ogl/oglshapes2.i   |   369 +
 utils/wxPython/modules/ogl/oglshapes2.py  |   764 ++
 24 files changed, 36927 insertions(+), 4 deletions(-)
 create mode 100644 utils/wxPython/demo/wxOGL.py
 create mode 100644 utils/wxPython/modules/ogl/.cvsignore
 create mode 100644 utils/wxPython/modules/ogl/_extras.py
 create mode 100644 utils/wxPython/modules/ogl/_ogldefs.i
 create mode 100644 utils/wxPython/modules/ogl/build.cfg
 create mode 100644 utils/wxPython/modules/ogl/ogl.cpp
 create mode 100644 utils/wxPython/modules/ogl/ogl.i
 create mode 100644 utils/wxPython/modules/ogl/ogl.py
 create mode 100644 utils/wxPython/modules/ogl/oglbasic.cpp
 create mode 100644 utils/wxPython/modules/ogl/oglbasic.i
 create mode 100644 utils/wxPython/modules/ogl/oglbasic.py
 create mode 100644 utils/wxPython/modules/ogl/oglc.def
 create mode 100644 utils/wxPython/modules/ogl/oglcanvas.cpp
 create mode 100644 utils/wxPython/modules/ogl/oglcanvas.i
 create mode 100644 utils/wxPython/modules/ogl/oglcanvas.py
 create mode 100644 utils/wxPython/modules/ogl/oglhelpers.cpp
 create mode 100644 utils/wxPython/modules/ogl/oglhelpers.h
 create mode 100644 utils/wxPython/modules/ogl/oglshapes.cpp
 create mode 100644 utils/wxPython/modules/ogl/oglshapes.i
 create mode 100644 utils/wxPython/modules/ogl/oglshapes.py
 create mode 100644 utils/wxPython/modules/ogl/oglshapes2.cpp
 create mode 100644 utils/wxPython/modules/ogl/oglshapes2.i
 create mode 100644 utils/wxPython/modules/ogl/oglshapes2.py

diff --git a/utils/wxPython/demo/Main.py b/utils/wxPython/demo/Main.py
index 0d820d7ade..92630666ee 100644
--- a/utils/wxPython/demo/Main.py
+++ b/utils/wxPython/demo/Main.py
@@ -38,7 +38,7 @@ _treeList = [
     ('Window Layout', ['wxLayoutConstraints', 'Sizers']),
 
     ('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage',
-                      'PrintFramework']),
+                      'PrintFramework', 'wxOGL']),
 
     ('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog',
                           'wxMultipleChoiceDialog', 'wxPlotCanvas']),
@@ -188,6 +188,7 @@ class wxPythonDemo(wxFrame):
             #self.nb.ResizeChildren();
             self.nb.Refresh();
             #wxYield()
+            self.window = None
 
         else:
             if os.path.exists(itemText + '.py'):
@@ -199,15 +200,16 @@ class wxPythonDemo(wxFrame):
                 self.nb.Refresh();
                 wxYield()
 
-                window = module.runTest(self, self.nb, self)
-                if window:
-                    self.nb.AddPage(window, 'Demo')
+                self.window = module.runTest(self, self.nb, self)
+                if self.window:
+                    self.nb.AddPage(self.window, 'Demo')
                     self.nb.SetSelection(2)
                     self.nb.ResizeChildren();
 
             else:
                 self.ovr.Clear()
                 self.txt.Clear()
+                self.window = None
 
 
     #---------------------------------------------
@@ -254,12 +256,14 @@ class wxPythonDemo(wxFrame):
     #---------------------------------------------
     def OnCloseWindow(self, event):
         self.dying = true
+        self.window = None
         self.Destroy()
 
     #---------------------------------------------
     def OnIdle(self, event):
         if self.otherWin:
             self.otherWin.Raise()
+            self.window = self.otherWin
             self.otherWin = None
 
 
diff --git a/utils/wxPython/demo/wxOGL.py b/utils/wxPython/demo/wxOGL.py
new file mode 100644
index 0000000000..7c4eccd72d
--- /dev/null
+++ b/utils/wxPython/demo/wxOGL.py
@@ -0,0 +1,209 @@
+
+from wxPython.wx import *
+from wxPython.ogl import *
+
+#----------------------------------------------------------------------
+# This creates some pens and brushes that the OGL library uses.
+
+wxOGLInitialize()
+
+#----------------------------------------------------------------------
+
+class DiamondShape(wxPolygonShape):
+    def __init__(self, w=0.0, h=0.0):
+        wxPolygonShape.__init__(self)
+        if w == 0.0:
+            w = 60.0
+        if h == 0.0:
+            h = 60.0
+
+        ## Either wxRealPoints or 2-tuples of floats  works.
+
+        #points = [ wxRealPoint(0.0,    -h/2.0),
+        #          wxRealPoint(w/2.0,  0.0),
+        #          wxRealPoint(0.0,    h/2.0),
+        #          wxRealPoint(-w/2.0, 0.0),
+        #          ]
+        points = [ (0.0,    -h/2.0),
+                   (w/2.0,  0.0),
+                   (0.0,    h/2.0),
+                   (-w/2.0, 0.0),
+                   ]
+
+        self.Create(points)
+
+
+#----------------------------------------------------------------------
+
+class RoundedRectangleShape(wxRectangleShape):
+    def __init__(self, w=0.0, h=0.0):
+        wxRectangleShape.__init__(self, w, h)
+        self.SetCornerRadius(-0.3)
+
+
+#----------------------------------------------------------------------
+
+class MyEvtHandler(wxShapeEvtHandler):
+    def __init__(self, log, frame):
+        wxShapeEvtHandler.__init__(self)
+        self.log = log
+        self.statbarFrame = frame
+
+
+    def UpdateStatusBar(self, shape):
+        x,y = shape.GetX(), shape.GetY()
+        width, height = shape.GetBoundingBoxMax()
+        self.statbarFrame.SetStatusText("Pos: (%d,%d)  Size: (%d, %d)" %
+                                        (x, y, width, height))
+
+
+    def OnLeftClick(self, x, y, keys = 0, attachment = 0):
+        shape = self.GetShape()
+        canvas = shape.GetCanvas()
+        dc = wxClientDC(canvas)
+        canvas.PrepareDC(dc)
+
+        if shape.Selected():
+            shape.Select(false, dc)
+            canvas.Redraw(dc)
+        else:
+            redraw = false
+            shapeList = canvas.GetDiagram().GetShapeList()
+            toUnselect = []
+            for s in shapeList:
+                if s.Selected():
+                    # If we unselect it now then some of the objects in
+                    # shapeList will become invalid (the control points are
+                    # shapes too!) and bad things will happen...
+                    toUnselect.append(s)
+
+            shape.Select(true, dc)
+
+            if toUnselect:
+                for s in toUnselect:
+                    s.Select(false, dc)
+                canvas.Redraw(dc)
+
+        self.UpdateStatusBar(shape)
+
+
+    def OnEndDragLeft(self, x, y, keys = 0, attachment = 0):
+        shape = self.GetShape()
+        self.base_OnEndDragLeft(x, y, keys, attachment)
+        if not shape.Selected():
+            self.OnLeftClick(x, y, keys, attachment)
+        self.UpdateStatusBar(shape)
+
+
+    def OnSize(self, x, y):
+        self.base_OnSize(x, y)
+        self.UpdateStatusBar(self.GetShape())
+
+
+#    def OnMovePost(self, dc, x, y, oldX, oldY, display):
+#        self.base_OnMovePost(dc, x, y, oldX, oldY, display)
+#        self.UpdateStatusBar(self.GetShape())
+
+
+    def OnRightClick(self, *dontcare):
+        self.log.WriteText("%s\n" % self.GetShape())
+
+
+#----------------------------------------------------------------------
+
+class TestWindow(wxShapeCanvas):
+    def __init__(self, parent, log, frame):
+        wxShapeCanvas.__init__(self, parent)
+
+        self.log = log
+        self.frame = frame
+        self.SetBackgroundColour(wxWHITE)
+        self.diagram = wxDiagram()
+        self.SetDiagram(self.diagram)
+        self.diagram.SetCanvas(self)
+        self.shapes = []
+
+        self.MyAddShape(wxCircleShape(80), 100, 100, wxPen(wxBLUE, 3), wxGREEN_BRUSH)
+        self.MyAddShape(wxRectangleShape(85, 50), 305, 60, wxBLACK_PEN, wxLIGHT_GREY_BRUSH)
+        self.MyAddShape(DiamondShape(90, 90), 345, 235, wxPen(wxBLUE, 3, wxDOT), wxRED_BRUSH)
+        self.MyAddShape(RoundedRectangleShape(95,70), 140, 255, wxPen(wxRED, 1), wxBLUE_BRUSH)
+
+        dc = wxClientDC(self)
+        self.PrepareDC(dc)
+        for x in range(len(self.shapes)):
+            fromShape = self.shapes[x]
+            if x+1 == len(self.shapes):
+                toShape = self.shapes[0]
+            else:
+                toShape = self.shapes[x+1]
+            line = wxLineShape()
+            line.SetCanvas(self)
+            line.SetPen(wxBLACK_PEN)
+            line.SetBrush(wxBLACK_BRUSH)
+            line.AddArrow(ARROW_ARROW)
+            line.MakeLineControlPoints(2)
+            fromShape.AddLine(line, toShape)
+            self.diagram.AddShape(line)
+            line.Show(true)
+
+            # for some reason, the shapes have to be moved for the line to show up...
+            fromShape.Move(dc, fromShape.GetX(), fromShape.GetY())
+
+
+
+    def MyAddShape(self, shape, x, y, pen, brush):
+        shape.SetDraggable(true)
+        shape.SetCanvas(self)
+        shape.SetX(x)
+        shape.SetY(y)
+        shape.SetPen(pen)
+        shape.SetBrush(brush)
+        #shape.SetShadowMode(SHADOW_RIGHT)
+        self.diagram.AddShape(shape)
+        shape.Show(true)
+
+        evthandler = MyEvtHandler(self.log, self.frame)
+        evthandler.SetShape(shape)
+        evthandler.SetPreviousHandler(shape.GetEventHandler())
+        shape.SetEventHandler(evthandler)
+
+        self.shapes.append(shape)
+
+
+    def __del__(self):
+        for shape in self.diagram.GetShapeList():
+            if shape.GetParent() == None:
+                shape.SetCanvas(None)
+                shape.Destroy()
+
+
+#----------------------------------------------------------------------
+
+def runTest(frame, nb, log):
+    win = TestWindow(nb, log, frame)
+    return win
+
+#----------------------------------------------------------------------
+
+class __Cleanup:
+    cleanup = wxOGLCleanUp
+    def __del__(self):
+        self.cleanup()
+
+# when this module gets cleaned up then wxOGLCleanUp() will get called
+__cu = __Cleanup()
+
+
+
+
+
+
+
+
+overview = """\
+The Object Graphics Library is a library supporting the creation and
+manipulation of simple and complex graphic images on a canvas.
+
+"""
+
+
diff --git a/utils/wxPython/modules/ogl/.cvsignore b/utils/wxPython/modules/ogl/.cvsignore
new file mode 100644
index 0000000000..7fde13a490
--- /dev/null
+++ b/utils/wxPython/modules/ogl/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+oglc.exp
+oglc.ilk
+oglc.pch
+oglc.pyd
diff --git a/utils/wxPython/modules/ogl/_extras.py b/utils/wxPython/modules/ogl/_extras.py
new file mode 100644
index 0000000000..4e8e26345d
--- /dev/null
+++ b/utils/wxPython/modules/ogl/_extras.py
@@ -0,0 +1,35 @@
+
+wxShapeCanvas =       wxPyShapeCanvas
+wxShapeEvtHandler =   wxPyShapeEvtHandler
+wxShape =             wxPyShape
+wxRectangleShape =    wxPyRectangleShape
+wxBitmapShape =       wxPyBitmapShape
+wxDrawnShape =        wxPyDrawnShape
+wxCompositeShape =    wxPyCompositeShape
+wxDividedShape =      wxPyDividedShape
+wxDivisionShape =     wxPyDivisionShape
+wxEllipseShape =      wxPyEllipseShape
+wxCircleShape =       wxPyCircleShape
+wxLineShape =         wxPyLineShape
+wxPolygonShape =      wxPyPolygonShape
+wxTextShape =         wxPyTextShape
+
+
+# Stuff these names into the wx namespace so wxPyConstructObject can find them
+import wx
+wx.wxPyShapeCanvasPtr     = wxPyShapeCanvasPtr
+wx.wxPyShapeEvtHandlerPtr = wxPyShapeEvtHandlerPtr
+wx.wxPyShapePtr           = wxPyShapePtr
+wx.wxPyRectangleShapePtr  = wxPyRectangleShapePtr
+wx.wxPyBitmapShapePtr     = wxPyBitmapShapePtr
+wx.wxPyDrawnShapePtr      = wxPyDrawnShapePtr
+wx.wxPyCompositeShapePtr  = wxPyCompositeShapePtr
+wx.wxPyDividedShapePtr    = wxPyDividedShapePtr
+wx.wxPyDivisionShapePtr   = wxPyDivisionShapePtr
+wx.wxPyEllipseShapePtr    = wxPyEllipseShapePtr
+wx.wxPyCircleShapePtr     = wxPyCircleShapePtr
+wx.wxPyLineShapePtr       = wxPyLineShapePtr
+wx.wxPyPolygonShapePtr    = wxPyPolygonShapePtr
+wx.wxPyTextShapePtr       = wxPyTextShapePtr
+wx.wxShapeRegionPtr       = wxShapeRegionPtr
+wx.wxOGLConstraintPtr     = wxOGLConstraintPtr
diff --git a/utils/wxPython/modules/ogl/_ogldefs.i b/utils/wxPython/modules/ogl/_ogldefs.i
new file mode 100644
index 0000000000..1ecc3f8581
--- /dev/null
+++ b/utils/wxPython/modules/ogl/_ogldefs.i
@@ -0,0 +1,61 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        _ogldefs.i
+// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
+//
+// Author:      Robin Dunn
+//
+// Created:     27-Aug-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+//---------------------------------------------------------------------------
+
+
+class wxOGLConstraint;
+class wxBitmapShape;
+class wxDiagram;
+class wxDrawnShape;
+class wxCircleShape;
+class wxCompositeShape;
+class wxDividedShape;
+class wxDivisionShape;
+class wxEllipseShape;
+class wxLineShape;
+class wxPolygonShape;
+class wxRectangleShape;
+class wxPseudoMetaFile;
+class wxShape;
+class wxShapeCanvas;
+class wxShapeEvtHandler;
+class wxTextShape;
+
+class wxPyOGLConstraint;
+class wxPyBitmapShape;
+class wxPyDiagram;
+class wxPyDrawnShape;
+class wxPyCircleShape;
+class wxPyCompositeShape;
+class wxPyDividedShape;
+class wxPyDivisionShape;
+class wxPyEllipseShape;
+class wxPyLineShape;
+class wxPyPolygonShape;
+class wxPyRectangleShape;
+class wxPyPseudoMetaFile;
+class wxPyShape;
+class wxPyShapeCanvas;
+class wxPyShapeEvtHandler;
+class wxPyTextShape;
+
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+
+
+
+
diff --git a/utils/wxPython/modules/ogl/build.cfg b/utils/wxPython/modules/ogl/build.cfg
new file mode 100644
index 0000000000..cc9d54edf1
--- /dev/null
+++ b/utils/wxPython/modules/ogl/build.cfg
@@ -0,0 +1,17 @@
+# -*- python -*-
+
+MODULE = 'oglc'
+SWIGFILES = ['ogl.i', 'oglbasic.i', 'oglshapes.i', 'oglshapes2.i', 'oglcanvas.i']
+SOURCES = ['oglhelpers.cpp']
+
+
+OTHERCFLAGS = '-I$(WXWIN)/utils/ogl/src'
+OTHERLIBS = '$(WXWIN)/lib/ogl$(LIBEXT).lib'
+
+#OTHERSWIGFLAGS = '-stat'
+SWIGDEPS = '_ogldefs.i'
+OTHERDEPS = 'oglhelpers.h $(WXPSRCDIR)/helpers.h'
+
+
+# There are no platform differences so we don't need separate code directories
+GENCODEDIR='.'
diff --git a/utils/wxPython/modules/ogl/ogl.cpp b/utils/wxPython/modules/ogl/ogl.cpp
new file mode 100644
index 0000000000..95b9804cb4
--- /dev/null
+++ b/utils/wxPython/modules/ogl/ogl.cpp
@@ -0,0 +1,650 @@
+/*
+ * FILE : ./ogl.cpp
+ * 
+ * This file was automatically generated by :
+ * Simplified Wrapper and Interface Generator (SWIG)
+ * Version 1.1 (Build 810)
+ * 
+ * Portions Copyright (c) 1995-1998
+ * The University of Utah and The Regents of the University of California.
+ * Permission is granted to distribute this file in any manner provided
+ * this notice remains intact.
+ * 
+ * Do not make changes to this file--changes will be lost!
+ *
+ */
+
+
+#define SWIGCODE
+/* Implementation : PYTHON */
+
+#define SWIGPYTHON
+#include <string.h>
+#include <stdlib.h>
+/* Definitions for Windows/Unix exporting */
+#if defined(__WIN32__)
+#   if defined(_MSC_VER)
+#	define SWIGEXPORT(a) __declspec(dllexport) a
+#   else
+#	if defined(__BORLANDC__)
+#	    define SWIGEXPORT(a) a _export 
+#	else
+#	    define SWIGEXPORT(a) a 
+#	endif
+#   endif
+#else
+#   define SWIGEXPORT(a) a 
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "Python.h"
+extern void SWIG_MakePtr(char *, void *, char *);
+extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
+extern char *SWIG_GetPtr(char *, void **, char *);
+extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
+extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
+extern PyObject *SWIG_newvarlink(void);
+#ifdef __cplusplus
+}
+#endif
+#define SWIG_init    initoglc
+
+#define SWIG_name    "oglc"
+
+#include "helpers.h"
+#include "oglhelpers.h"
+#include <ogl.h>
+#include <basicp.h>
+#include <constrnt.h>
+#include <bmpshape.h>
+#include <drawn.h>
+
+static PyObject* l_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyList_Check(target)) {
+            o2 = target;
+            target = PyList_New(0);
+            PyList_Append(target, o2);
+	    Py_XDECREF(o2);
+        }
+        PyList_Append(target,o);
+	Py_XDECREF(o);
+    }
+    return target;
+}
+
+static PyObject* t_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyTuple_Check(target)) {
+            o2 = target;
+            target = PyTuple_New(1);
+            PyTuple_SetItem(target, 0, o2);
+        }
+        o3 = PyTuple_New(1);            
+        PyTuple_SetItem(o3, 0, o);      
+
+        o2 = target;
+        target = PySequence_Concat(o2, o3); 
+        Py_DECREF(o2);                      
+        Py_DECREF(o3);
+    }
+    return target;
+}
+
+
+HELPEREXPORT byte* byte_LIST_helper(PyObject* source);
+HELPEREXPORT int* int_LIST_helper(PyObject* source);
+HELPEREXPORT long* long_LIST_helper(PyObject* source);
+HELPEREXPORT char** string_LIST_helper(PyObject* source);
+HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source);
+HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source);
+HELPEREXPORT wxString* wxString_LIST_helper(PyObject* source);
+HELPEREXPORT wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
+
+
+static char* wxStringErrorMsg = "string type is required for parameter";
+
+#if defined(__WXMSW__)
+    wxString wxPyEmptyStr("");
+    wxPoint  wxPyDefaultPosition(-1, -1);
+    wxSize   wxPyDefaultSize(-1, -1);
+#endif
+
+extern "C" SWIGEXPORT(void) initoglbasicc();
+extern "C" SWIGEXPORT(void) initoglshapesc();
+extern "C" SWIGEXPORT(void) initoglshapes2c();
+extern "C" SWIGEXPORT(void) initoglcanvasc();
+#ifdef __cplusplus
+extern "C" {
+#endif
+static PyObject *_wrap_wxOGLInitialize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    char *_kwnames[] = {  NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":wxOGLInitialize",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxOGLInitialize();
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyObject *_wrap_wxOGLCleanUp(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    char *_kwnames[] = {  NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":wxOGLCleanUp",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxOGLCleanUp();
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyMethodDef oglcMethods[] = {
+	 { "wxOGLCleanUp", (PyCFunction) _wrap_wxOGLCleanUp, METH_VARARGS | METH_KEYWORDS },
+	 { "wxOGLInitialize", (PyCFunction) _wrap_wxOGLInitialize, METH_VARARGS | METH_KEYWORDS },
+	 { NULL, NULL }
+};
+#ifdef __cplusplus
+}
+#endif
+/*
+ * This table is used by the pointer type-checker
+ */
+static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
+    { "_wxAcceleratorTable","_class_wxAcceleratorTable",0},
+    { "_wxEvent","_class_wxEvent",0},
+    { "_class_wxActivateEvent","_wxActivateEvent",0},
+    { "_signed_long","_long",0},
+    { "_wxMenuEvent","_class_wxMenuEvent",0},
+    { "_class_wxJPEGHandler","_wxJPEGHandler",0},
+    { "_wxBMPHandler","_class_wxBMPHandler",0},
+    { "_wxImage","_class_wxImage",0},
+    { "_wxPrintQuality","_int",0},
+    { "_wxPrintQuality","_signed_int",0},
+    { "_wxPrintQuality","_unsigned_int",0},
+    { "_wxPrintQuality","_wxWindowID",0},
+    { "_wxPrintQuality","_uint",0},
+    { "_wxPrintQuality","_EBool",0},
+    { "_wxPrintQuality","_size_t",0},
+    { "_wxFontData","_class_wxFontData",0},
+    { "___wxPyCleanup","_class___wxPyCleanup",0},
+    { "_class_wxRegionIterator","_wxRegionIterator",0},
+    { "_class_wxMenuBar","_wxMenuBar",0},
+    { "_class_wxPyTreeItemData","_wxPyTreeItemData",0},
+    { "_class_wxEvtHandler","_wxEvtHandler",0},
+    { "_wxPaintEvent","_class_wxPaintEvent",0},
+    { "_wxGIFHandler","_class_wxGIFHandler",0},
+    { "_wxPyCompositeShape","_class_wxPyCompositeShape",0},
+    { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
+    { "_wxCursor","_class_wxCursor",0},
+    { "_wxNotifyEvent","_class_wxNotifyEvent",0},
+    { "_wxImageHandler","_class_wxImageHandler",0},
+    { "_class_wxPyRectangleShape","_wxPyRectangleShape",0},
+    { "_class_wxTreeCtrl","_wxTreeCtrl",0},
+    { "_wxMask","_class_wxMask",0},
+    { "_wxToolTip","_class_wxToolTip",0},
+    { "_wxGrid","_class_wxGrid",0},
+    { "_wxPNGHandler","_class_wxPNGHandler",0},
+    { "_class_wxOGLConstraint","_wxOGLConstraint",0},
+    { "_class_wxColourData","_wxColourData",0},
+    { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0},
+    { "_wxPrinter","_class_wxPrinter",0},
+    { "_wxPseudoMetaFile","_class_wxPseudoMetaFile",0},
+    { "_class_wxArrowHead","_wxArrowHead",0},
+    { "_wxPen","_class_wxPen",0},
+    { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0},
+    { "_byte","_unsigned_char",0},
+    { "_wxStaticBox","_class_wxStaticBox",0},
+    { "_wxChoice","_class_wxChoice",0},
+    { "_wxSlider","_class_wxSlider",0},
+    { "_wxNotebookEvent","_class_wxNotebookEvent",0},
+    { "_wxPyPrintout","_class_wxPyPrintout",0},
+    { "_wxShapeRegion","_class_wxShapeRegion",0},
+    { "_long","_wxDash",0},
+    { "_long","_unsigned_long",0},
+    { "_long","_signed_long",0},
+    { "_wxImageList","_class_wxImageList",0},
+    { "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
+    { "_wxBitmapButton","_class_wxBitmapButton",0},
+    { "_wxSashWindow","_class_wxSashWindow",0},
+    { "_class_wxPrintDialogData","_wxPrintDialogData",0},
+    { "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
+    { "_class_wxGauge","_wxGauge",0},
+    { "_class_wxSashEvent","_wxSashEvent",0},
+    { "_wxDC","_class_wxDC",0},
+    { "_wxListEvent","_class_wxListEvent",0},
+    { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0},
+    { "_wxProgressDialog","_class_wxProgressDialog",0},
+    { "_class_wxBMPHandler","_wxBMPHandler",0},
+    { "_wxPrintPreview","_class_wxPrintPreview",0},
+    { "_wxSpinEvent","_class_wxSpinEvent",0},
+    { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0},
+    { "_wxPyBitmapShape","_class_wxPyBitmapShape",0},
+    { "_class_wxPyEllipseShape","_wxPyEllipseShape",0},
+    { "_size_t","_wxPrintQuality",0},
+    { "_size_t","_unsigned_int",0},
+    { "_size_t","_int",0},
+    { "_size_t","_wxWindowID",0},
+    { "_size_t","_uint",0},
+    { "_class_wxRealPoint","_wxRealPoint",0},
+    { "_wxPrinterDC","_class_wxPrinterDC",0},
+    { "_class_wxPyShapeEvtHandler","_wxPyShapeEvtHandler",0},
+    { "_class_wxMenuItem","_wxMenuItem",0},
+    { "_class_wxPaintEvent","_wxPaintEvent",0},
+    { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
+    { "_class_wxStatusBar","_wxStatusBar",0},
+    { "_class_wxGIFHandler","_wxGIFHandler",0},
+    { "_class_wxPyCompositeShape","_wxPyCompositeShape",0},
+    { "_wxPyPolygonShape","_class_wxPyPolygonShape",0},
+    { "_wxPanel","_class_wxPanel",0},
+    { "_wxInitDialogEvent","_class_wxInitDialogEvent",0},
+    { "_wxCheckBox","_class_wxCheckBox",0},
+    { "_wxPyEvent","_class_wxPyEvent",0},
+    { "_wxTextCtrl","_class_wxTextCtrl",0},
+    { "_class_wxMask","_wxMask",0},
+    { "_class_wxToolTip","_wxToolTip",0},
+    { "_class_wxKeyEvent","_wxKeyEvent",0},
+    { "_class_wxGrid","_wxGrid",0},
+    { "_class_wxPNGHandler","_wxPNGHandler",0},
+    { "_wxColour","_class_wxColour",0},
+    { "_class_wxDialog","_wxDialog",0},
+    { "_wxPageSetupDialog","_class_wxPageSetupDialog",0},
+    { "_class_wxPrinter","_wxPrinter",0},
+    { "_wxIdleEvent","_class_wxIdleEvent",0},
+    { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
+    { "_wxToolBar","_class_wxToolBar",0},
+    { "_wxStaticLine","_class_wxStaticLine",0},
+    { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0},
+    { "_wxBrush","_class_wxBrush",0},
+    { "_wxMiniFrame","_class_wxMiniFrame",0},
+    { "_class_wxNotebookEvent","_wxNotebookEvent",0},
+    { "_class_wxPyPrintout","_wxPyPrintout",0},
+    { "_class_wxSashWindow","_wxSashWindow",0},
+    { "_wxShowEvent","_class_wxShowEvent",0},
+    { "_class_wxPyDivisionShape","_wxPyDivisionShape",0},
+    { "_uint","_wxPrintQuality",0},
+    { "_uint","_size_t",0},
+    { "_uint","_unsigned_int",0},
+    { "_uint","_int",0},
+    { "_uint","_wxWindowID",0},
+    { "_class_wxEvent","_wxEvent",0},
+    { "_wxCheckListBox","_class_wxCheckListBox",0},
+    { "_wxSplitterEvent","_class_wxSplitterEvent",0},
+    { "_wxGridEvent","_class_wxGridEvent",0},
+    { "_wxRect","_class_wxRect",0},
+    { "_wxCommandEvent","_class_wxCommandEvent",0},
+    { "_wxPyShapeCanvas","_class_wxPyShapeCanvas",0},
+    { "_wxSizeEvent","_class_wxSizeEvent",0},
+    { "_class_wxImage","_wxImage",0},
+    { "_wxPoint","_class_wxPoint",0},
+    { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0},
+    { "_class_wxPyBitmapShape","_wxPyBitmapShape",0},
+    { "_class_wxButton","_wxButton",0},
+    { "_wxRadioBox","_class_wxRadioBox",0},
+    { "_class_wxFontData","_wxFontData",0},
+    { "_class___wxPyCleanup","___wxPyCleanup",0},
+    { "_wxBitmap","_class_wxBitmap",0},
+    { "_wxTaskBarIcon","_class_wxTaskBarIcon",0},
+    { "_wxPrintDialog","_class_wxPrintDialog",0},
+    { "_wxPyTimer","_class_wxPyTimer",0},
+    { "_wxWindowDC","_class_wxWindowDC",0},
+    { "_wxScrollBar","_class_wxScrollBar",0},
+    { "_wxSpinButton","_class_wxSpinButton",0},
+    { "_wxToolBarTool","_class_wxToolBarTool",0},
+    { "_wxColourDialog","_class_wxColourDialog",0},
+    { "_wxPrintData","_class_wxPrintData",0},
+    { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
+    { "_class_wxNotifyEvent","_wxNotifyEvent",0},
+    { "_wxMessageDialog","_class_wxMessageDialog",0},
+    { "_class_wxPyEvent","_wxPyEvent",0},
+    { "_wxTextEntryDialog","_class_wxTextEntryDialog",0},
+    { "_class_wxIconizeEvent","_wxIconizeEvent",0},
+    { "_class_wxStaticBitmap","_wxStaticBitmap",0},
+    { "_class_wxPyDrawnShape","_wxPyDrawnShape",0},
+    { "_wxMDIChildFrame","_class_wxMDIChildFrame",0},
+    { "_wxListItem","_class_wxListItem",0},
+    { "_class_wxPseudoMetaFile","_wxPseudoMetaFile",0},
+    { "_class_wxToolBar","_wxToolBar",0},
+    { "_class_wxStaticLine","_wxStaticLine",0},
+    { "_wxScrollEvent","_class_wxScrollEvent",0},
+    { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0},
+    { "_class_wxShapeRegion","_wxShapeRegion",0},
+    { "_EBool","_wxPrintQuality",0},
+    { "_EBool","_signed_int",0},
+    { "_EBool","_int",0},
+    { "_EBool","_wxWindowID",0},
+    { "_class_wxRegion","_wxRegion",0},
+    { "_class_wxDropFilesEvent","_wxDropFilesEvent",0},
+    { "_class_wxPreviewFrame","_wxPreviewFrame",0},
+    { "_wxStaticText","_class_wxStaticText",0},
+    { "_wxFont","_class_wxFont",0},
+    { "_wxCloseEvent","_class_wxCloseEvent",0},
+    { "_class_wxSplitterEvent","_wxSplitterEvent",0},
+    { "_wxNotebook","_class_wxNotebook",0},
+    { "_unsigned_long","_wxDash",0},
+    { "_unsigned_long","_long",0},
+    { "_class_wxRect","_wxRect",0},
+    { "_class_wxDC","_wxDC",0},
+    { "_wxPyCircleShape","_class_wxPyCircleShape",0},
+    { "_class_wxPyShapeCanvas","_wxPyShapeCanvas",0},
+    { "_class_wxProgressDialog","_wxProgressDialog",0},
+    { "_wxPyApp","_class_wxPyApp",0},
+    { "_wxMDIParentFrame","_class_wxMDIParentFrame",0},
+    { "_class_wxTreeEvent","_wxTreeEvent",0},
+    { "_class_wxDirDialog","_wxDirDialog",0},
+    { "_wxPyLineShape","_class_wxPyLineShape",0},
+    { "_class_wxPyTimer","_wxPyTimer",0},
+    { "_wxFocusEvent","_class_wxFocusEvent",0},
+    { "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
+    { "_class_wxSpinButton","_wxSpinButton",0},
+    { "_class_wxPyPolygonShape","_wxPyPolygonShape",0},
+    { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
+    { "_class_wxPanel","_wxPanel",0},
+    { "_class_wxCheckBox","_wxCheckBox",0},
+    { "_wxComboBox","_class_wxComboBox",0},
+    { "_wxRadioButton","_class_wxRadioButton",0},
+    { "_class_wxMessageDialog","_wxMessageDialog",0},
+    { "_signed_int","_wxPrintQuality",0},
+    { "_signed_int","_EBool",0},
+    { "_signed_int","_wxWindowID",0},
+    { "_signed_int","_int",0},
+    { "_class_wxTextCtrl","_wxTextCtrl",0},
+    { "_wxLayoutConstraints","_class_wxLayoutConstraints",0},
+    { "_wxMetaFileDC","_class_wxMetaFileDC",0},
+    { "_wxMenu","_class_wxMenu",0},
+    { "_class_wxMoveEvent","_wxMoveEvent",0},
+    { "_wxListBox","_class_wxListBox",0},
+    { "_wxScreenDC","_class_wxScreenDC",0},
+    { "_class_wxMDIChildFrame","_wxMDIChildFrame",0},
+    { "_wxArrowHead","_class_wxArrowHead",0},
+    { "_WXTYPE","_short",0},
+    { "_WXTYPE","_signed_short",0},
+    { "_WXTYPE","_unsigned_short",0},
+    { "_wxFileDialog","_class_wxFileDialog",0},
+    { "_class_wxMDIClientWindow","_wxMDIClientWindow",0},
+    { "_class_wxBrush","_wxBrush",0},
+    { "_unsigned_short","_WXTYPE",0},
+    { "_unsigned_short","_short",0},
+    { "_class_wxWindow","_wxWindow",0},
+    { "_wxSplitterWindow","_class_wxSplitterWindow",0},
+    { "_class_wxStaticText","_wxStaticText",0},
+    { "_wxPrintDialogData","_class_wxPrintDialogData",0},
+    { "_class_wxFont","_wxFont",0},
+    { "_class_wxCloseEvent","_wxCloseEvent",0},
+    { "_wxSashEvent","_class_wxSashEvent",0},
+    { "_class_wxMenuEvent","_wxMenuEvent",0},
+    { "_class_wxPyCircleShape","_wxPyCircleShape",0},
+    { "_wxClientDC","_class_wxClientDC",0},
+    { "_wxMouseEvent","_class_wxMouseEvent",0},
+    { "_wxListCtrl","_class_wxListCtrl",0},
+    { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0},
+    { "_wxPyDividedShape","_class_wxPyDividedShape",0},
+    { "_class_wxPoint","_wxPoint",0},
+    { "_wxRealPoint","_class_wxRealPoint",0},
+    { "_class_wxRadioBox","_wxRadioBox",0},
+    { "_wxGridCell","_class_wxGridCell",0},
+    { "_signed_short","_WXTYPE",0},
+    { "_signed_short","_short",0},
+    { "_wxMemoryDC","_class_wxMemoryDC",0},
+    { "_class_wxTaskBarIcon","_wxTaskBarIcon",0},
+    { "_class_wxPrintDialog","_wxPrintDialog",0},
+    { "_wxPaintDC","_class_wxPaintDC",0},
+    { "_class_wxWindowDC","_wxWindowDC",0},
+    { "_class_wxFocusEvent","_wxFocusEvent",0},
+    { "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
+    { "_wxStatusBar","_class_wxStatusBar",0},
+    { "_class_wxToolBarTool","_wxToolBarTool",0},
+    { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
+    { "_class_wxCursor","_wxCursor",0},
+    { "_class_wxImageHandler","_wxImageHandler",0},
+    { "_wxPyShape","_class_wxPyShape",0},
+    { "_wxScrolledWindow","_class_wxScrolledWindow",0},
+    { "_wxTreeItemId","_class_wxTreeItemId",0},
+    { "_unsigned_char","_byte",0},
+    { "_class_wxMetaFileDC","_wxMetaFileDC",0},
+    { "_class_wxMenu","_wxMenu",0},
+    { "_wxControl","_class_wxControl",0},
+    { "_class_wxListBox","_wxListBox",0},
+    { "_unsigned_int","_wxPrintQuality",0},
+    { "_unsigned_int","_size_t",0},
+    { "_unsigned_int","_uint",0},
+    { "_unsigned_int","_wxWindowID",0},
+    { "_unsigned_int","_int",0},
+    { "_wxIcon","_class_wxIcon",0},
+    { "_wxDialog","_class_wxDialog",0},
+    { "_class_wxListItem","_wxListItem",0},
+    { "_class_wxPen","_wxPen",0},
+    { "_class_wxFileDialog","_wxFileDialog",0},
+    { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0},
+    { "_short","_WXTYPE",0},
+    { "_short","_unsigned_short",0},
+    { "_short","_signed_short",0},
+    { "_class_wxStaticBox","_wxStaticBox",0},
+    { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0},
+    { "_wxPyTextShape","_class_wxPyTextShape",0},
+    { "_class_wxScrollEvent","_wxScrollEvent",0},
+    { "_wxJoystickEvent","_class_wxJoystickEvent",0},
+    { "_class_wxChoice","_wxChoice",0},
+    { "_class_wxSlider","_wxSlider",0},
+    { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0},
+    { "_class_wxImageList","_wxImageList",0},
+    { "_class_wxBitmapButton","_wxBitmapButton",0},
+    { "_wxFrame","_class_wxFrame",0},
+    { "_wxPyDivisionShape","_class_wxPyDivisionShape",0},
+    { "_class_wxNotebook","_wxNotebook",0},
+    { "_wxJPEGHandler","_class_wxJPEGHandler",0},
+    { "_wxWindowID","_wxPrintQuality",0},
+    { "_wxWindowID","_size_t",0},
+    { "_wxWindowID","_EBool",0},
+    { "_wxWindowID","_uint",0},
+    { "_wxWindowID","_int",0},
+    { "_wxWindowID","_signed_int",0},
+    { "_wxWindowID","_unsigned_int",0},
+    { "_int","_wxPrintQuality",0},
+    { "_int","_size_t",0},
+    { "_int","_EBool",0},
+    { "_int","_uint",0},
+    { "_int","_wxWindowID",0},
+    { "_int","_unsigned_int",0},
+    { "_int","_signed_int",0},
+    { "_class_wxMouseEvent","_wxMouseEvent",0},
+    { "_class_wxListEvent","_wxListEvent",0},
+    { "_class_wxPrintPreview","_wxPrintPreview",0},
+    { "_class_wxSpinEvent","_wxSpinEvent",0},
+    { "_wxButton","_class_wxButton",0},
+    { "_class_wxPyApp","_wxPyApp",0},
+    { "_wxSize","_class_wxSize",0},
+    { "_wxRegionIterator","_class_wxRegionIterator",0},
+    { "_class_wxPrinterDC","_wxPrinterDC",0},
+    { "_class_wxMDIParentFrame","_wxMDIParentFrame",0},
+    { "_wxPyTreeItemData","_class_wxPyTreeItemData",0},
+    { "_class_wxPyLineShape","_wxPyLineShape",0},
+    { "_class_wxPaintDC","_wxPaintDC",0},
+    { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
+    { "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
+    { "_class_wxComboBox","_wxComboBox",0},
+    { "_class_wxRadioButton","_wxRadioButton",0},
+    { "_class_wxPyShape","_wxPyShape",0},
+    { "_class_wxTreeItemId","_wxTreeItemId",0},
+    { "_wxTreeCtrl","_class_wxTreeCtrl",0},
+    { "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
+    { "_wxIconizeEvent","_class_wxIconizeEvent",0},
+    { "_class_wxControl","_wxControl",0},
+    { "_wxStaticBitmap","_class_wxStaticBitmap",0},
+    { "_wxPyDrawnShape","_class_wxPyDrawnShape",0},
+    { "_class_wxIcon","_wxIcon",0},
+    { "_class_wxColour","_wxColour",0},
+    { "_class_wxScreenDC","_wxScreenDC",0},
+    { "_class_wxPageSetupDialog","_wxPageSetupDialog",0},
+    { "_wxPalette","_class_wxPalette",0},
+    { "_class_wxIdleEvent","_wxIdleEvent",0},
+    { "_wxEraseEvent","_class_wxEraseEvent",0},
+    { "_class_wxJoystickEvent","_wxJoystickEvent",0},
+    { "_class_wxMiniFrame","_wxMiniFrame",0},
+    { "_wxFontDialog","_class_wxFontDialog",0},
+    { "_wxRegion","_class_wxRegion",0},
+    { "_class_wxSplitterWindow","_wxSplitterWindow",0},
+    { "_wxPreviewFrame","_class_wxPreviewFrame",0},
+    { "_class_wxShowEvent","_wxShowEvent",0},
+    { "_wxDiagram","_class_wxDiagram",0},
+    { "_wxActivateEvent","_class_wxActivateEvent",0},
+    { "_wxGauge","_class_wxGauge",0},
+    { "_class_wxCheckListBox","_wxCheckListBox",0},
+    { "_class_wxGridEvent","_wxGridEvent",0},
+    { "_class_wxCommandEvent","_wxCommandEvent",0},
+    { "_class_wxClientDC","_wxClientDC",0},
+    { "_class_wxSizeEvent","_wxSizeEvent",0},
+    { "_class_wxListCtrl","_wxListCtrl",0},
+    { "_class_wxPyDividedShape","_wxPyDividedShape",0},
+    { "_wxPyEllipseShape","_class_wxPyEllipseShape",0},
+    { "_class_wxGridCell","_wxGridCell",0},
+    { "_class_wxSize","_wxSize",0},
+    { "_class_wxBitmap","_wxBitmap",0},
+    { "_class_wxMemoryDC","_wxMemoryDC",0},
+    { "_wxMenuBar","_class_wxMenuBar",0},
+    { "_wxTreeEvent","_class_wxTreeEvent",0},
+    { "_wxDirDialog","_class_wxDirDialog",0},
+    { "_wxPyShapeEvtHandler","_class_wxPyShapeEvtHandler",0},
+    { "_wxEvtHandler","_class_wxEvtHandler",0},
+    { "_wxMenuItem","_class_wxMenuItem",0},
+    { "_class_wxScrollBar","_wxScrollBar",0},
+    { "_class_wxColourDialog","_wxColourDialog",0},
+    { "_class_wxPrintData","_wxPrintData",0},
+    { "_wxDash","_unsigned_long",0},
+    { "_wxDash","_long",0},
+    { "_wxPyRectangleShape","_class_wxPyRectangleShape",0},
+    { "_class_wxScrolledWindow","_wxScrolledWindow",0},
+    { "_class_wxTextEntryDialog","_wxTextEntryDialog",0},
+    { "_wxKeyEvent","_class_wxKeyEvent",0},
+    { "_wxMoveEvent","_class_wxMoveEvent",0},
+    { "_wxOGLConstraint","_class_wxOGLConstraint",0},
+    { "_wxColourData","_class_wxColourData",0},
+    { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0},
+    { "_class_wxPalette","_wxPalette",0},
+    { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0},
+    { "_class_wxEraseEvent","_wxEraseEvent",0},
+    { "_wxMDIClientWindow","_class_wxMDIClientWindow",0},
+    { "_class_wxPyTextShape","_wxPyTextShape",0},
+    { "_class_wxFontDialog","_wxFontDialog",0},
+    { "_wxWindow","_class_wxWindow",0},
+    { "_class_wxFrame","_wxFrame",0},
+    { "_class_wxDiagram","_wxDiagram",0},
+{0,0,0}};
+
+static PyObject *SWIG_globals;
+#ifdef __cplusplus
+extern "C" 
+#endif
+SWIGEXPORT(void) initoglc() {
+	 PyObject *m, *d;
+	 SWIG_globals = SWIG_newvarlink();
+	 m = Py_InitModule("oglc", oglcMethods);
+	 d = PyModule_GetDict(m);
+	 PyDict_SetItemString(d,"KEY_SHIFT", PyInt_FromLong((long) KEY_SHIFT));
+	 PyDict_SetItemString(d,"KEY_CTRL", PyInt_FromLong((long) KEY_CTRL));
+	 PyDict_SetItemString(d,"ARROW_NONE", PyInt_FromLong((long) ARROW_NONE));
+	 PyDict_SetItemString(d,"ARROW_END", PyInt_FromLong((long) ARROW_END));
+	 PyDict_SetItemString(d,"ARROW_BOTH", PyInt_FromLong((long) ARROW_BOTH));
+	 PyDict_SetItemString(d,"ARROW_MIDDLE", PyInt_FromLong((long) ARROW_MIDDLE));
+	 PyDict_SetItemString(d,"ARROW_START", PyInt_FromLong((long) ARROW_START));
+	 PyDict_SetItemString(d,"ARROW_HOLLOW_CIRCLE", PyInt_FromLong((long) ARROW_HOLLOW_CIRCLE));
+	 PyDict_SetItemString(d,"ARROW_FILLED_CIRCLE", PyInt_FromLong((long) ARROW_FILLED_CIRCLE));
+	 PyDict_SetItemString(d,"ARROW_ARROW", PyInt_FromLong((long) ARROW_ARROW));
+	 PyDict_SetItemString(d,"ARROW_SINGLE_OBLIQUE", PyInt_FromLong((long) ARROW_SINGLE_OBLIQUE));
+	 PyDict_SetItemString(d,"ARROW_DOUBLE_OBLIQUE", PyInt_FromLong((long) ARROW_DOUBLE_OBLIQUE));
+	 PyDict_SetItemString(d,"ARROW_METAFILE", PyInt_FromLong((long) ARROW_METAFILE));
+	 PyDict_SetItemString(d,"ARROW_POSITION_END", PyInt_FromLong((long) ARROW_POSITION_END));
+	 PyDict_SetItemString(d,"ARROW_POSITION_START", PyInt_FromLong((long) ARROW_POSITION_START));
+	 PyDict_SetItemString(d,"CONTROL_POINT_VERTICAL", PyInt_FromLong((long) CONTROL_POINT_VERTICAL));
+	 PyDict_SetItemString(d,"CONTROL_POINT_HORIZONTAL", PyInt_FromLong((long) CONTROL_POINT_HORIZONTAL));
+	 PyDict_SetItemString(d,"CONTROL_POINT_DIAGONAL", PyInt_FromLong((long) CONTROL_POINT_DIAGONAL));
+	 PyDict_SetItemString(d,"CONTROL_POINT_ENDPOINT_TO", PyInt_FromLong((long) CONTROL_POINT_ENDPOINT_TO));
+	 PyDict_SetItemString(d,"CONTROL_POINT_ENDPOINT_FROM", PyInt_FromLong((long) CONTROL_POINT_ENDPOINT_FROM));
+	 PyDict_SetItemString(d,"CONTROL_POINT_LINE", PyInt_FromLong((long) CONTROL_POINT_LINE));
+	 PyDict_SetItemString(d,"FORMAT_NONE", PyInt_FromLong((long) FORMAT_NONE));
+	 PyDict_SetItemString(d,"FORMAT_CENTRE_HORIZ", PyInt_FromLong((long) FORMAT_CENTRE_HORIZ));
+	 PyDict_SetItemString(d,"FORMAT_CENTRE_VERT", PyInt_FromLong((long) FORMAT_CENTRE_VERT));
+	 PyDict_SetItemString(d,"FORMAT_SIZE_TO_CONTENTS", PyInt_FromLong((long) FORMAT_SIZE_TO_CONTENTS));
+	 PyDict_SetItemString(d,"LINE_ALIGNMENT_HORIZ", PyInt_FromLong((long) LINE_ALIGNMENT_HORIZ));
+	 PyDict_SetItemString(d,"LINE_ALIGNMENT_VERT", PyInt_FromLong((long) LINE_ALIGNMENT_VERT));
+	 PyDict_SetItemString(d,"LINE_ALIGNMENT_TO_NEXT_HANDLE", PyInt_FromLong((long) LINE_ALIGNMENT_TO_NEXT_HANDLE));
+	 PyDict_SetItemString(d,"LINE_ALIGNMENT_NONE", PyInt_FromLong((long) LINE_ALIGNMENT_NONE));
+	 PyDict_SetItemString(d,"SHADOW_NONE", PyInt_FromLong((long) SHADOW_NONE));
+	 PyDict_SetItemString(d,"SHADOW_LEFT", PyInt_FromLong((long) SHADOW_LEFT));
+	 PyDict_SetItemString(d,"SHADOW_RIGHT", PyInt_FromLong((long) SHADOW_RIGHT));
+	 PyDict_SetItemString(d,"OP_CLICK_LEFT", PyInt_FromLong((long) OP_CLICK_LEFT));
+	 PyDict_SetItemString(d,"OP_CLICK_RIGHT", PyInt_FromLong((long) OP_CLICK_RIGHT));
+	 PyDict_SetItemString(d,"OP_DRAG_LEFT", PyInt_FromLong((long) OP_DRAG_LEFT));
+	 PyDict_SetItemString(d,"OP_DRAG_RIGHT", PyInt_FromLong((long) OP_DRAG_RIGHT));
+	 PyDict_SetItemString(d,"OP_ALL", PyInt_FromLong((long) OP_ALL));
+	 PyDict_SetItemString(d,"ATTACHMENT_MODE_NONE", PyInt_FromLong((long) ATTACHMENT_MODE_NONE));
+	 PyDict_SetItemString(d,"ATTACHMENT_MODE_EDGE", PyInt_FromLong((long) ATTACHMENT_MODE_EDGE));
+	 PyDict_SetItemString(d,"ATTACHMENT_MODE_BRANCHING", PyInt_FromLong((long) ATTACHMENT_MODE_BRANCHING));
+	 PyDict_SetItemString(d,"BRANCHING_ATTACHMENT_NORMAL", PyInt_FromLong((long) BRANCHING_ATTACHMENT_NORMAL));
+	 PyDict_SetItemString(d,"BRANCHING_ATTACHMENT_BLOB", PyInt_FromLong((long) BRANCHING_ATTACHMENT_BLOB));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_CENTRED_VERTICALLY", PyInt_FromLong((long) gyCONSTRAINT_CENTRED_VERTICALLY));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_CENTRED_HORIZONTALLY", PyInt_FromLong((long) gyCONSTRAINT_CENTRED_HORIZONTALLY));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_CENTRED_BOTH", PyInt_FromLong((long) gyCONSTRAINT_CENTRED_BOTH));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_LEFT_OF", PyInt_FromLong((long) gyCONSTRAINT_LEFT_OF));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_RIGHT_OF", PyInt_FromLong((long) gyCONSTRAINT_RIGHT_OF));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_ABOVE", PyInt_FromLong((long) gyCONSTRAINT_ABOVE));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_BELOW", PyInt_FromLong((long) gyCONSTRAINT_BELOW));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_TOP", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_TOP));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_BOTTOM", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_BOTTOM));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_LEFT", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_LEFT));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_ALIGNED_RIGHT", PyInt_FromLong((long) gyCONSTRAINT_ALIGNED_RIGHT));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_TOP", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_TOP));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_BOTTOM", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_BOTTOM));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_LEFT", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_LEFT));
+	 PyDict_SetItemString(d,"gyCONSTRAINT_MIDALIGNED_RIGHT", PyInt_FromLong((long) gyCONSTRAINT_MIDALIGNED_RIGHT));
+	 PyDict_SetItemString(d,"DIVISION_SIDE_NONE", PyInt_FromLong((long) DIVISION_SIDE_NONE));
+	 PyDict_SetItemString(d,"DIVISION_SIDE_LEFT", PyInt_FromLong((long) DIVISION_SIDE_LEFT));
+	 PyDict_SetItemString(d,"DIVISION_SIDE_TOP", PyInt_FromLong((long) DIVISION_SIDE_TOP));
+	 PyDict_SetItemString(d,"DIVISION_SIDE_RIGHT", PyInt_FromLong((long) DIVISION_SIDE_RIGHT));
+	 PyDict_SetItemString(d,"DIVISION_SIDE_BOTTOM", PyInt_FromLong((long) DIVISION_SIDE_BOTTOM));
+
+
+    initoglbasicc();
+    initoglshapesc();
+    initoglshapes2c();
+    initoglcanvasc();
+
+
+    wxClassInfo::CleanUpClasses();
+    wxClassInfo::InitializeClasses();
+
+{
+   int i;
+   for (i = 0; _swig_mapping[i].n1; i++)
+        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
+}
+}
diff --git a/utils/wxPython/modules/ogl/ogl.i b/utils/wxPython/modules/ogl/ogl.i
new file mode 100644
index 0000000000..6c140befb5
--- /dev/null
+++ b/utils/wxPython/modules/ogl/ogl.i
@@ -0,0 +1,179 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        ogl.i
+// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
+//
+// Author:      Robin Dunn
+//
+// Created:     30-June-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+%module ogl
+
+%{
+#include "helpers.h"
+#include "oglhelpers.h"
+#include <ogl.h>
+#include <basicp.h>
+#include <constrnt.h>
+#include <bmpshape.h>
+#include <drawn.h>
+%}
+
+//---------------------------------------------------------------------------
+
+%include typemaps.i
+%include my_typemaps.i
+
+%extern wx.i
+%import windows.i
+%extern _defs.i
+%extern misc.i
+%extern gdi.i
+
+%include _ogldefs.i
+
+%import oglbasic.i
+%import oglshapes.i
+%import oglshapes2.i
+%import oglcanvas.i
+
+
+%{
+#if defined(__WXMSW__)
+    wxString wxPyEmptyStr("");
+    wxPoint  wxPyDefaultPosition(-1, -1);
+    wxSize   wxPyDefaultSize(-1, -1);
+#endif
+%}
+
+%pragma(python) code = "import wx"
+
+//---------------------------------------------------------------------------
+
+
+enum {
+    KEY_SHIFT,
+    KEY_CTRL,
+    ARROW_NONE,
+    ARROW_END,
+    ARROW_BOTH,
+    ARROW_MIDDLE,
+    ARROW_START,
+    ARROW_HOLLOW_CIRCLE,
+    ARROW_FILLED_CIRCLE,
+    ARROW_ARROW,
+    ARROW_SINGLE_OBLIQUE,
+    ARROW_DOUBLE_OBLIQUE,
+    ARROW_METAFILE,
+    ARROW_POSITION_END,
+    ARROW_POSITION_START,
+    CONTROL_POINT_VERTICAL,
+    CONTROL_POINT_HORIZONTAL,
+    CONTROL_POINT_DIAGONAL,
+    CONTROL_POINT_ENDPOINT_TO,
+    CONTROL_POINT_ENDPOINT_FROM,
+    CONTROL_POINT_LINE,
+    FORMAT_NONE,
+    FORMAT_CENTRE_HORIZ,
+    FORMAT_CENTRE_VERT,
+    FORMAT_SIZE_TO_CONTENTS,
+    LINE_ALIGNMENT_HORIZ,
+    LINE_ALIGNMENT_VERT,
+    LINE_ALIGNMENT_TO_NEXT_HANDLE,
+    LINE_ALIGNMENT_NONE,
+    SHADOW_NONE,
+    SHADOW_LEFT,
+    SHADOW_RIGHT,
+//      SHAPE_BASIC,
+//      SHAPE_RECTANGLE,
+//      SHAPE_ELLIPSE,
+//      SHAPE_POLYGON,
+//      SHAPE_CIRCLE,
+//      SHAPE_LINE,
+//      SHAPE_DIVIDED_RECTANGLE,
+//      SHAPE_COMPOSITE,
+//      SHAPE_CONTROL_POINT,
+//      SHAPE_DRAWN,
+//      SHAPE_DIVISION,
+//      SHAPE_LABEL_OBJECT,
+//      SHAPE_BITMAP,
+//      SHAPE_DIVIDED_OBJECT_CONTROL_POINT,
+//      OBJECT_REGION,
+    OP_CLICK_LEFT,
+    OP_CLICK_RIGHT,
+    OP_DRAG_LEFT,
+    OP_DRAG_RIGHT,
+    OP_ALL,
+    ATTACHMENT_MODE_NONE,
+    ATTACHMENT_MODE_EDGE,
+    ATTACHMENT_MODE_BRANCHING,
+    BRANCHING_ATTACHMENT_NORMAL,
+    BRANCHING_ATTACHMENT_BLOB,
+
+    gyCONSTRAINT_CENTRED_VERTICALLY,
+    gyCONSTRAINT_CENTRED_HORIZONTALLY,
+    gyCONSTRAINT_CENTRED_BOTH,
+    gyCONSTRAINT_LEFT_OF,
+    gyCONSTRAINT_RIGHT_OF,
+    gyCONSTRAINT_ABOVE,
+    gyCONSTRAINT_BELOW,
+    gyCONSTRAINT_ALIGNED_TOP,
+    gyCONSTRAINT_ALIGNED_BOTTOM,
+    gyCONSTRAINT_ALIGNED_LEFT,
+    gyCONSTRAINT_ALIGNED_RIGHT,
+    gyCONSTRAINT_MIDALIGNED_TOP,
+    gyCONSTRAINT_MIDALIGNED_BOTTOM,
+    gyCONSTRAINT_MIDALIGNED_LEFT,
+    gyCONSTRAINT_MIDALIGNED_RIGHT,
+
+    DIVISION_SIDE_NONE,
+    DIVISION_SIDE_LEFT,
+    DIVISION_SIDE_TOP,
+    DIVISION_SIDE_RIGHT,
+    DIVISION_SIDE_BOTTOM,
+
+};
+
+
+
+//---------------------------------------------------------------------------
+
+void wxOGLInitialize();
+void wxOGLCleanUp();
+
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+%{
+extern "C" SWIGEXPORT(void) initoglbasicc();
+extern "C" SWIGEXPORT(void) initoglshapesc();
+extern "C" SWIGEXPORT(void) initoglshapes2c();
+extern "C" SWIGEXPORT(void) initoglcanvasc();
+%}
+
+%init %{
+
+    initoglbasicc();
+    initoglshapesc();
+    initoglshapes2c();
+    initoglcanvasc();
+
+
+    wxClassInfo::CleanUpClasses();
+    wxClassInfo::InitializeClasses();
+
+%}
+
+//----------------------------------------------------------------------
+// And this gets appended to the shadow class file.
+//----------------------------------------------------------------------
+
+%pragma(python) include="_extras.py";
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
diff --git a/utils/wxPython/modules/ogl/ogl.py b/utils/wxPython/modules/ogl/ogl.py
new file mode 100644
index 0000000000..dbd21d30f3
--- /dev/null
+++ b/utils/wxPython/modules/ogl/ogl.py
@@ -0,0 +1,154 @@
+# This file was created automatically by SWIG.
+import oglc
+
+from misc import *
+
+from misc2 import *
+
+from windows import *
+
+from gdi import *
+
+from events import *
+
+from mdi import *
+
+from frames import *
+
+from stattool import *
+
+from controls import *
+
+from controls2 import *
+
+from windows2 import *
+
+from cmndlgs import *
+
+from windows3 import *
+
+from image import *
+
+from printfw import *
+
+from oglbasic import *
+
+from oglshapes import *
+
+from oglshapes2 import *
+
+from oglcanvas import *
+import wx
+
+
+#-------------- FUNCTION WRAPPERS ------------------
+
+wxOGLInitialize = oglc.wxOGLInitialize
+
+wxOGLCleanUp = oglc.wxOGLCleanUp
+
+
+
+#-------------- VARIABLE WRAPPERS ------------------
+
+KEY_SHIFT = oglc.KEY_SHIFT
+KEY_CTRL = oglc.KEY_CTRL
+ARROW_NONE = oglc.ARROW_NONE
+ARROW_END = oglc.ARROW_END
+ARROW_BOTH = oglc.ARROW_BOTH
+ARROW_MIDDLE = oglc.ARROW_MIDDLE
+ARROW_START = oglc.ARROW_START
+ARROW_HOLLOW_CIRCLE = oglc.ARROW_HOLLOW_CIRCLE
+ARROW_FILLED_CIRCLE = oglc.ARROW_FILLED_CIRCLE
+ARROW_ARROW = oglc.ARROW_ARROW
+ARROW_SINGLE_OBLIQUE = oglc.ARROW_SINGLE_OBLIQUE
+ARROW_DOUBLE_OBLIQUE = oglc.ARROW_DOUBLE_OBLIQUE
+ARROW_METAFILE = oglc.ARROW_METAFILE
+ARROW_POSITION_END = oglc.ARROW_POSITION_END
+ARROW_POSITION_START = oglc.ARROW_POSITION_START
+CONTROL_POINT_VERTICAL = oglc.CONTROL_POINT_VERTICAL
+CONTROL_POINT_HORIZONTAL = oglc.CONTROL_POINT_HORIZONTAL
+CONTROL_POINT_DIAGONAL = oglc.CONTROL_POINT_DIAGONAL
+CONTROL_POINT_ENDPOINT_TO = oglc.CONTROL_POINT_ENDPOINT_TO
+CONTROL_POINT_ENDPOINT_FROM = oglc.CONTROL_POINT_ENDPOINT_FROM
+CONTROL_POINT_LINE = oglc.CONTROL_POINT_LINE
+FORMAT_NONE = oglc.FORMAT_NONE
+FORMAT_CENTRE_HORIZ = oglc.FORMAT_CENTRE_HORIZ
+FORMAT_CENTRE_VERT = oglc.FORMAT_CENTRE_VERT
+FORMAT_SIZE_TO_CONTENTS = oglc.FORMAT_SIZE_TO_CONTENTS
+LINE_ALIGNMENT_HORIZ = oglc.LINE_ALIGNMENT_HORIZ
+LINE_ALIGNMENT_VERT = oglc.LINE_ALIGNMENT_VERT
+LINE_ALIGNMENT_TO_NEXT_HANDLE = oglc.LINE_ALIGNMENT_TO_NEXT_HANDLE
+LINE_ALIGNMENT_NONE = oglc.LINE_ALIGNMENT_NONE
+SHADOW_NONE = oglc.SHADOW_NONE
+SHADOW_LEFT = oglc.SHADOW_LEFT
+SHADOW_RIGHT = oglc.SHADOW_RIGHT
+OP_CLICK_LEFT = oglc.OP_CLICK_LEFT
+OP_CLICK_RIGHT = oglc.OP_CLICK_RIGHT
+OP_DRAG_LEFT = oglc.OP_DRAG_LEFT
+OP_DRAG_RIGHT = oglc.OP_DRAG_RIGHT
+OP_ALL = oglc.OP_ALL
+ATTACHMENT_MODE_NONE = oglc.ATTACHMENT_MODE_NONE
+ATTACHMENT_MODE_EDGE = oglc.ATTACHMENT_MODE_EDGE
+ATTACHMENT_MODE_BRANCHING = oglc.ATTACHMENT_MODE_BRANCHING
+BRANCHING_ATTACHMENT_NORMAL = oglc.BRANCHING_ATTACHMENT_NORMAL
+BRANCHING_ATTACHMENT_BLOB = oglc.BRANCHING_ATTACHMENT_BLOB
+gyCONSTRAINT_CENTRED_VERTICALLY = oglc.gyCONSTRAINT_CENTRED_VERTICALLY
+gyCONSTRAINT_CENTRED_HORIZONTALLY = oglc.gyCONSTRAINT_CENTRED_HORIZONTALLY
+gyCONSTRAINT_CENTRED_BOTH = oglc.gyCONSTRAINT_CENTRED_BOTH
+gyCONSTRAINT_LEFT_OF = oglc.gyCONSTRAINT_LEFT_OF
+gyCONSTRAINT_RIGHT_OF = oglc.gyCONSTRAINT_RIGHT_OF
+gyCONSTRAINT_ABOVE = oglc.gyCONSTRAINT_ABOVE
+gyCONSTRAINT_BELOW = oglc.gyCONSTRAINT_BELOW
+gyCONSTRAINT_ALIGNED_TOP = oglc.gyCONSTRAINT_ALIGNED_TOP
+gyCONSTRAINT_ALIGNED_BOTTOM = oglc.gyCONSTRAINT_ALIGNED_BOTTOM
+gyCONSTRAINT_ALIGNED_LEFT = oglc.gyCONSTRAINT_ALIGNED_LEFT
+gyCONSTRAINT_ALIGNED_RIGHT = oglc.gyCONSTRAINT_ALIGNED_RIGHT
+gyCONSTRAINT_MIDALIGNED_TOP = oglc.gyCONSTRAINT_MIDALIGNED_TOP
+gyCONSTRAINT_MIDALIGNED_BOTTOM = oglc.gyCONSTRAINT_MIDALIGNED_BOTTOM
+gyCONSTRAINT_MIDALIGNED_LEFT = oglc.gyCONSTRAINT_MIDALIGNED_LEFT
+gyCONSTRAINT_MIDALIGNED_RIGHT = oglc.gyCONSTRAINT_MIDALIGNED_RIGHT
+DIVISION_SIDE_NONE = oglc.DIVISION_SIDE_NONE
+DIVISION_SIDE_LEFT = oglc.DIVISION_SIDE_LEFT
+DIVISION_SIDE_TOP = oglc.DIVISION_SIDE_TOP
+DIVISION_SIDE_RIGHT = oglc.DIVISION_SIDE_RIGHT
+DIVISION_SIDE_BOTTOM = oglc.DIVISION_SIDE_BOTTOM
+
+
+#-------------- USER INCLUDE -----------------------
+
+
+wxShapeCanvas =       wxPyShapeCanvas
+wxShapeEvtHandler =   wxPyShapeEvtHandler
+wxShape =             wxPyShape
+wxRectangleShape =    wxPyRectangleShape
+wxBitmapShape =       wxPyBitmapShape
+wxDrawnShape =        wxPyDrawnShape
+wxCompositeShape =    wxPyCompositeShape
+wxDividedShape =      wxPyDividedShape
+wxDivisionShape =     wxPyDivisionShape
+wxEllipseShape =      wxPyEllipseShape
+wxCircleShape =       wxPyCircleShape
+wxLineShape =         wxPyLineShape
+wxPolygonShape =      wxPyPolygonShape
+wxTextShape =         wxPyTextShape
+
+
+# Stuff these names into the wx namespace so wxPyConstructObject can find them
+import wx
+wx.wxPyShapeCanvasPtr     = wxPyShapeCanvasPtr
+wx.wxPyShapeEvtHandlerPtr = wxPyShapeEvtHandlerPtr
+wx.wxPyShapePtr           = wxPyShapePtr
+wx.wxPyRectangleShapePtr  = wxPyRectangleShapePtr
+wx.wxPyBitmapShapePtr     = wxPyBitmapShapePtr
+wx.wxPyDrawnShapePtr      = wxPyDrawnShapePtr
+wx.wxPyCompositeShapePtr  = wxPyCompositeShapePtr
+wx.wxPyDividedShapePtr    = wxPyDividedShapePtr
+wx.wxPyDivisionShapePtr   = wxPyDivisionShapePtr
+wx.wxPyEllipseShapePtr    = wxPyEllipseShapePtr
+wx.wxPyCircleShapePtr     = wxPyCircleShapePtr
+wx.wxPyLineShapePtr       = wxPyLineShapePtr
+wx.wxPyPolygonShapePtr    = wxPyPolygonShapePtr
+wx.wxPyTextShapePtr       = wxPyTextShapePtr
+wx.wxShapeRegionPtr       = wxShapeRegionPtr
+wx.wxOGLConstraintPtr     = wxOGLConstraintPtr
diff --git a/utils/wxPython/modules/ogl/oglbasic.cpp b/utils/wxPython/modules/ogl/oglbasic.cpp
new file mode 100644
index 0000000000..768f1c1ff9
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglbasic.cpp
@@ -0,0 +1,8602 @@
+/*
+ * FILE : ./oglbasic.cpp
+ * 
+ * This file was automatically generated by :
+ * Simplified Wrapper and Interface Generator (SWIG)
+ * Version 1.1 (Build 810)
+ * 
+ * Portions Copyright (c) 1995-1998
+ * The University of Utah and The Regents of the University of California.
+ * Permission is granted to distribute this file in any manner provided
+ * this notice remains intact.
+ * 
+ * Do not make changes to this file--changes will be lost!
+ *
+ */
+
+
+#define SWIGCODE
+/* Implementation : PYTHON */
+
+#define SWIGPYTHON
+#include <string.h>
+#include <stdlib.h>
+/* Definitions for Windows/Unix exporting */
+#if defined(__WIN32__)
+#   if defined(_MSC_VER)
+#	define SWIGEXPORT(a) __declspec(dllexport) a
+#   else
+#	if defined(__BORLANDC__)
+#	    define SWIGEXPORT(a) a _export 
+#	else
+#	    define SWIGEXPORT(a) a 
+#	endif
+#   endif
+#else
+#   define SWIGEXPORT(a) a 
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "Python.h"
+extern void SWIG_MakePtr(char *, void *, char *);
+extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
+extern char *SWIG_GetPtr(char *, void **, char *);
+extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
+extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
+extern PyObject *SWIG_newvarlink(void);
+#ifdef __cplusplus
+}
+#endif
+#define SWIG_init    initoglbasicc
+
+#define SWIG_name    "oglbasicc"
+
+#include "helpers.h"
+#include "oglhelpers.h"
+
+static PyObject* l_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyList_Check(target)) {
+            o2 = target;
+            target = PyList_New(0);
+            PyList_Append(target, o2);
+	    Py_XDECREF(o2);
+        }
+        PyList_Append(target,o);
+	Py_XDECREF(o);
+    }
+    return target;
+}
+
+static PyObject* t_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyTuple_Check(target)) {
+            o2 = target;
+            target = PyTuple_New(1);
+            PyTuple_SetItem(target, 0, o2);
+        }
+        o3 = PyTuple_New(1);            
+        PyTuple_SetItem(o3, 0, o);      
+
+        o2 = target;
+        target = PySequence_Concat(o2, o3); 
+        Py_DECREF(o2);                      
+        Py_DECREF(o3);
+    }
+    return target;
+}
+
+
+HELPEREXPORT byte* byte_LIST_helper(PyObject* source);
+HELPEREXPORT int* int_LIST_helper(PyObject* source);
+HELPEREXPORT long* long_LIST_helper(PyObject* source);
+HELPEREXPORT char** string_LIST_helper(PyObject* source);
+HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source);
+HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source);
+HELPEREXPORT wxString* wxString_LIST_helper(PyObject* source);
+HELPEREXPORT wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
+
+
+static char* wxStringErrorMsg = "string type is required for parameter";
+
+    WXSHAPE_IMP_CALLBACKS(wxPyShapeEvtHandler,wxShapeEvtHandler);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyShape, wxShape);
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define new_wxShapeRegion() (new wxShapeRegion())
+static PyObject *_wrap_new_wxShapeRegion(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxShapeRegion",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxShapeRegion *)new_wxShapeRegion();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxShapeRegion_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetText(_swigobj,_swigarg0)  (_swigobj->SetText(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","s", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxShapeRegion_SetText",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetText. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetText(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetFont(_swigobj,_swigarg0)  (_swigobj->SetFont(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    wxFont * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","f", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxShapeRegion_SetFont",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetFont. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFont_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxShapeRegion_SetFont. Expected _wxFont_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetFont(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetMinSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetMinSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_SetMinSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxShapeRegion_SetMinSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetMinSize. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetMinSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_SetSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxShapeRegion_SetSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetSize. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetPosition(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetPosition(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_SetPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxShapeRegion_SetPosition",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetPosition. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetPosition(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetProportions(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetProportions(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_SetProportions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxShapeRegion_SetProportions",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetProportions. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetProportions(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetFormatMode(_swigobj,_swigarg0)  (_swigobj->SetFormatMode(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetFormatMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","mode", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxShapeRegion_SetFormatMode",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetFormatMode. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetFormatMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetName(_swigobj,_swigarg0)  (_swigobj->SetName(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetName(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","s", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxShapeRegion_SetName",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetName. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetName(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetColour(_swigobj,_swigarg0)  (_swigobj->SetColour(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","col", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxShapeRegion_SetColour",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetColour. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetText(_swigobj)  (_swigobj->GetText())
+static PyObject *_wrap_wxShapeRegion_GetText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetText",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetText. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxShapeRegion_GetText(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetFont(_swigobj)  (_swigobj->GetFont())
+static PyObject *_wrap_wxShapeRegion_GetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxFont * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetFont",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetFont. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxFont *)wxShapeRegion_GetFont(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetMinSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetMinSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_GetMinSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double * _arg1;
+    double * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxShapeRegion_GetMinSize",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetMinSize. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxShapeRegion_GetMinSize. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxShapeRegion_GetMinSize. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_GetMinSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetProportion(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetProportion(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_GetProportion(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double * _arg1;
+    double * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxShapeRegion_GetProportion",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetProportion. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxShapeRegion_GetProportion. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxShapeRegion_GetProportion. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_GetProportion(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_GetSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double * _arg1;
+    double * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxShapeRegion_GetSize",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetSize. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxShapeRegion_GetSize. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxShapeRegion_GetSize. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_GetSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetPosition(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetPosition(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxShapeRegion_GetPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    double * _arg1;
+    double * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","xp","yp", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxShapeRegion_GetPosition",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetPosition. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxShapeRegion_GetPosition. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxShapeRegion_GetPosition. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_GetPosition(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetFormatMode(_swigobj)  (_swigobj->GetFormatMode())
+static PyObject *_wrap_wxShapeRegion_GetFormatMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetFormatMode",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetFormatMode. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxShapeRegion_GetFormatMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetName(_swigobj)  (_swigobj->GetName())
+static PyObject *_wrap_wxShapeRegion_GetName(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetName",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetName. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxShapeRegion_GetName(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetColour(_swigobj)  (_swigobj->GetColour())
+static PyObject *_wrap_wxShapeRegion_GetColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetColour",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetColour. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxShapeRegion_GetColour(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetActualColourObject(_swigobj)  (_swigobj->GetActualColourObject())
+static PyObject *_wrap_wxShapeRegion_GetActualColourObject(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxColour * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetActualColourObject",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetActualColourObject. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxColour *)wxShapeRegion_GetActualColourObject(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetFormattedText(_swigobj)  (_swigobj->GetFormattedText())
+static PyObject *_wrap_wxShapeRegion_GetFormattedText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxList * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetFormattedText",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetFormattedText. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxList & _result_ref = wxShapeRegion_GetFormattedText(_arg0);
+    _result = (wxList *) &_result_ref;
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxList_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetPenColour(_swigobj)  (_swigobj->GetPenColour())
+static PyObject *_wrap_wxShapeRegion_GetPenColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetPenColour",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetPenColour. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxShapeRegion_GetPenColour(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetPenStyle(_swigobj)  (_swigobj->GetPenStyle())
+static PyObject *_wrap_wxShapeRegion_GetPenStyle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetPenStyle",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetPenStyle. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxShapeRegion_GetPenStyle(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetPenStyle(_swigobj,_swigarg0)  (_swigobj->SetPenStyle(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetPenStyle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","style", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxShapeRegion_SetPenStyle",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetPenStyle. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetPenStyle(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxShapeRegion_SetPenColour(_swigobj,_swigarg0)  (_swigobj->SetPenColour(_swigarg0))
+static PyObject *_wrap_wxShapeRegion_SetPenColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","col", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxShapeRegion_SetPenColour",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_SetPenColour. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_SetPenColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetActualPen(_swigobj)  (_swigobj->GetActualPen())
+static PyObject *_wrap_wxShapeRegion_GetActualPen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPen * _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetActualPen",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetActualPen. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPen *)wxShapeRegion_GetActualPen(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetWidth(_swigobj)  (_swigobj->GetWidth())
+static PyObject *_wrap_wxShapeRegion_GetWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetWidth",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetWidth. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxShapeRegion_GetWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxShapeRegion_GetHeight(_swigobj)  (_swigobj->GetHeight())
+static PyObject *_wrap_wxShapeRegion_GetHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_GetHeight",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_GetHeight. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxShapeRegion_GetHeight(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxShapeRegion_ClearText(_swigobj)  (_swigobj->ClearText())
+static PyObject *_wrap_wxShapeRegion_ClearText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxShapeRegion * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxShapeRegion_ClearText",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShapeRegion_ClearText. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxShapeRegion_ClearText(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define new_wxPyShapeEvtHandler(_swigarg0,_swigarg1) (new wxPyShapeEvtHandler(_swigarg0,_swigarg1))
+static PyObject *_wrap_new_wxPyShapeEvtHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _result;
+    wxPyShapeEvtHandler * _arg0 = (wxPyShapeEvtHandler *) NULL;
+    wxPyShape * _arg1 = (wxPyShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "prev","shape", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|OO:new_wxPyShapeEvtHandler",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPyShapeEvtHandler. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPyShapeEvtHandler. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeEvtHandler *)new_wxPyShapeEvtHandler(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeEvtHandler_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler__setSelf. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void  wxPyShapeEvtHandler_Destroy(wxPyShapeEvtHandler *self) { delete self; }
+static PyObject *_wrap_wxPyShapeEvtHandler_Destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeEvtHandler_Destroy",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_Destroy. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_Destroy(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_SetShape(_swigobj,_swigarg0)  (_swigobj->SetShape(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_SetShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","sh", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_SetShape",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_SetShape. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_SetShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_SetShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_GetShape(_swigobj)  (_swigobj->GetShape())
+static PyObject *_wrap_wxPyShapeEvtHandler_GetShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShapeEvtHandler * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeEvtHandler_GetShape",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_GetShape. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShapeEvtHandler_GetShape(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_SetPreviousHandler(_swigobj,_swigarg0)  (_swigobj->SetPreviousHandler(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_SetPreviousHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxPyShapeEvtHandler * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","handler", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_SetPreviousHandler",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_SetPreviousHandler. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_SetPreviousHandler. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_SetPreviousHandler(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_GetPreviousHandler(_swigobj)  (_swigobj->GetPreviousHandler())
+static PyObject *_wrap_wxPyShapeEvtHandler_GetPreviousHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _result;
+    wxPyShapeEvtHandler * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeEvtHandler_GetPreviousHandler",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_GetPreviousHandler. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeEvtHandler *)wxPyShapeEvtHandler_GetPreviousHandler(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeEvtHandler_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_CreateNewCopy(_swigobj)  (_swigobj->CreateNewCopy())
+static PyObject *_wrap_wxPyShapeEvtHandler_CreateNewCopy(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _result;
+    wxPyShapeEvtHandler * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeEvtHandler_CreateNewCopy",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_CreateNewCopy. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeEvtHandler *)wxPyShapeEvtHandler_CreateNewCopy(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeEvtHandler_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeEvtHandler_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDelete. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDraw. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDrawContents. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShapeEvtHandler_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDrawBranches. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnMoveLinks. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnErase. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnEraseContents. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnHighlight. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnLeftClick. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnLeftDoubleClick. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnRightClick. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShapeEvtHandler_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnSize. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyShapeEvtHandler_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnMovePre. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShapeEvtHandler_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyShapeEvtHandler_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnMovePost. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyShapeEvtHandler_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDragLeft. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnBeginDragLeft. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnEndDragLeft. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyShapeEvtHandler_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDragRight. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnBeginDragRight. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShapeEvtHandler_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnEndDragRight. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyShapeEvtHandler_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDrawOutline. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnDrawControlPoints. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeEvtHandler_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnEraseControlPoints. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShapeEvtHandler_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnMoveLink. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyShapeEvtHandler_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnSizingDragLeft. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyShapeEvtHandler_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnSizingBeginDragLeft. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyShapeEvtHandler_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnSizingEndDragLeft. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeEvtHandler_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShapeEvtHandler_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnBeginSize. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeEvtHandler_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeEvtHandler_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShapeEvtHandler_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeEvtHandler_base_OnEndSize. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeEvtHandler_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define wxPyShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape__setSelf. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void  wxPyShape_Destroy(wxPyShape *self) { delete self; }
+static PyObject *_wrap_wxPyShape_Destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Destroy",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Destroy. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Destroy(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetBoundingBoxMax(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetBoundingBoxMax(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_GetBoundingBoxMax(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double * _arg1;
+    double  temp;
+    double * _arg2;
+    double  temp0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+{
+  _arg1 = &temp;
+}
+{
+  _arg2 = &temp0;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBoundingBoxMax",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBoundingBoxMax. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_GetBoundingBoxMax(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg1));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg2));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetBoundingBoxMin(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetBoundingBoxMin(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_GetBoundingBoxMin(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double * _arg1;
+    double  temp;
+    double * _arg2;
+    double  temp0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+{
+  _arg1 = &temp;
+}
+{
+  _arg2 = &temp0;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBoundingBoxMin",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBoundingBoxMin. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_GetBoundingBoxMin(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg1));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg2));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetPerimeterPoint(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->GetPerimeterPoint(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_GetPerimeterPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double * _arg5;
+    double  temp;
+    double * _arg6;
+    double  temp0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x1","y1","x2","y2", NULL };
+
+    self = self;
+{
+  _arg5 = &temp;
+}
+{
+  _arg6 = &temp0;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odddd:wxPyShape_GetPerimeterPoint",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetPerimeterPoint. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetPerimeterPoint(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg5));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg6));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetCanvas(_swigobj)  (_swigobj->GetCanvas())
+static PyObject *_wrap_wxPyShape_GetCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetCanvas",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetCanvas. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeCanvas *)wxPyShape_GetCanvas(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeCanvas_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_SetCanvas(_swigobj,_swigarg0)  (_swigobj->SetCanvas(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShapeCanvas * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","the_canvas", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_SetCanvas",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetCanvas. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetCanvas. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetCanvas(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_AddToCanvas(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AddToCanvas(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_AddToCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShapeCanvas * _arg1;
+    wxPyShape * _arg2 = (wxPyShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","the_canvas","addAfter", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|O:wxPyShape_AddToCanvas",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AddToCanvas. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_AddToCanvas. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_AddToCanvas. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_AddToCanvas(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_InsertInCanvas(_swigobj,_swigarg0)  (_swigobj->InsertInCanvas(_swigarg0))
+static PyObject *_wrap_wxPyShape_InsertInCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShapeCanvas * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","the_canvas", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_InsertInCanvas",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_InsertInCanvas. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_InsertInCanvas. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_InsertInCanvas(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_RemoveFromCanvas(_swigobj,_swigarg0)  (_swigobj->RemoveFromCanvas(_swigarg0))
+static PyObject *_wrap_wxPyShape_RemoveFromCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShapeCanvas * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","the_canvas", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_RemoveFromCanvas",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_RemoveFromCanvas. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_RemoveFromCanvas. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_RemoveFromCanvas(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetX(_swigobj)  (_swigobj->GetX())
+static PyObject *_wrap_wxPyShape_GetX(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetX",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetX. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxPyShape_GetX(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_GetY(_swigobj)  (_swigobj->GetY())
+static PyObject *_wrap_wxPyShape_GetY(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetY",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetY. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxPyShape_GetY(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetX(_swigobj,_swigarg0)  (_swigobj->SetX(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetX(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxPyShape_SetX",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetX. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetX(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetY(_swigobj,_swigarg0)  (_swigobj->SetY(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetY(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxPyShape_SetY",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetY. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetY(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetParent(_swigobj)  (_swigobj->GetParent())
+static PyObject *_wrap_wxPyShape_GetParent(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetParent",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetParent. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShape_GetParent(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_SetParent(_swigobj,_swigarg0)  (_swigobj->SetParent(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetParent(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","p", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_SetParent",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetParent. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetParent. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetParent(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetTopAncestor(_swigobj)  (_swigobj->GetTopAncestor())
+static PyObject *_wrap_wxPyShape_GetTopAncestor(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetTopAncestor",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetTopAncestor. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShape_GetTopAncestor(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+static PyObject * wxPyShape_GetChildren(wxPyShape *self) {
+            wxList& list = self->GetChildren();
+            return wxPy_ConvertList(&list, "wxPyShape");
+        }
+static PyObject *_wrap_wxPyShape_GetChildren(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetChildren",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetChildren. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyShape_GetChildren(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_Unlink(_swigobj)  (_swigobj->Unlink())
+static PyObject *_wrap_wxPyShape_Unlink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Unlink",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Unlink. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Unlink(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetDrawHandles(_swigobj,_swigarg0)  (_swigobj->SetDrawHandles(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetDrawHandles(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","drawH", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetDrawHandles",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetDrawHandles. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetDrawHandles(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetDrawHandles(_swigobj)  (_swigobj->GetDrawHandles())
+static PyObject *_wrap_wxPyShape_GetDrawHandles(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetDrawHandles",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetDrawHandles. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetDrawHandles(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_MakeControlPoints(_swigobj)  (_swigobj->MakeControlPoints())
+static PyObject *_wrap_wxPyShape_MakeControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_MakeControlPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_MakeControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_MakeControlPoints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_DeleteControlPoints(_swigobj,_swigarg0)  (_swigobj->DeleteControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyShape_DeleteControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1 = (wxDC *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|O:wxPyShape_DeleteControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_DeleteControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_DeleteControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_DeleteControlPoints(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_ResetControlPoints(_swigobj)  (_swigobj->ResetControlPoints())
+static PyObject *_wrap_wxPyShape_ResetControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_ResetControlPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ResetControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ResetControlPoints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetEventHandler(_swigobj)  (_swigobj->GetEventHandler())
+static PyObject *_wrap_wxPyShape_GetEventHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeEvtHandler * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetEventHandler",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetEventHandler. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeEvtHandler *)wxPyShape_GetEventHandler(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeEvtHandler_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_SetEventHandler(_swigobj,_swigarg0)  (_swigobj->SetEventHandler(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetEventHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShapeEvtHandler * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","handler", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_SetEventHandler",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetEventHandler. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeEvtHandler_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetEventHandler. Expected _wxPyShapeEvtHandler_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetEventHandler(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_MakeMandatoryControlPoints(_swigobj)  (_swigobj->MakeMandatoryControlPoints())
+static PyObject *_wrap_wxPyShape_MakeMandatoryControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_MakeMandatoryControlPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_MakeMandatoryControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_MakeMandatoryControlPoints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_ResetMandatoryControlPoints(_swigobj)  (_swigobj->ResetMandatoryControlPoints())
+static PyObject *_wrap_wxPyShape_ResetMandatoryControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_ResetMandatoryControlPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ResetMandatoryControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ResetMandatoryControlPoints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Recompute(_swigobj)  (_swigobj->Recompute())
+static PyObject *_wrap_wxPyShape_Recompute(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Recompute",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Recompute. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_Recompute(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_CalculateSize(_swigobj)  (_swigobj->CalculateSize())
+static PyObject *_wrap_wxPyShape_CalculateSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_CalculateSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_CalculateSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_CalculateSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Select(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Select(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_Select(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1 = (bool ) TRUE;
+    wxDC * _arg2 = (wxDC *) NULL;
+    PyObject * _argo0 = 0;
+    int tempbool1 = (int) TRUE;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","select","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|iO:wxPyShape_Select",_kwnames,&_argo0,&tempbool1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Select. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_Select. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Select(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetHighlight(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetHighlight(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1 = (bool ) TRUE;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    int tempbool1 = (int) TRUE;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","hi","recurse", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|ii:wxPyShape_SetHighlight",_kwnames,&_argo0,&tempbool1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetHighlight. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetHighlight(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_IsHighlighted(_swigobj)  (_swigobj->IsHighlighted())
+static PyObject *_wrap_wxPyShape_IsHighlighted(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_IsHighlighted",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_IsHighlighted. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_IsHighlighted(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_Selected(_swigobj)  (_swigobj->Selected())
+static PyObject *_wrap_wxPyShape_Selected(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Selected",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Selected. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_Selected(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_AncestorSelected(_swigobj)  (_swigobj->AncestorSelected())
+static PyObject *_wrap_wxPyShape_AncestorSelected(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_AncestorSelected",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AncestorSelected. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_AncestorSelected(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetSensitivityFilter(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetSensitivityFilter(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetSensitivityFilter(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1 = (int ) OP_ALL;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","sens","recursive", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|ii:wxPyShape_SetSensitivityFilter",_kwnames,&_argo0,&_arg1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetSensitivityFilter. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetSensitivityFilter(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetSensitivityFilter(_swigobj)  (_swigobj->GetSensitivityFilter())
+static PyObject *_wrap_wxPyShape_GetSensitivityFilter(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetSensitivityFilter",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetSensitivityFilter. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetSensitivityFilter(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetDraggable(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetDraggable(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetDraggable(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","drag","recursive", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|i:wxPyShape_SetDraggable",_kwnames,&_argo0,&tempbool1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetDraggable. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetDraggable(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetFixedSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetFixedSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetFixedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    bool  _arg2;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    int tempbool2;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxPyShape_SetFixedSize",_kwnames,&_argo0,&tempbool1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetFixedSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetFixedSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetFixedSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetFixedSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_GetFixedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool * _arg1;
+    bool * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","OUTPUT","OUTPUT", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyShape_GetFixedSize",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetFixedSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_bool_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_GetFixedSize. Expected _bool_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_bool_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_GetFixedSize. Expected _bool_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_GetFixedSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetFixedWidth(_swigobj)  (_swigobj->GetFixedWidth())
+static PyObject *_wrap_wxPyShape_GetFixedWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetFixedWidth",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetFixedWidth. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetFixedWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_GetFixedHeight(_swigobj)  (_swigobj->GetFixedHeight())
+static PyObject *_wrap_wxPyShape_GetFixedHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetFixedHeight",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetFixedHeight. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetFixedHeight(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetSpaceAttachments(_swigobj,_swigarg0)  (_swigobj->SetSpaceAttachments(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetSpaceAttachments(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","sp", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetSpaceAttachments",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetSpaceAttachments. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetSpaceAttachments(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetSpaceAttachments(_swigobj)  (_swigobj->GetSpaceAttachments())
+static PyObject *_wrap_wxPyShape_GetSpaceAttachments(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetSpaceAttachments",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetSpaceAttachments. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetSpaceAttachments(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetShadowMode(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetShadowMode(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetShadowMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","mode","redraw", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|i:wxPyShape_SetShadowMode",_kwnames,&_argo0,&_arg1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetShadowMode. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetShadowMode(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetShadowMode(_swigobj)  (_swigobj->GetShadowMode())
+static PyObject *_wrap_wxPyShape_GetShadowMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetShadowMode",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetShadowMode. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetShadowMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_HitTest(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->HitTest(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_HitTest(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int * _arg3;
+    int  temp;
+    double * _arg4;
+    double  temp0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+{
+  _arg3 = &temp;
+}
+{
+  _arg4 = &temp0;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShape_HitTest",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_HitTest. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_HitTest(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    PyObject *o;
+    o = PyInt_FromLong((long) (*_arg3));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg4));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyShape_SetCentreResize(_swigobj,_swigarg0)  (_swigobj->SetCentreResize(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetCentreResize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","cr", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetCentreResize",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetCentreResize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetCentreResize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetCentreResize(_swigobj)  (_swigobj->GetCentreResize())
+static PyObject *_wrap_wxPyShape_GetCentreResize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetCentreResize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetCentreResize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetCentreResize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetMaintainAspectRatio(_swigobj,_swigarg0)  (_swigobj->SetMaintainAspectRatio(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetMaintainAspectRatio(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","ar", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetMaintainAspectRatio",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetMaintainAspectRatio. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetMaintainAspectRatio(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetMaintainAspectRatio(_swigobj)  (_swigobj->GetMaintainAspectRatio())
+static PyObject *_wrap_wxPyShape_GetMaintainAspectRatio(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetMaintainAspectRatio",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetMaintainAspectRatio. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetMaintainAspectRatio(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+static PyObject * wxPyShape_GetLines(wxPyShape *self) {
+            wxList& list = self->GetLines();
+            return wxPy_ConvertList(&list, "wxPyLineShape");
+        }
+static PyObject *_wrap_wxPyShape_GetLines(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetLines",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetLines. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyShape_GetLines(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_SetDisableLabel(_swigobj,_swigarg0)  (_swigobj->SetDisableLabel(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetDisableLabel(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","flag", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetDisableLabel",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetDisableLabel. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetDisableLabel(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetDisableLabel(_swigobj)  (_swigobj->GetDisableLabel())
+static PyObject *_wrap_wxPyShape_GetDisableLabel(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetDisableLabel",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetDisableLabel. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetDisableLabel(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetAttachmentMode(_swigobj,_swigarg0)  (_swigobj->SetAttachmentMode(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetAttachmentMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","mode", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetAttachmentMode",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetAttachmentMode. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetAttachmentMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetAttachmentMode(_swigobj)  (_swigobj->GetAttachmentMode())
+static PyObject *_wrap_wxPyShape_GetAttachmentMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetAttachmentMode",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetAttachmentMode. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetAttachmentMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetId(_swigobj,_swigarg0)  (_swigobj->SetId(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetId(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    long  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","i", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxPyShape_SetId",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetId. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetId(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetId(_swigobj)  (_swigobj->GetId())
+static PyObject *_wrap_wxPyShape_GetId(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    long  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetId",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetId. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxPyShape_GetId(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetPen(_swigobj,_swigarg0)  (_swigobj->SetPen(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetPen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPen * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pen", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_SetPen",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetPen. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPen_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetPen. Expected _wxPen_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetPen(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetBrush(_swigobj,_swigarg0)  (_swigobj->SetBrush(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxBrush * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","brush", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_SetBrush",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetBrush. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBrush_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetBrush. Expected _wxBrush_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetBrush(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetClientData(_swigobj,_swigarg0)  (_swigobj->SetClientData(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetClientData(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","client_data", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_SetClientData",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetClientData. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxObject_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetClientData. Expected _wxObject_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetClientData(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetClientData(_swigobj)  (_swigobj->GetClientData())
+static PyObject *_wrap_wxPyShape_GetClientData(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxObject * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetClientData",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetClientData. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxObject *)wxPyShape_GetClientData(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_Show(_swigobj,_swigarg0)  (_swigobj->Show(_swigarg0))
+static PyObject *_wrap_wxPyShape_Show(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","show", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_Show",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Show. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Show(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_IsShown(_swigobj)  (_swigobj->IsShown())
+static PyObject *_wrap_wxPyShape_IsShown(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_IsShown",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_IsShown. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_IsShown(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_Move(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->Move(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_Move(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    bool  _arg4 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool4 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x1","y1","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|i:wxPyShape_Move",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&tempbool4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Move. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_Move. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg4 = (bool ) tempbool4;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Move(_arg0,*_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Erase(_swigobj,_swigarg0)  (_swigobj->Erase(_swigarg0))
+static PyObject *_wrap_wxPyShape_Erase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_Erase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Erase. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_Erase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Erase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_EraseContents(_swigobj,_swigarg0)  (_swigobj->EraseContents(_swigarg0))
+static PyObject *_wrap_wxPyShape_EraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_EraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_EraseContents. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_EraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_EraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Draw(_swigobj,_swigarg0)  (_swigobj->Draw(_swigarg0))
+static PyObject *_wrap_wxPyShape_Draw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_Draw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Draw. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_Draw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Draw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Flash(_swigobj)  (_swigobj->Flash())
+static PyObject *_wrap_wxPyShape_Flash(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Flash",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Flash. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Flash(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_MoveLinks(_swigobj,_swigarg0)  (_swigobj->MoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyShape_MoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_MoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_MoveLinks. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_MoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_MoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_DrawContents(_swigobj,_swigarg0)  (_swigobj->DrawContents(_swigarg0))
+static PyObject *_wrap_wxPyShape_DrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_DrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_DrawContents. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_DrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_DrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetSize(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetSize(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShape_SetSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    bool  _arg3 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool3 = (int) TRUE;
+    char *_kwnames[] = { "self","x","y","recursive", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShape_SetSize",_kwnames,&_argo0,&_arg1,&_arg2,&tempbool3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg3 = (bool ) tempbool3;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetSize(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_SetAttachmentSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetAttachmentSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetAttachmentSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShape_SetAttachmentSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetAttachmentSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetAttachmentSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Attach(_swigobj,_swigarg0)  (_swigobj->Attach(_swigarg0))
+static PyObject *_wrap_wxPyShape_Attach(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShapeCanvas * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","can", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_Attach",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Attach. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_Attach. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Attach(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Detach(_swigobj)  (_swigobj->Detach())
+static PyObject *_wrap_wxPyShape_Detach(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Detach",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Detach. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Detach(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Constrain(_swigobj)  (_swigobj->Constrain())
+static PyObject *_wrap_wxPyShape_Constrain(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Constrain",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Constrain. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_Constrain(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_AddLine(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->AddLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_AddLine(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyLineShape * _arg1;
+    wxPyShape * _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) -1;
+    int  _arg6 = (int ) -1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","line","other","attachFrom","attachTo","positionFrom","positionTo", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|iiii:wxPyShape_AddLine",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AddLine. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_AddLine. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_AddLine. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_AddLine(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetLinePosition(_swigobj,_swigarg0)  (_swigobj->GetLinePosition(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetLinePosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    wxPyLineShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","line", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_GetLinePosition",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetLinePosition. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_GetLinePosition. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetLinePosition(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_AddText(_swigobj,_swigarg0)  (_swigobj->AddText(_swigarg0))
+static PyObject *_wrap_wxPyShape_AddText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","string", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_AddText",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AddText. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_AddText(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetPen(_swigobj)  (_swigobj->GetPen())
+static PyObject *_wrap_wxPyShape_GetPen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPen * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetPen",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetPen. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPen *)wxPyShape_GetPen(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_GetBrush(_swigobj)  (_swigobj->GetBrush())
+static PyObject *_wrap_wxPyShape_GetBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxBrush * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBrush",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBrush. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBrush *)wxPyShape_GetBrush(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_SetDefaultRegionSize(_swigobj)  (_swigobj->SetDefaultRegionSize())
+static PyObject *_wrap_wxPyShape_SetDefaultRegionSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_SetDefaultRegionSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetDefaultRegionSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetDefaultRegionSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_FormatText(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->FormatText(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShape_FormatText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    wxString * _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","dc","s","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|i:wxPyShape_FormatText",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_FormatText. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_FormatText. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj2)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_FormatText(_arg0,*_arg1,*_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj2)
+        delete _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_SetFormatMode(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetFormatMode(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetFormatMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1;
+    int  _arg2 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","mode","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|i:wxPyShape_SetFormatMode",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetFormatMode. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetFormatMode(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetFormatMode(_swigobj,_swigarg0)  (_swigobj->GetFormatMode(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetFormatMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    int  _arg1 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyShape_GetFormatMode",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetFormatMode. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetFormatMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetFont(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetFont(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxFont * _arg1;
+    int  _arg2 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","font","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShape_SetFont",_kwnames,&_argo0,&_argo1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetFont. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFont_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_SetFont. Expected _wxFont_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetFont(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetFont(_swigobj,_swigarg0)  (_swigobj->GetFont(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxFont * _result;
+    wxPyShape * _arg0;
+    int  _arg1 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","regionId", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyShape_GetFont",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetFont. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxFont *)wxPyShape_GetFont(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_SetTextColour(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetTextColour(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxString * _arg1;
+    int  _arg2 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","colour","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShape_SetTextColour",_kwnames,&_argo0,&_obj1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetTextColour. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetTextColour(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetTextColour(_swigobj,_swigarg0)  (_swigobj->GetTextColour(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxPyShape * _arg0;
+    int  _arg1 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyShape_GetTextColour",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetTextColour. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxPyShape_GetTextColour(_arg0,_arg1));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetNumberOfTextRegions(_swigobj)  (_swigobj->GetNumberOfTextRegions())
+static PyObject *_wrap_wxPyShape_GetNumberOfTextRegions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetNumberOfTextRegions",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetNumberOfTextRegions. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetNumberOfTextRegions(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetRegionName(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetRegionName(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_SetRegionName(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxString * _arg1;
+    int  _arg2 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","name","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShape_SetRegionName",_kwnames,&_argo0,&_obj1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetRegionName. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetRegionName(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetRegionName(_swigobj,_swigarg0)  (_swigobj->GetRegionName(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetRegionName(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_GetRegionName",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetRegionName. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxPyShape_GetRegionName(_arg0,_arg1));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_GetRegionId(_swigobj,_swigarg0)  (_swigobj->GetRegionId(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetRegionId(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","name", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_GetRegionId",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetRegionId. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetRegionId(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_NameRegions(_swigobj,_swigarg0)  (_swigobj->NameRegions(_swigarg0))
+static PyObject *_wrap_wxPyShape_NameRegions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxString * _arg1 = (wxString *) &"";
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","parentName", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|O:wxPyShape_NameRegions",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_NameRegions. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_obj1)
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_NameRegions(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+static PyObject * wxPyShape_GetRegions(wxPyShape *self) {
+            wxList& list = self->GetRegions();
+            return wxPy_ConvertList(&list, "wxShapeRegion");
+        }
+static PyObject *_wrap_wxPyShape_GetRegions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetRegions",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetRegions. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyShape_GetRegions(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_AddRegion(_swigobj,_swigarg0)  (_swigobj->AddRegion(_swigarg0))
+static PyObject *_wrap_wxPyShape_AddRegion(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxShapeRegion * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","region", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_AddRegion",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AddRegion. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_AddRegion. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_AddRegion(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_ClearRegions(_swigobj)  (_swigobj->ClearRegions())
+static PyObject *_wrap_wxPyShape_ClearRegions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_ClearRegions",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ClearRegions. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ClearRegions(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_AssignNewIds(_swigobj)  (_swigobj->AssignNewIds())
+static PyObject *_wrap_wxPyShape_AssignNewIds(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_AssignNewIds",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AssignNewIds. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_AssignNewIds(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_FindRegion(_swigobj,_swigarg0,_swigarg1)  (_swigobj->FindRegion(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_FindRegion(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShape * _arg0;
+    wxString * _arg1;
+    int * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","regionName","regionId", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyShape_FindRegion",_kwnames,&_argo0,&_obj1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_FindRegion. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_int_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_FindRegion. Expected _int_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShape_FindRegion(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyShape_FindRegionNames(_swigobj,_swigarg0)  (_swigobj->FindRegionNames(_swigarg0))
+static PyObject *_wrap_wxPyShape_FindRegionNames(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxStringList * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","list", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_FindRegionNames",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_FindRegionNames. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxStringList_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_FindRegionNames. Expected _wxStringList_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_FindRegionNames(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_ClearText(_swigobj,_swigarg0)  (_swigobj->ClearText(_swigarg0))
+static PyObject *_wrap_wxPyShape_ClearText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","regionId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyShape_ClearText",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ClearText. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ClearText(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_RemoveLine(_swigobj,_swigarg0)  (_swigobj->RemoveLine(_swigarg0))
+static PyObject *_wrap_wxPyShape_RemoveLine(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyLineShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","line", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_RemoveLine",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_RemoveLine. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_RemoveLine. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_RemoveLine(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetAttachmentPosition(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->GetAttachmentPosition(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_GetAttachmentPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    double * _arg2;
+    double * _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 1;
+    wxPyLineShape * _arg6 = (wxPyLineShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    PyObject * _argo6 = 0;
+    char *_kwnames[] = { "self","attachment","x","y","nth","no_arcs","line", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO|iiO:wxPyShape_GetAttachmentPosition",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5,&_argo6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetAttachmentPosition. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_GetAttachmentPosition. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShape_GetAttachmentPosition. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo6) {
+        if (_argo6 == Py_None) { _arg6 = NULL; }
+        else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxPyShape_GetAttachmentPosition. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetAttachmentPosition(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_GetNumberOfAttachments(_swigobj)  (_swigobj->GetNumberOfAttachments())
+static PyObject *_wrap_wxPyShape_GetNumberOfAttachments(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetNumberOfAttachments",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetNumberOfAttachments. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetNumberOfAttachments(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_AttachmentIsValid(_swigobj,_swigarg0)  (_swigobj->AttachmentIsValid(_swigarg0))
+static PyObject *_wrap_wxPyShape_AttachmentIsValid(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_AttachmentIsValid",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AttachmentIsValid. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_AttachmentIsValid(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_GetAttachmentPositionEdge(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->GetAttachmentPositionEdge(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_GetAttachmentPositionEdge(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    double * _arg2;
+    double * _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 1;
+    wxPyLineShape * _arg6 = (wxPyLineShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    PyObject * _argo6 = 0;
+    char *_kwnames[] = { "self","attachment","x","y","nth","no_arcs","line", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO|iiO:wxPyShape_GetAttachmentPositionEdge",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3,&_arg4,&_arg5,&_argo6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetAttachmentPositionEdge. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_GetAttachmentPositionEdge. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShape_GetAttachmentPositionEdge. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo6) {
+        if (_argo6 == Py_None) { _arg6 = NULL; }
+        else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxPyShape_GetAttachmentPositionEdge. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetAttachmentPositionEdge(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_CalcSimpleAttachment(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->CalcSimpleAttachment(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_CalcSimpleAttachment(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxRealPoint * _result;
+    wxPyShape * _arg0;
+    wxRealPoint * _arg1;
+    wxRealPoint * _arg2;
+    int  _arg3;
+    int  _arg4;
+    wxPyLineShape * _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo5 = 0;
+    char *_kwnames[] = { "self","pt1","pt2","nth","noArcs","line", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOiiO:wxPyShape_CalcSimpleAttachment",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3,&_arg4,&_argo5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_CalcSimpleAttachment. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_CalcSimpleAttachment. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_CalcSimpleAttachment. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo5) {
+        if (_argo5 == Py_None) { _arg5 = NULL; }
+        else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxPyShape_CalcSimpleAttachment. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxRealPoint (wxPyShape_CalcSimpleAttachment(_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5));
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (void *) _result,"_wxRealPoint_p");
+    _resultobj = Py_BuildValue("s",_ptemp);
+    return _resultobj;
+}
+
+#define wxPyShape_AttachmentSortTest(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->AttachmentSortTest(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShape_AttachmentSortTest(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    wxRealPoint * _arg2;
+    wxRealPoint * _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "self","attachmentPoint","pt1","pt2", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO:wxPyShape_AttachmentSortTest",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_AttachmentSortTest. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_AttachmentSortTest. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShape_AttachmentSortTest. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_AttachmentSortTest(_arg0,_arg1,*_arg2,*_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_EraseLinks(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->EraseLinks(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShape_EraseLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    int  _arg2 = (int ) -1;
+    bool  _arg3 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool3 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","attachment","recurse", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|ii:wxPyShape_EraseLinks",_kwnames,&_argo0,&_argo1,&_arg2,&tempbool3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_EraseLinks. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_EraseLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg3 = (bool ) tempbool3;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_EraseLinks(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_DrawLinks(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawLinks(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShape_DrawLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    int  _arg2 = (int ) -1;
+    bool  _arg3 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool3 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","attachment","recurse", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|ii:wxPyShape_DrawLinks",_kwnames,&_argo0,&_argo1,&_arg2,&tempbool3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_DrawLinks. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_DrawLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg3 = (bool ) tempbool3;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_DrawLinks(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_MoveLineToNewAttachment(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->MoveLineToNewAttachment(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_MoveLineToNewAttachment(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    wxPyLineShape * _arg2;
+    double  _arg3;
+    double  _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","dc","to_move","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOdd:wxPyShape_MoveLineToNewAttachment",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_MoveLineToNewAttachment. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_MoveLineToNewAttachment. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_MoveLineToNewAttachment. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_MoveLineToNewAttachment(_arg0,*_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+static void  wxPyShape_ApplyAttachmentOrdering(wxPyShape *self,PyObject * linesToSort) {
+            wxList* list = wxPy_wxListHelper(linesToSort, "wxPyLineShape");
+            self->ApplyAttachmentOrdering(*list);
+            delete list;
+        }
+static PyObject *_wrap_wxPyShape_ApplyAttachmentOrdering(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","linesToSort", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_ApplyAttachmentOrdering",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ApplyAttachmentOrdering. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ApplyAttachmentOrdering(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchingAttachmentRoot(_swigobj,_swigarg0)  (_swigobj->GetBranchingAttachmentRoot(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetBranchingAttachmentRoot(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxRealPoint * _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","attachment", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_GetBranchingAttachmentRoot",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchingAttachmentRoot. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxRealPoint (wxPyShape_GetBranchingAttachmentRoot(_arg0,_arg1));
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (void *) _result,"_wxRealPoint_p");
+    _resultobj = Py_BuildValue("s",_ptemp);
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchingAttachmentInfo(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->GetBranchingAttachmentInfo(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_GetBranchingAttachmentInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    wxRealPoint * _arg2;
+    wxRealPoint * _arg3;
+    wxRealPoint * _arg4;
+    wxRealPoint * _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    PyObject * _argo4 = 0;
+    PyObject * _argo5 = 0;
+    char *_kwnames[] = { "self","attachment","root","neck","shoulder1","shoulder2", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOOOO:wxPyShape_GetBranchingAttachmentInfo",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3,&_argo4,&_argo5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchingAttachmentInfo. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShape_GetBranchingAttachmentInfo. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShape_GetBranchingAttachmentInfo. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo4) {
+        if (_argo4 == Py_None) { _arg4 = NULL; }
+        else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxPyShape_GetBranchingAttachmentInfo. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo5) {
+        if (_argo5 == Py_None) { _arg5 = NULL; }
+        else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxPyShape_GetBranchingAttachmentInfo. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetBranchingAttachmentInfo(_arg0,_arg1,*_arg2,*_arg3,*_arg4,*_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchingAttachmentPoint(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->GetBranchingAttachmentPoint(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_GetBranchingAttachmentPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    int  _arg2;
+    wxRealPoint * _arg3;
+    wxRealPoint * _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo3 = 0;
+    PyObject * _argo4 = 0;
+    char *_kwnames[] = { "self","attachment","n","attachmentPoint","stemPoint", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiiOO:wxPyShape_GetBranchingAttachmentPoint",_kwnames,&_argo0,&_arg1,&_arg2,&_argo3,&_argo4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchingAttachmentPoint. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShape_GetBranchingAttachmentPoint. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo4) {
+        if (_argo4 == Py_None) { _arg4 = NULL; }
+        else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxRealPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxPyShape_GetBranchingAttachmentPoint. Expected _wxRealPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_GetBranchingAttachmentPoint(_arg0,_arg1,_arg2,*_arg3,*_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_GetAttachmentLineCount(_swigobj,_swigarg0)  (_swigobj->GetAttachmentLineCount(_swigarg0))
+static PyObject *_wrap_wxPyShape_GetAttachmentLineCount(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_GetAttachmentLineCount",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetAttachmentLineCount. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetAttachmentLineCount(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetBranchNeckLength(_swigobj,_swigarg0)  (_swigobj->SetBranchNeckLength(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetBranchNeckLength(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","len", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetBranchNeckLength",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetBranchNeckLength. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetBranchNeckLength(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchNeckLength(_swigobj)  (_swigobj->GetBranchNeckLength())
+static PyObject *_wrap_wxPyShape_GetBranchNeckLength(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBranchNeckLength",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchNeckLength. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetBranchNeckLength(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetBranchStemLength(_swigobj,_swigarg0)  (_swigobj->SetBranchStemLength(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetBranchStemLength(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","len", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetBranchStemLength",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetBranchStemLength. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetBranchStemLength(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchStemLength(_swigobj)  (_swigobj->GetBranchStemLength())
+static PyObject *_wrap_wxPyShape_GetBranchStemLength(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBranchStemLength",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchStemLength. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetBranchStemLength(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetBranchSpacing(_swigobj,_swigarg0)  (_swigobj->SetBranchSpacing(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetBranchSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","len", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_SetBranchSpacing",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetBranchSpacing. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetBranchSpacing(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchSpacing(_swigobj)  (_swigobj->GetBranchSpacing())
+static PyObject *_wrap_wxPyShape_GetBranchSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBranchSpacing",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchSpacing. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_GetBranchSpacing(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_SetBranchStyle(_swigobj,_swigarg0)  (_swigobj->SetBranchStyle(_swigarg0))
+static PyObject *_wrap_wxPyShape_SetBranchStyle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    long  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","style", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxPyShape_SetBranchStyle",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_SetBranchStyle. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_SetBranchStyle(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetBranchStyle(_swigobj)  (_swigobj->GetBranchStyle())
+static PyObject *_wrap_wxPyShape_GetBranchStyle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    long  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetBranchStyle",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetBranchStyle. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxPyShape_GetBranchStyle(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_PhysicalToLogicalAttachment(_swigobj,_swigarg0)  (_swigobj->PhysicalToLogicalAttachment(_swigarg0))
+static PyObject *_wrap_wxPyShape_PhysicalToLogicalAttachment(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","physicalAttachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_PhysicalToLogicalAttachment",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_PhysicalToLogicalAttachment. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_PhysicalToLogicalAttachment(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_LogicalToPhysicalAttachment(_swigobj,_swigarg0)  (_swigobj->LogicalToPhysicalAttachment(_swigarg0))
+static PyObject *_wrap_wxPyShape_LogicalToPhysicalAttachment(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","logicalAttachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyShape_LogicalToPhysicalAttachment",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_LogicalToPhysicalAttachment. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyShape_LogicalToPhysicalAttachment(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_Draggable(_swigobj)  (_swigobj->Draggable())
+static PyObject *_wrap_wxPyShape_Draggable(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_Draggable",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Draggable. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_Draggable(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_HasDescendant(_swigobj,_swigarg0)  (_swigobj->HasDescendant(_swigarg0))
+static PyObject *_wrap_wxPyShape_HasDescendant(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","image", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_HasDescendant",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_HasDescendant. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_HasDescendant. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_HasDescendant(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_CreateNewCopy(_swigobj,_swigarg0,_swigarg1)  (_swigobj->CreateNewCopy(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_CreateNewCopy(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShape * _arg0;
+    bool  _arg1 = (bool ) TRUE;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool1 = (int) TRUE;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","resetMapping","recompute", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|ii:wxPyShape_CreateNewCopy",_kwnames,&_argo0,&tempbool1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_CreateNewCopy. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShape_CreateNewCopy(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShape_Copy(_swigobj,_swigarg0)  (_swigobj->Copy(_swigarg0))
+static PyObject *_wrap_wxPyShape_Copy(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","copy", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_Copy",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Copy. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_Copy. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Copy(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_CopyWithHandler(_swigobj,_swigarg0)  (_swigobj->CopyWithHandler(_swigarg0))
+static PyObject *_wrap_wxPyShape_CopyWithHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","copy", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_CopyWithHandler",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_CopyWithHandler. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_CopyWithHandler. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_CopyWithHandler(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Rotate(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->Rotate(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShape_Rotate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    double  _arg3;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","theta", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oddd:wxPyShape_Rotate",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Rotate. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Rotate(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_GetRotation(_swigobj)  (_swigobj->GetRotation())
+static PyObject *_wrap_wxPyShape_GetRotation(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_GetRotation",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_GetRotation. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxPyShape_GetRotation(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_ClearAttachments(_swigobj)  (_swigobj->ClearAttachments())
+static PyObject *_wrap_wxPyShape_ClearAttachments(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_ClearAttachments",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ClearAttachments. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ClearAttachments(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_Recentre(_swigobj,_swigarg0)  (_swigobj->Recentre(_swigarg0))
+static PyObject *_wrap_wxPyShape_Recentre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_Recentre",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_Recentre. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_Recentre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_Recentre(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_ClearPointList(_swigobj,_swigarg0)  (_swigobj->ClearPointList(_swigarg0))
+static PyObject *_wrap_wxPyShape_ClearPointList(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxList * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","list", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_ClearPointList",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_ClearPointList. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxList_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_ClearPointList. Expected _wxList_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_ClearPointList(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDelete. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDraw. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDrawContents. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDrawBranches. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnMoveLinks. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnErase. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnEraseContents. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnHighlight. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnLeftClick. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnLeftDoubleClick. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnRightClick. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnMovePre. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnMovePost. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDragLeft. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnBeginDragLeft. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnEndDragLeft. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDragRight. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnBeginDragRight. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnEndDragRight. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDrawOutline. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnDrawControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnEraseControlPoints. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnMoveLink. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnSizingDragLeft. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnSizingBeginDragLeft. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnSizingEndDragLeft. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnBeginSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShape_base_OnEndSize. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyMethodDef oglbasiccMethods[] = {
+	 { "wxPyShape_base_OnEndSize", (PyCFunction) _wrap_wxPyShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDragRight", (PyCFunction) _wrap_wxPyShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnMovePost", (PyCFunction) _wrap_wxPyShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnMovePre", (PyCFunction) _wrap_wxPyShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnSize", (PyCFunction) _wrap_wxPyShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnRightClick", (PyCFunction) _wrap_wxPyShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnHighlight", (PyCFunction) _wrap_wxPyShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnErase", (PyCFunction) _wrap_wxPyShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDraw", (PyCFunction) _wrap_wxPyShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_base_OnDelete", (PyCFunction) _wrap_wxPyShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ClearPointList", (PyCFunction) _wrap_wxPyShape_ClearPointList, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Recentre", (PyCFunction) _wrap_wxPyShape_Recentre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ClearAttachments", (PyCFunction) _wrap_wxPyShape_ClearAttachments, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetRotation", (PyCFunction) _wrap_wxPyShape_GetRotation, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Rotate", (PyCFunction) _wrap_wxPyShape_Rotate, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_CopyWithHandler", (PyCFunction) _wrap_wxPyShape_CopyWithHandler, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Copy", (PyCFunction) _wrap_wxPyShape_Copy, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_CreateNewCopy", (PyCFunction) _wrap_wxPyShape_CreateNewCopy, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_HasDescendant", (PyCFunction) _wrap_wxPyShape_HasDescendant, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Draggable", (PyCFunction) _wrap_wxPyShape_Draggable, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_LogicalToPhysicalAttachment", (PyCFunction) _wrap_wxPyShape_LogicalToPhysicalAttachment, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_PhysicalToLogicalAttachment", (PyCFunction) _wrap_wxPyShape_PhysicalToLogicalAttachment, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchStyle", (PyCFunction) _wrap_wxPyShape_GetBranchStyle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetBranchStyle", (PyCFunction) _wrap_wxPyShape_SetBranchStyle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchSpacing", (PyCFunction) _wrap_wxPyShape_GetBranchSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetBranchSpacing", (PyCFunction) _wrap_wxPyShape_SetBranchSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchStemLength", (PyCFunction) _wrap_wxPyShape_GetBranchStemLength, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetBranchStemLength", (PyCFunction) _wrap_wxPyShape_SetBranchStemLength, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchNeckLength", (PyCFunction) _wrap_wxPyShape_GetBranchNeckLength, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetBranchNeckLength", (PyCFunction) _wrap_wxPyShape_SetBranchNeckLength, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetAttachmentLineCount", (PyCFunction) _wrap_wxPyShape_GetAttachmentLineCount, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchingAttachmentPoint", (PyCFunction) _wrap_wxPyShape_GetBranchingAttachmentPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchingAttachmentInfo", (PyCFunction) _wrap_wxPyShape_GetBranchingAttachmentInfo, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBranchingAttachmentRoot", (PyCFunction) _wrap_wxPyShape_GetBranchingAttachmentRoot, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ApplyAttachmentOrdering", (PyCFunction) _wrap_wxPyShape_ApplyAttachmentOrdering, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_MoveLineToNewAttachment", (PyCFunction) _wrap_wxPyShape_MoveLineToNewAttachment, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_DrawLinks", (PyCFunction) _wrap_wxPyShape_DrawLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_EraseLinks", (PyCFunction) _wrap_wxPyShape_EraseLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AttachmentSortTest", (PyCFunction) _wrap_wxPyShape_AttachmentSortTest, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_CalcSimpleAttachment", (PyCFunction) _wrap_wxPyShape_CalcSimpleAttachment, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetAttachmentPositionEdge", (PyCFunction) _wrap_wxPyShape_GetAttachmentPositionEdge, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AttachmentIsValid", (PyCFunction) _wrap_wxPyShape_AttachmentIsValid, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetNumberOfAttachments", (PyCFunction) _wrap_wxPyShape_GetNumberOfAttachments, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetAttachmentPosition", (PyCFunction) _wrap_wxPyShape_GetAttachmentPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_RemoveLine", (PyCFunction) _wrap_wxPyShape_RemoveLine, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ClearText", (PyCFunction) _wrap_wxPyShape_ClearText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_FindRegionNames", (PyCFunction) _wrap_wxPyShape_FindRegionNames, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_FindRegion", (PyCFunction) _wrap_wxPyShape_FindRegion, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AssignNewIds", (PyCFunction) _wrap_wxPyShape_AssignNewIds, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ClearRegions", (PyCFunction) _wrap_wxPyShape_ClearRegions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AddRegion", (PyCFunction) _wrap_wxPyShape_AddRegion, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetRegions", (PyCFunction) _wrap_wxPyShape_GetRegions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_NameRegions", (PyCFunction) _wrap_wxPyShape_NameRegions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetRegionId", (PyCFunction) _wrap_wxPyShape_GetRegionId, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetRegionName", (PyCFunction) _wrap_wxPyShape_GetRegionName, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetRegionName", (PyCFunction) _wrap_wxPyShape_SetRegionName, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetNumberOfTextRegions", (PyCFunction) _wrap_wxPyShape_GetNumberOfTextRegions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetTextColour", (PyCFunction) _wrap_wxPyShape_GetTextColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetTextColour", (PyCFunction) _wrap_wxPyShape_SetTextColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetFont", (PyCFunction) _wrap_wxPyShape_GetFont, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetFont", (PyCFunction) _wrap_wxPyShape_SetFont, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetFormatMode", (PyCFunction) _wrap_wxPyShape_GetFormatMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetFormatMode", (PyCFunction) _wrap_wxPyShape_SetFormatMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_FormatText", (PyCFunction) _wrap_wxPyShape_FormatText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetDefaultRegionSize", (PyCFunction) _wrap_wxPyShape_SetDefaultRegionSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBrush", (PyCFunction) _wrap_wxPyShape_GetBrush, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetPen", (PyCFunction) _wrap_wxPyShape_GetPen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AddText", (PyCFunction) _wrap_wxPyShape_AddText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetLinePosition", (PyCFunction) _wrap_wxPyShape_GetLinePosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AddLine", (PyCFunction) _wrap_wxPyShape_AddLine, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Constrain", (PyCFunction) _wrap_wxPyShape_Constrain, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Detach", (PyCFunction) _wrap_wxPyShape_Detach, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Attach", (PyCFunction) _wrap_wxPyShape_Attach, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetAttachmentSize", (PyCFunction) _wrap_wxPyShape_SetAttachmentSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetSize", (PyCFunction) _wrap_wxPyShape_SetSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_DrawContents", (PyCFunction) _wrap_wxPyShape_DrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_MoveLinks", (PyCFunction) _wrap_wxPyShape_MoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Flash", (PyCFunction) _wrap_wxPyShape_Flash, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Draw", (PyCFunction) _wrap_wxPyShape_Draw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_EraseContents", (PyCFunction) _wrap_wxPyShape_EraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Erase", (PyCFunction) _wrap_wxPyShape_Erase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Move", (PyCFunction) _wrap_wxPyShape_Move, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_IsShown", (PyCFunction) _wrap_wxPyShape_IsShown, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Show", (PyCFunction) _wrap_wxPyShape_Show, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetClientData", (PyCFunction) _wrap_wxPyShape_GetClientData, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetClientData", (PyCFunction) _wrap_wxPyShape_SetClientData, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetBrush", (PyCFunction) _wrap_wxPyShape_SetBrush, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetPen", (PyCFunction) _wrap_wxPyShape_SetPen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetId", (PyCFunction) _wrap_wxPyShape_GetId, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetId", (PyCFunction) _wrap_wxPyShape_SetId, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetAttachmentMode", (PyCFunction) _wrap_wxPyShape_GetAttachmentMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetAttachmentMode", (PyCFunction) _wrap_wxPyShape_SetAttachmentMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetDisableLabel", (PyCFunction) _wrap_wxPyShape_GetDisableLabel, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetDisableLabel", (PyCFunction) _wrap_wxPyShape_SetDisableLabel, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetLines", (PyCFunction) _wrap_wxPyShape_GetLines, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetMaintainAspectRatio", (PyCFunction) _wrap_wxPyShape_GetMaintainAspectRatio, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetMaintainAspectRatio", (PyCFunction) _wrap_wxPyShape_SetMaintainAspectRatio, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetCentreResize", (PyCFunction) _wrap_wxPyShape_GetCentreResize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetCentreResize", (PyCFunction) _wrap_wxPyShape_SetCentreResize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_HitTest", (PyCFunction) _wrap_wxPyShape_HitTest, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetShadowMode", (PyCFunction) _wrap_wxPyShape_GetShadowMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetShadowMode", (PyCFunction) _wrap_wxPyShape_SetShadowMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetSpaceAttachments", (PyCFunction) _wrap_wxPyShape_GetSpaceAttachments, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetSpaceAttachments", (PyCFunction) _wrap_wxPyShape_SetSpaceAttachments, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetFixedHeight", (PyCFunction) _wrap_wxPyShape_GetFixedHeight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetFixedWidth", (PyCFunction) _wrap_wxPyShape_GetFixedWidth, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetFixedSize", (PyCFunction) _wrap_wxPyShape_GetFixedSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetFixedSize", (PyCFunction) _wrap_wxPyShape_SetFixedSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetDraggable", (PyCFunction) _wrap_wxPyShape_SetDraggable, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetSensitivityFilter", (PyCFunction) _wrap_wxPyShape_GetSensitivityFilter, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetSensitivityFilter", (PyCFunction) _wrap_wxPyShape_SetSensitivityFilter, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AncestorSelected", (PyCFunction) _wrap_wxPyShape_AncestorSelected, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Selected", (PyCFunction) _wrap_wxPyShape_Selected, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_IsHighlighted", (PyCFunction) _wrap_wxPyShape_IsHighlighted, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetHighlight", (PyCFunction) _wrap_wxPyShape_SetHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Select", (PyCFunction) _wrap_wxPyShape_Select, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_CalculateSize", (PyCFunction) _wrap_wxPyShape_CalculateSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Recompute", (PyCFunction) _wrap_wxPyShape_Recompute, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ResetMandatoryControlPoints", (PyCFunction) _wrap_wxPyShape_ResetMandatoryControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_MakeMandatoryControlPoints", (PyCFunction) _wrap_wxPyShape_MakeMandatoryControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetEventHandler", (PyCFunction) _wrap_wxPyShape_SetEventHandler, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetEventHandler", (PyCFunction) _wrap_wxPyShape_GetEventHandler, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_ResetControlPoints", (PyCFunction) _wrap_wxPyShape_ResetControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_DeleteControlPoints", (PyCFunction) _wrap_wxPyShape_DeleteControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_MakeControlPoints", (PyCFunction) _wrap_wxPyShape_MakeControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetDrawHandles", (PyCFunction) _wrap_wxPyShape_GetDrawHandles, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetDrawHandles", (PyCFunction) _wrap_wxPyShape_SetDrawHandles, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Unlink", (PyCFunction) _wrap_wxPyShape_Unlink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetChildren", (PyCFunction) _wrap_wxPyShape_GetChildren, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetTopAncestor", (PyCFunction) _wrap_wxPyShape_GetTopAncestor, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetParent", (PyCFunction) _wrap_wxPyShape_SetParent, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetParent", (PyCFunction) _wrap_wxPyShape_GetParent, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetY", (PyCFunction) _wrap_wxPyShape_SetY, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetX", (PyCFunction) _wrap_wxPyShape_SetX, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetY", (PyCFunction) _wrap_wxPyShape_GetY, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetX", (PyCFunction) _wrap_wxPyShape_GetX, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_RemoveFromCanvas", (PyCFunction) _wrap_wxPyShape_RemoveFromCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_InsertInCanvas", (PyCFunction) _wrap_wxPyShape_InsertInCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_AddToCanvas", (PyCFunction) _wrap_wxPyShape_AddToCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_SetCanvas", (PyCFunction) _wrap_wxPyShape_SetCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetCanvas", (PyCFunction) _wrap_wxPyShape_GetCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetPerimeterPoint", (PyCFunction) _wrap_wxPyShape_GetPerimeterPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBoundingBoxMin", (PyCFunction) _wrap_wxPyShape_GetBoundingBoxMin, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_GetBoundingBoxMax", (PyCFunction) _wrap_wxPyShape_GetBoundingBoxMax, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape_Destroy", (PyCFunction) _wrap_wxPyShape_Destroy, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShape__setSelf", (PyCFunction) _wrap_wxPyShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnEndSize", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnBeginSize", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnMoveLink", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDrawOutline", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnEndDragRight", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDragRight", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDragLeft", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnMovePost", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnMovePre", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnSize", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnRightClick", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnLeftClick", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnHighlight", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnEraseContents", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnErase", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnMoveLinks", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDrawBranches", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDrawContents", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDraw", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_base_OnDelete", (PyCFunction) _wrap_wxPyShapeEvtHandler_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_CreateNewCopy", (PyCFunction) _wrap_wxPyShapeEvtHandler_CreateNewCopy, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_GetPreviousHandler", (PyCFunction) _wrap_wxPyShapeEvtHandler_GetPreviousHandler, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_SetPreviousHandler", (PyCFunction) _wrap_wxPyShapeEvtHandler_SetPreviousHandler, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_GetShape", (PyCFunction) _wrap_wxPyShapeEvtHandler_GetShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_SetShape", (PyCFunction) _wrap_wxPyShapeEvtHandler_SetShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler_Destroy", (PyCFunction) _wrap_wxPyShapeEvtHandler_Destroy, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeEvtHandler__setSelf", (PyCFunction) _wrap_wxPyShapeEvtHandler__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyShapeEvtHandler", (PyCFunction) _wrap_new_wxPyShapeEvtHandler, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_ClearText", (PyCFunction) _wrap_wxShapeRegion_ClearText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetHeight", (PyCFunction) _wrap_wxShapeRegion_GetHeight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetWidth", (PyCFunction) _wrap_wxShapeRegion_GetWidth, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetActualPen", (PyCFunction) _wrap_wxShapeRegion_GetActualPen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetPenColour", (PyCFunction) _wrap_wxShapeRegion_SetPenColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetPenStyle", (PyCFunction) _wrap_wxShapeRegion_SetPenStyle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetPenStyle", (PyCFunction) _wrap_wxShapeRegion_GetPenStyle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetPenColour", (PyCFunction) _wrap_wxShapeRegion_GetPenColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetFormattedText", (PyCFunction) _wrap_wxShapeRegion_GetFormattedText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetActualColourObject", (PyCFunction) _wrap_wxShapeRegion_GetActualColourObject, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetColour", (PyCFunction) _wrap_wxShapeRegion_GetColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetName", (PyCFunction) _wrap_wxShapeRegion_GetName, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetFormatMode", (PyCFunction) _wrap_wxShapeRegion_GetFormatMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetPosition", (PyCFunction) _wrap_wxShapeRegion_GetPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetSize", (PyCFunction) _wrap_wxShapeRegion_GetSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetProportion", (PyCFunction) _wrap_wxShapeRegion_GetProportion, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetMinSize", (PyCFunction) _wrap_wxShapeRegion_GetMinSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetFont", (PyCFunction) _wrap_wxShapeRegion_GetFont, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_GetText", (PyCFunction) _wrap_wxShapeRegion_GetText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetColour", (PyCFunction) _wrap_wxShapeRegion_SetColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetName", (PyCFunction) _wrap_wxShapeRegion_SetName, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetFormatMode", (PyCFunction) _wrap_wxShapeRegion_SetFormatMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetProportions", (PyCFunction) _wrap_wxShapeRegion_SetProportions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetPosition", (PyCFunction) _wrap_wxShapeRegion_SetPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetSize", (PyCFunction) _wrap_wxShapeRegion_SetSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetMinSize", (PyCFunction) _wrap_wxShapeRegion_SetMinSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetFont", (PyCFunction) _wrap_wxShapeRegion_SetFont, METH_VARARGS | METH_KEYWORDS },
+	 { "wxShapeRegion_SetText", (PyCFunction) _wrap_wxShapeRegion_SetText, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxShapeRegion", (PyCFunction) _wrap_new_wxShapeRegion, METH_VARARGS | METH_KEYWORDS },
+	 { NULL, NULL }
+};
+#ifdef __cplusplus
+}
+#endif
+/*
+ * This table is used by the pointer type-checker
+ */
+static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
+    { "_wxAcceleratorTable","_class_wxAcceleratorTable",0},
+    { "_wxEvent","_class_wxEvent",0},
+    { "_class_wxActivateEvent","_wxActivateEvent",0},
+    { "_signed_long","_long",0},
+    { "_wxMenuEvent","_class_wxMenuEvent",0},
+    { "_class_wxJPEGHandler","_wxJPEGHandler",0},
+    { "_wxBMPHandler","_class_wxBMPHandler",0},
+    { "_wxImage","_class_wxImage",0},
+    { "_wxPrintQuality","_int",0},
+    { "_wxPrintQuality","_signed_int",0},
+    { "_wxPrintQuality","_unsigned_int",0},
+    { "_wxPrintQuality","_wxWindowID",0},
+    { "_wxPrintQuality","_uint",0},
+    { "_wxPrintQuality","_EBool",0},
+    { "_wxPrintQuality","_size_t",0},
+    { "_wxFontData","_class_wxFontData",0},
+    { "___wxPyCleanup","_class___wxPyCleanup",0},
+    { "_class_wxRegionIterator","_wxRegionIterator",0},
+    { "_class_wxMenuBar","_wxMenuBar",0},
+    { "_class_wxPyTreeItemData","_wxPyTreeItemData",0},
+    { "_class_wxEvtHandler","_wxEvtHandler",0},
+    { "_wxPaintEvent","_class_wxPaintEvent",0},
+    { "_wxGIFHandler","_class_wxGIFHandler",0},
+    { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
+    { "_wxCursor","_class_wxCursor",0},
+    { "_wxNotifyEvent","_class_wxNotifyEvent",0},
+    { "_wxImageHandler","_class_wxImageHandler",0},
+    { "_class_wxTreeCtrl","_wxTreeCtrl",0},
+    { "_wxMask","_class_wxMask",0},
+    { "_wxToolTip","_class_wxToolTip",0},
+    { "_wxGrid","_class_wxGrid",0},
+    { "_wxPNGHandler","_class_wxPNGHandler",0},
+    { "_class_wxColourData","_wxColourData",0},
+    { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0},
+    { "_wxPrinter","_class_wxPrinter",0},
+    { "_wxPen","_class_wxPen",0},
+    { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0},
+    { "_byte","_unsigned_char",0},
+    { "_wxStaticBox","_class_wxStaticBox",0},
+    { "_wxChoice","_class_wxChoice",0},
+    { "_wxSlider","_class_wxSlider",0},
+    { "_wxNotebookEvent","_class_wxNotebookEvent",0},
+    { "_wxPyPrintout","_class_wxPyPrintout",0},
+    { "_wxShapeRegion","_class_wxShapeRegion",0},
+    { "_long","_wxDash",0},
+    { "_long","_unsigned_long",0},
+    { "_long","_signed_long",0},
+    { "_wxImageList","_class_wxImageList",0},
+    { "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
+    { "_wxBitmapButton","_class_wxBitmapButton",0},
+    { "_wxSashWindow","_class_wxSashWindow",0},
+    { "_class_wxPrintDialogData","_wxPrintDialogData",0},
+    { "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
+    { "_class_wxGauge","_wxGauge",0},
+    { "_class_wxSashEvent","_wxSashEvent",0},
+    { "_wxDC","_class_wxDC",0},
+    { "_wxListEvent","_class_wxListEvent",0},
+    { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0},
+    { "_wxProgressDialog","_class_wxProgressDialog",0},
+    { "_class_wxBMPHandler","_wxBMPHandler",0},
+    { "_wxPrintPreview","_class_wxPrintPreview",0},
+    { "_wxSpinEvent","_class_wxSpinEvent",0},
+    { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0},
+    { "_size_t","_wxPrintQuality",0},
+    { "_size_t","_unsigned_int",0},
+    { "_size_t","_int",0},
+    { "_size_t","_wxWindowID",0},
+    { "_size_t","_uint",0},
+    { "_class_wxRealPoint","_wxRealPoint",0},
+    { "_wxPrinterDC","_class_wxPrinterDC",0},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyShape",SwigwxPyShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyShape",SwigwxPyShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyShapeEvtHandler",0},
+    { "_class_wxMenuItem","_wxMenuItem",0},
+    { "_class_wxPaintEvent","_wxPaintEvent",0},
+    { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
+    { "_class_wxStatusBar","_wxStatusBar",0},
+    { "_class_wxGIFHandler","_wxGIFHandler",0},
+    { "_wxPanel","_class_wxPanel",0},
+    { "_wxInitDialogEvent","_class_wxInitDialogEvent",0},
+    { "_wxCheckBox","_class_wxCheckBox",0},
+    { "_wxPyEvent","_class_wxPyEvent",0},
+    { "_wxTextCtrl","_class_wxTextCtrl",0},
+    { "_class_wxMask","_wxMask",0},
+    { "_class_wxToolTip","_wxToolTip",0},
+    { "_class_wxKeyEvent","_wxKeyEvent",0},
+    { "_class_wxGrid","_wxGrid",0},
+    { "_class_wxPNGHandler","_wxPNGHandler",0},
+    { "_wxColour","_class_wxColour",0},
+    { "_class_wxDialog","_wxDialog",0},
+    { "_wxPageSetupDialog","_class_wxPageSetupDialog",0},
+    { "_class_wxPrinter","_wxPrinter",0},
+    { "_wxIdleEvent","_class_wxIdleEvent",0},
+    { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
+    { "_wxToolBar","_class_wxToolBar",0},
+    { "_wxStaticLine","_class_wxStaticLine",0},
+    { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0},
+    { "_wxBrush","_class_wxBrush",0},
+    { "_wxMiniFrame","_class_wxMiniFrame",0},
+    { "_class_wxNotebookEvent","_wxNotebookEvent",0},
+    { "_class_wxPyPrintout","_wxPyPrintout",0},
+    { "_class_wxSashWindow","_wxSashWindow",0},
+    { "_wxShowEvent","_class_wxShowEvent",0},
+    { "_uint","_wxPrintQuality",0},
+    { "_uint","_size_t",0},
+    { "_uint","_unsigned_int",0},
+    { "_uint","_int",0},
+    { "_uint","_wxWindowID",0},
+    { "_class_wxEvent","_wxEvent",0},
+    { "_wxCheckListBox","_class_wxCheckListBox",0},
+    { "_wxSplitterEvent","_class_wxSplitterEvent",0},
+    { "_wxGridEvent","_class_wxGridEvent",0},
+    { "_wxRect","_class_wxRect",0},
+    { "_wxCommandEvent","_class_wxCommandEvent",0},
+    { "_wxSizeEvent","_class_wxSizeEvent",0},
+    { "_class_wxImage","_wxImage",0},
+    { "_wxPoint","_class_wxPoint",0},
+    { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0},
+    { "_class_wxButton","_wxButton",0},
+    { "_wxRadioBox","_class_wxRadioBox",0},
+    { "_class_wxFontData","_wxFontData",0},
+    { "_class___wxPyCleanup","___wxPyCleanup",0},
+    { "_wxBitmap","_class_wxBitmap",0},
+    { "_wxTaskBarIcon","_class_wxTaskBarIcon",0},
+    { "_wxPrintDialog","_class_wxPrintDialog",0},
+    { "_wxPyTimer","_class_wxPyTimer",0},
+    { "_wxWindowDC","_class_wxWindowDC",0},
+    { "_wxScrollBar","_class_wxScrollBar",0},
+    { "_wxSpinButton","_class_wxSpinButton",0},
+    { "_wxToolBarTool","_class_wxToolBarTool",0},
+    { "_wxColourDialog","_class_wxColourDialog",0},
+    { "_wxPrintData","_class_wxPrintData",0},
+    { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
+    { "_class_wxNotifyEvent","_wxNotifyEvent",0},
+    { "_wxMessageDialog","_class_wxMessageDialog",0},
+    { "_class_wxPyEvent","_wxPyEvent",0},
+    { "_wxTextEntryDialog","_class_wxTextEntryDialog",0},
+    { "_class_wxIconizeEvent","_wxIconizeEvent",0},
+    { "_class_wxStaticBitmap","_wxStaticBitmap",0},
+    { "_wxMDIChildFrame","_class_wxMDIChildFrame",0},
+    { "_wxListItem","_class_wxListItem",0},
+    { "_class_wxToolBar","_wxToolBar",0},
+    { "_class_wxStaticLine","_wxStaticLine",0},
+    { "_wxScrollEvent","_class_wxScrollEvent",0},
+    { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0},
+    { "_class_wxShapeRegion","_wxShapeRegion",0},
+    { "_EBool","_wxPrintQuality",0},
+    { "_EBool","_signed_int",0},
+    { "_EBool","_int",0},
+    { "_EBool","_wxWindowID",0},
+    { "_class_wxRegion","_wxRegion",0},
+    { "_class_wxDropFilesEvent","_wxDropFilesEvent",0},
+    { "_class_wxPreviewFrame","_wxPreviewFrame",0},
+    { "_wxStaticText","_class_wxStaticText",0},
+    { "_wxFont","_class_wxFont",0},
+    { "_wxCloseEvent","_class_wxCloseEvent",0},
+    { "_class_wxSplitterEvent","_wxSplitterEvent",0},
+    { "_wxNotebook","_class_wxNotebook",0},
+    { "_unsigned_long","_wxDash",0},
+    { "_unsigned_long","_long",0},
+    { "_class_wxRect","_wxRect",0},
+    { "_class_wxDC","_wxDC",0},
+    { "_class_wxProgressDialog","_wxProgressDialog",0},
+    { "_wxPyApp","_class_wxPyApp",0},
+    { "_wxMDIParentFrame","_class_wxMDIParentFrame",0},
+    { "_class_wxTreeEvent","_wxTreeEvent",0},
+    { "_class_wxDirDialog","_wxDirDialog",0},
+    { "_class_wxPyTimer","_wxPyTimer",0},
+    { "_wxFocusEvent","_class_wxFocusEvent",0},
+    { "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
+    { "_class_wxSpinButton","_wxSpinButton",0},
+    { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
+    { "_class_wxPanel","_wxPanel",0},
+    { "_class_wxCheckBox","_wxCheckBox",0},
+    { "_wxComboBox","_class_wxComboBox",0},
+    { "_wxRadioButton","_class_wxRadioButton",0},
+    { "_class_wxMessageDialog","_wxMessageDialog",0},
+    { "_signed_int","_wxPrintQuality",0},
+    { "_signed_int","_EBool",0},
+    { "_signed_int","_wxWindowID",0},
+    { "_signed_int","_int",0},
+    { "_class_wxTextCtrl","_wxTextCtrl",0},
+    { "_wxLayoutConstraints","_class_wxLayoutConstraints",0},
+    { "_wxMetaFileDC","_class_wxMetaFileDC",0},
+    { "_wxMenu","_class_wxMenu",0},
+    { "_class_wxMoveEvent","_wxMoveEvent",0},
+    { "_wxListBox","_class_wxListBox",0},
+    { "_wxScreenDC","_class_wxScreenDC",0},
+    { "_class_wxMDIChildFrame","_wxMDIChildFrame",0},
+    { "_WXTYPE","_short",0},
+    { "_WXTYPE","_signed_short",0},
+    { "_WXTYPE","_unsigned_short",0},
+    { "_wxFileDialog","_class_wxFileDialog",0},
+    { "_class_wxMDIClientWindow","_wxMDIClientWindow",0},
+    { "_class_wxBrush","_wxBrush",0},
+    { "_unsigned_short","_WXTYPE",0},
+    { "_unsigned_short","_short",0},
+    { "_class_wxWindow","_wxWindow",0},
+    { "_wxSplitterWindow","_class_wxSplitterWindow",0},
+    { "_class_wxStaticText","_wxStaticText",0},
+    { "_wxPrintDialogData","_class_wxPrintDialogData",0},
+    { "_class_wxFont","_wxFont",0},
+    { "_class_wxCloseEvent","_wxCloseEvent",0},
+    { "_wxSashEvent","_class_wxSashEvent",0},
+    { "_class_wxMenuEvent","_wxMenuEvent",0},
+    { "_wxClientDC","_class_wxClientDC",0},
+    { "_wxMouseEvent","_class_wxMouseEvent",0},
+    { "_wxListCtrl","_class_wxListCtrl",0},
+    { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0},
+    { "_class_wxPoint","_wxPoint",0},
+    { "_wxRealPoint","_class_wxRealPoint",0},
+    { "_class_wxRadioBox","_wxRadioBox",0},
+    { "_wxGridCell","_class_wxGridCell",0},
+    { "_signed_short","_WXTYPE",0},
+    { "_signed_short","_short",0},
+    { "_wxMemoryDC","_class_wxMemoryDC",0},
+    { "_class_wxTaskBarIcon","_wxTaskBarIcon",0},
+    { "_class_wxPrintDialog","_wxPrintDialog",0},
+    { "_wxPaintDC","_class_wxPaintDC",0},
+    { "_class_wxWindowDC","_wxWindowDC",0},
+    { "_class_wxFocusEvent","_wxFocusEvent",0},
+    { "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
+    { "_wxStatusBar","_class_wxStatusBar",0},
+    { "_class_wxToolBarTool","_wxToolBarTool",0},
+    { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
+    { "_class_wxCursor","_wxCursor",0},
+    { "_class_wxImageHandler","_wxImageHandler",0},
+    { "_wxPyShape","_class_wxPyShape",0},
+    { "_wxScrolledWindow","_class_wxScrolledWindow",0},
+    { "_wxTreeItemId","_class_wxTreeItemId",0},
+    { "_unsigned_char","_byte",0},
+    { "_class_wxMetaFileDC","_wxMetaFileDC",0},
+    { "_class_wxMenu","_wxMenu",0},
+    { "_wxControl","_class_wxControl",0},
+    { "_class_wxListBox","_wxListBox",0},
+    { "_unsigned_int","_wxPrintQuality",0},
+    { "_unsigned_int","_size_t",0},
+    { "_unsigned_int","_uint",0},
+    { "_unsigned_int","_wxWindowID",0},
+    { "_unsigned_int","_int",0},
+    { "_wxIcon","_class_wxIcon",0},
+    { "_wxDialog","_class_wxDialog",0},
+    { "_class_wxListItem","_wxListItem",0},
+    { "_class_wxPen","_wxPen",0},
+    { "_class_wxFileDialog","_wxFileDialog",0},
+    { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0},
+    { "_short","_WXTYPE",0},
+    { "_short","_unsigned_short",0},
+    { "_short","_signed_short",0},
+    { "_class_wxStaticBox","_wxStaticBox",0},
+    { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0},
+    { "_class_wxScrollEvent","_wxScrollEvent",0},
+    { "_wxJoystickEvent","_class_wxJoystickEvent",0},
+    { "_class_wxChoice","_wxChoice",0},
+    { "_class_wxSlider","_wxSlider",0},
+    { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0},
+    { "_class_wxImageList","_wxImageList",0},
+    { "_class_wxBitmapButton","_wxBitmapButton",0},
+    { "_wxFrame","_class_wxFrame",0},
+    { "_class_wxNotebook","_wxNotebook",0},
+    { "_wxJPEGHandler","_class_wxJPEGHandler",0},
+    { "_wxWindowID","_wxPrintQuality",0},
+    { "_wxWindowID","_size_t",0},
+    { "_wxWindowID","_EBool",0},
+    { "_wxWindowID","_uint",0},
+    { "_wxWindowID","_int",0},
+    { "_wxWindowID","_signed_int",0},
+    { "_wxWindowID","_unsigned_int",0},
+    { "_int","_wxPrintQuality",0},
+    { "_int","_size_t",0},
+    { "_int","_EBool",0},
+    { "_int","_uint",0},
+    { "_int","_wxWindowID",0},
+    { "_int","_unsigned_int",0},
+    { "_int","_signed_int",0},
+    { "_class_wxMouseEvent","_wxMouseEvent",0},
+    { "_class_wxListEvent","_wxListEvent",0},
+    { "_class_wxPrintPreview","_wxPrintPreview",0},
+    { "_class_wxSpinEvent","_wxSpinEvent",0},
+    { "_wxButton","_class_wxButton",0},
+    { "_class_wxPyApp","_wxPyApp",0},
+    { "_wxSize","_class_wxSize",0},
+    { "_wxRegionIterator","_class_wxRegionIterator",0},
+    { "_class_wxPrinterDC","_wxPrinterDC",0},
+    { "_class_wxMDIParentFrame","_wxMDIParentFrame",0},
+    { "_wxPyTreeItemData","_class_wxPyTreeItemData",0},
+    { "_class_wxPaintDC","_wxPaintDC",0},
+    { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
+    { "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
+    { "_class_wxComboBox","_wxComboBox",0},
+    { "_class_wxRadioButton","_wxRadioButton",0},
+    { "_class_wxPyShape","_wxPyShape",0},
+    { "_class_wxTreeItemId","_wxTreeItemId",0},
+    { "_wxTreeCtrl","_class_wxTreeCtrl",0},
+    { "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
+    { "_wxIconizeEvent","_class_wxIconizeEvent",0},
+    { "_class_wxControl","_wxControl",0},
+    { "_wxStaticBitmap","_class_wxStaticBitmap",0},
+    { "_class_wxIcon","_wxIcon",0},
+    { "_class_wxColour","_wxColour",0},
+    { "_class_wxScreenDC","_wxScreenDC",0},
+    { "_class_wxPageSetupDialog","_wxPageSetupDialog",0},
+    { "_wxPalette","_class_wxPalette",0},
+    { "_class_wxIdleEvent","_wxIdleEvent",0},
+    { "_wxEraseEvent","_class_wxEraseEvent",0},
+    { "_class_wxJoystickEvent","_wxJoystickEvent",0},
+    { "_class_wxMiniFrame","_wxMiniFrame",0},
+    { "_wxFontDialog","_class_wxFontDialog",0},
+    { "_wxRegion","_class_wxRegion",0},
+    { "_class_wxSplitterWindow","_wxSplitterWindow",0},
+    { "_wxPreviewFrame","_class_wxPreviewFrame",0},
+    { "_class_wxShowEvent","_wxShowEvent",0},
+    { "_wxActivateEvent","_class_wxActivateEvent",0},
+    { "_wxGauge","_class_wxGauge",0},
+    { "_class_wxCheckListBox","_wxCheckListBox",0},
+    { "_class_wxGridEvent","_wxGridEvent",0},
+    { "_class_wxCommandEvent","_wxCommandEvent",0},
+    { "_class_wxClientDC","_wxClientDC",0},
+    { "_class_wxSizeEvent","_wxSizeEvent",0},
+    { "_class_wxListCtrl","_wxListCtrl",0},
+    { "_class_wxGridCell","_wxGridCell",0},
+    { "_class_wxSize","_wxSize",0},
+    { "_class_wxBitmap","_wxBitmap",0},
+    { "_class_wxMemoryDC","_wxMemoryDC",0},
+    { "_wxMenuBar","_class_wxMenuBar",0},
+    { "_wxTreeEvent","_class_wxTreeEvent",0},
+    { "_wxDirDialog","_class_wxDirDialog",0},
+    { "_wxPyShapeEvtHandler","_class_wxPyShape",SwigwxPyShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyShape",SwigwxPyShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyShapeEvtHandler",0},
+    { "_wxEvtHandler","_class_wxEvtHandler",0},
+    { "_wxMenuItem","_class_wxMenuItem",0},
+    { "_class_wxScrollBar","_wxScrollBar",0},
+    { "_class_wxColourDialog","_wxColourDialog",0},
+    { "_class_wxPrintData","_wxPrintData",0},
+    { "_wxDash","_unsigned_long",0},
+    { "_wxDash","_long",0},
+    { "_class_wxScrolledWindow","_wxScrolledWindow",0},
+    { "_class_wxTextEntryDialog","_wxTextEntryDialog",0},
+    { "_wxKeyEvent","_class_wxKeyEvent",0},
+    { "_wxMoveEvent","_class_wxMoveEvent",0},
+    { "_wxColourData","_class_wxColourData",0},
+    { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0},
+    { "_class_wxPalette","_wxPalette",0},
+    { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0},
+    { "_class_wxEraseEvent","_wxEraseEvent",0},
+    { "_wxMDIClientWindow","_class_wxMDIClientWindow",0},
+    { "_class_wxFontDialog","_wxFontDialog",0},
+    { "_wxWindow","_class_wxWindow",0},
+    { "_class_wxFrame","_wxFrame",0},
+{0,0,0}};
+
+static PyObject *SWIG_globals;
+#ifdef __cplusplus
+extern "C" 
+#endif
+SWIGEXPORT(void) initoglbasicc() {
+	 PyObject *m, *d;
+	 SWIG_globals = SWIG_newvarlink();
+	 m = Py_InitModule("oglbasicc", oglbasiccMethods);
+	 d = PyModule_GetDict(m);
+{
+   int i;
+   for (i = 0; _swig_mapping[i].n1; i++)
+        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
+}
+}
diff --git a/utils/wxPython/modules/ogl/oglbasic.i b/utils/wxPython/modules/ogl/oglbasic.i
new file mode 100644
index 0000000000..ffa9360cb3
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglbasic.i
@@ -0,0 +1,380 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        oglbasic.i
+// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
+//
+// Author:      Robin Dunn
+//
+// Created:     3-Sept-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+%module oglbasic
+
+%{
+#include "helpers.h"
+#include "oglhelpers.h"
+%}
+
+//---------------------------------------------------------------------------
+
+%include typemaps.i
+%include my_typemaps.i
+
+%extern wx.i
+%import windows.i
+%extern _defs.i
+%extern misc.i
+%extern gdi.i
+
+%include _ogldefs.i
+
+//%extern oglcanvas.i
+
+
+%pragma(python) code = "import wx"
+%pragma(python) code = "from oglcanvas import wxPyShapeCanvasPtr"
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+
+class wxShapeRegion {
+public:
+    wxShapeRegion();
+    //~wxShapeRegion();
+
+    void SetText(const wxString& s);
+    void SetFont(wxFont *f);
+    void SetMinSize(double w, double h);
+    void SetSize(double w, double h);
+    void SetPosition(double x, double y);
+    void SetProportions(double x, double y);
+    void SetFormatMode(int mode);
+    void SetName(const wxString& s);
+    void SetColour(const wxString& col);
+
+    wxString GetText();
+    wxFont *GetFont();
+    void GetMinSize(double *x, double *y);
+    void GetProportion(double *x, double *y);
+    void GetSize(double *x, double *y);
+    void GetPosition(double *xp, double *yp);
+    int GetFormatMode();
+    wxString GetName();
+    wxString GetColour();
+    wxColour *GetActualColourObject();
+    wxList& GetFormattedText();
+    wxString GetPenColour();
+    int GetPenStyle();
+    void SetPenStyle(int style);
+    void SetPenColour(const wxString& col);
+    wxPen *GetActualPen();
+    double GetWidth();
+    double GetHeight();
+
+    void ClearText();
+};
+
+
+//---------------------------------------------------------------------------
+
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyShapeEvtHandler,wxShapeEvtHandler);
+%}
+
+
+class wxPyShapeEvtHandler {
+public:
+    wxPyShapeEvtHandler(wxPyShapeEvtHandler *prev = NULL,
+                        wxPyShape *shape = NULL);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    %addmethods {
+        void Destroy() { delete self; }
+    }
+
+    void SetShape(wxPyShape *sh);
+    wxPyShape *GetShape();
+    void SetPreviousHandler(wxPyShapeEvtHandler* handler);
+    wxPyShapeEvtHandler* GetPreviousHandler();
+    wxPyShapeEvtHandler* CreateNewCopy();
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyShape, wxShape);
+%}
+
+
+class wxPyShape : public wxPyShapeEvtHandler {
+public:
+    // wxPyShape(wxPyShapeCanvas *can = NULL);     abstract base class...
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    %addmethods {
+        void Destroy() { delete self; }
+    }
+
+    void GetBoundingBoxMax(double *OUTPUT, double *OUTPUT);
+    void GetBoundingBoxMin(double *OUTPUT, double *OUTPUT);
+    bool GetPerimeterPoint(double x1, double y1,
+                           double x2, double y2,
+                           double *OUTPUT, double *OUTPUT);
+    wxPyShapeCanvas *GetCanvas();
+    void SetCanvas(wxPyShapeCanvas *the_canvas);
+    void AddToCanvas(wxPyShapeCanvas *the_canvas, wxPyShape *addAfter = NULL);
+    void InsertInCanvas(wxPyShapeCanvas *the_canvas);
+    void RemoveFromCanvas(wxPyShapeCanvas *the_canvas);
+    double GetX();
+    double GetY();
+    void SetX(double x);
+    void SetY(double y);
+    wxPyShape *GetParent();
+    void SetParent(wxPyShape *p);
+    wxPyShape *GetTopAncestor();
+
+
+    // wxList& GetChildren();
+    %addmethods {
+        PyObject* GetChildren() {
+            wxList& list = self->GetChildren();
+            return wxPy_ConvertList(&list, "wxPyShape");
+        }
+    }
+
+
+    void Unlink();
+    void SetDrawHandles(bool drawH);
+    bool GetDrawHandles();
+    void MakeControlPoints();
+    void DeleteControlPoints(wxDC *dc = NULL);
+    void ResetControlPoints();
+    wxPyShapeEvtHandler *GetEventHandler();
+    void SetEventHandler(wxPyShapeEvtHandler *handler);
+    void MakeMandatoryControlPoints();
+    void ResetMandatoryControlPoints();
+    bool Recompute();
+    void CalculateSize();
+    void Select(bool select = TRUE, wxDC* dc = NULL);
+    void SetHighlight(bool hi = TRUE, bool recurse = FALSE);
+    bool IsHighlighted() ;
+    bool Selected();
+    bool AncestorSelected();
+    void SetSensitivityFilter(int sens = OP_ALL, bool recursive = FALSE);
+    int GetSensitivityFilter();
+    void SetDraggable(bool drag, bool recursive = FALSE);
+    void SetFixedSize(bool x, bool y);
+    void GetFixedSize(bool *OUTPUT, bool *OUTPUT) ;
+    bool GetFixedWidth();
+    bool GetFixedHeight();
+    void SetSpaceAttachments(bool sp);
+    bool GetSpaceAttachments() ;
+    void SetShadowMode(int mode, bool redraw = FALSE);
+    int GetShadowMode();
+    bool HitTest(double x, double y, int *OUTPUT, double *OUTPUT);
+    void SetCentreResize(bool cr);
+    bool GetCentreResize();
+    void SetMaintainAspectRatio(bool ar);
+    bool GetMaintainAspectRatio();
+
+
+    // wxList& GetLines();
+    %addmethods {
+        PyObject* GetLines() {
+            wxList& list = self->GetLines();
+            return wxPy_ConvertList(&list, "wxPyLineShape");
+        }
+    }
+
+    void SetDisableLabel(bool flag);
+    bool GetDisableLabel();
+    void SetAttachmentMode(int mode);
+    int GetAttachmentMode();
+    void SetId(long i);
+    long GetId();
+    void SetPen(wxPen *pen);
+    void SetBrush(wxBrush *brush);
+    void SetClientData(wxObject *client_data);
+    wxObject *GetClientData() ;
+    void Show(bool show);
+    bool IsShown();
+    void Move(wxDC& dc, double x1, double y1, bool display = TRUE);
+    void Erase(wxDC& dc);
+    void EraseContents(wxDC& dc);
+    void Draw(wxDC& dc);
+    void Flash();
+    void MoveLinks(wxDC& dc);
+    void DrawContents(wxDC& dc);
+    void SetSize(double x, double y, bool recursive = TRUE);
+    void SetAttachmentSize(double x, double y);
+    void Attach(wxPyShapeCanvas *can);
+    void Detach();
+    bool Constrain();
+    void AddLine(wxPyLineShape *line, wxPyShape *other,
+                 int attachFrom = 0, int attachTo = 0,
+                 int positionFrom = -1, int positionTo = -1);
+    int GetLinePosition(wxPyLineShape* line);
+    void AddText(const wxString& string);
+    wxPen *GetPen();
+    wxBrush *GetBrush();
+    void SetDefaultRegionSize();
+    void FormatText(wxDC& dc, const wxString& s, int regionId = 0);
+    void SetFormatMode(int mode, int regionId = 0);
+    int GetFormatMode(int regionId = 0);
+    void SetFont(wxFont *font, int regionId = 0);
+    wxFont *GetFont(int regionId = 0);
+    void SetTextColour(const wxString& colour, int regionId = 0);
+    wxString GetTextColour(int regionId = 0);
+    int GetNumberOfTextRegions();
+    void SetRegionName(const wxString& name, int regionId = 0);
+    wxString GetRegionName(int regionId);
+    int GetRegionId(const wxString& name);
+    void NameRegions(const wxString& parentName = "");
+
+    // wxList& GetRegions();
+    %addmethods {
+        PyObject* GetRegions() {
+            wxList& list = self->GetRegions();
+            return wxPy_ConvertList(&list, "wxShapeRegion");
+        }
+    }
+
+    void AddRegion(wxShapeRegion *region);
+    void ClearRegions();
+    void AssignNewIds();
+    wxPyShape *FindRegion(const wxString& regionName, int *regionId);
+    void FindRegionNames(wxStringList& list);
+    void ClearText(int regionId = 0);
+    void RemoveLine(wxPyLineShape *line);
+
+#ifdef PROLOGIO
+    void WriteAttributes(wxExpr *clause);
+    void ReadAttributes(wxExpr *clause);
+    void ReadConstraints(wxExpr *clause, wxExprDatabase *database);
+    void WriteRegions(wxExpr *clause);
+    void ReadRegions(wxExpr *clause);
+#endif
+
+    bool GetAttachmentPosition(int attachment, double *x, double *y,
+                               int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
+    int GetNumberOfAttachments();
+    bool AttachmentIsValid(int attachment);
+    bool GetAttachmentPositionEdge(int attachment, double *x, double *y,
+                                   int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
+    wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2,
+                                     int nth, int noArcs, wxPyLineShape* line);
+    bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2);
+    void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE);
+    void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE);
+    bool MoveLineToNewAttachment(wxDC& dc, wxPyLineShape *to_move,
+                                 double x, double y);
+
+    //void ApplyAttachmentOrdering(wxList& linesToSort);
+    %addmethods {
+        void ApplyAttachmentOrdering(PyObject* linesToSort) {
+            wxList* list = wxPy_wxListHelper(linesToSort, "wxPyLineShape");
+            self->ApplyAttachmentOrdering(*list);
+            delete list;
+        }
+    }
+
+    wxRealPoint GetBranchingAttachmentRoot(int attachment);
+    bool GetBranchingAttachmentInfo(int attachment, wxRealPoint& root, wxRealPoint& neck,
+                                    wxRealPoint& shoulder1, wxRealPoint& shoulder2);
+    bool GetBranchingAttachmentPoint(int attachment, int n, wxRealPoint& attachmentPoint,
+                                     wxRealPoint& stemPoint);
+    int GetAttachmentLineCount(int attachment);
+    void SetBranchNeckLength(int len);
+    int GetBranchNeckLength();
+    void SetBranchStemLength(int len);
+    int GetBranchStemLength();
+    void SetBranchSpacing(int len);
+    int GetBranchSpacing();
+    void SetBranchStyle(long style);
+    long GetBranchStyle();
+    int PhysicalToLogicalAttachment(int physicalAttachment);
+    int LogicalToPhysicalAttachment(int logicalAttachment);
+    bool Draggable();
+    bool HasDescendant(wxPyShape *image);
+    wxPyShape *CreateNewCopy(bool resetMapping = TRUE, bool recompute = TRUE);
+    void Copy(wxPyShape& copy);
+    void CopyWithHandler(wxPyShape& copy);
+    void Rotate(double x, double y, double theta);
+    double GetRotation();
+    void ClearAttachments();
+    void Recentre(wxDC& dc);
+    void ClearPointList(wxList& list);
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+
+//---------------------------------------------------------------------------
+
diff --git a/utils/wxPython/modules/ogl/oglbasic.py b/utils/wxPython/modules/ogl/oglbasic.py
new file mode 100644
index 0000000000..cc3a523383
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglbasic.py
@@ -0,0 +1,788 @@
+# This file was created automatically by SWIG.
+import oglbasicc
+
+from misc import *
+
+from misc2 import *
+
+from windows import *
+
+from gdi import *
+
+from events import *
+
+from mdi import *
+
+from frames import *
+
+from stattool import *
+
+from controls import *
+
+from controls2 import *
+
+from windows2 import *
+
+from cmndlgs import *
+
+from windows3 import *
+
+from image import *
+
+from printfw import *
+import wx
+from oglcanvas import wxPyShapeCanvasPtr
+class wxShapeRegionPtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def SetText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetText,(self,) + _args, _kwargs)
+        return val
+    def SetFont(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetFont,(self,) + _args, _kwargs)
+        return val
+    def SetMinSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetMinSize,(self,) + _args, _kwargs)
+        return val
+    def SetSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetSize,(self,) + _args, _kwargs)
+        return val
+    def SetPosition(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetPosition,(self,) + _args, _kwargs)
+        return val
+    def SetProportions(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetProportions,(self,) + _args, _kwargs)
+        return val
+    def SetFormatMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetFormatMode,(self,) + _args, _kwargs)
+        return val
+    def SetName(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetName,(self,) + _args, _kwargs)
+        return val
+    def SetColour(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetColour,(self,) + _args, _kwargs)
+        return val
+    def GetText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetText,(self,) + _args, _kwargs)
+        return val
+    def GetFont(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetFont,(self,) + _args, _kwargs)
+        if val: val = wxFontPtr(val) 
+        return val
+    def GetMinSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetMinSize,(self,) + _args, _kwargs)
+        return val
+    def GetProportion(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetProportion,(self,) + _args, _kwargs)
+        return val
+    def GetSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetSize,(self,) + _args, _kwargs)
+        return val
+    def GetPosition(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetPosition,(self,) + _args, _kwargs)
+        return val
+    def GetFormatMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetFormatMode,(self,) + _args, _kwargs)
+        return val
+    def GetName(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetName,(self,) + _args, _kwargs)
+        return val
+    def GetColour(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetColour,(self,) + _args, _kwargs)
+        return val
+    def GetActualColourObject(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetActualColourObject,(self,) + _args, _kwargs)
+        if val: val = wxColourPtr(val) 
+        return val
+    def GetFormattedText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetFormattedText,(self,) + _args, _kwargs)
+        return val
+    def GetPenColour(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetPenColour,(self,) + _args, _kwargs)
+        return val
+    def GetPenStyle(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetPenStyle,(self,) + _args, _kwargs)
+        return val
+    def SetPenStyle(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetPenStyle,(self,) + _args, _kwargs)
+        return val
+    def SetPenColour(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_SetPenColour,(self,) + _args, _kwargs)
+        return val
+    def GetActualPen(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetActualPen,(self,) + _args, _kwargs)
+        if val: val = wxPenPtr(val) 
+        return val
+    def GetWidth(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetWidth,(self,) + _args, _kwargs)
+        return val
+    def GetHeight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_GetHeight,(self,) + _args, _kwargs)
+        return val
+    def ClearText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxShapeRegion_ClearText,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxShapeRegion instance at %s>" % (self.this,)
+class wxShapeRegion(wxShapeRegionPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglbasicc.new_wxShapeRegion,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxPyShapeEvtHandlerPtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler__setSelf,(self,) + _args, _kwargs)
+        return val
+    def Destroy(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_Destroy,(self,) + _args, _kwargs)
+        return val
+    def SetShape(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_SetShape,(self,) + _args, _kwargs)
+        return val
+    def GetShape(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_GetShape,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def SetPreviousHandler(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_SetPreviousHandler,(self,) + _args, _kwargs)
+        return val
+    def GetPreviousHandler(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_GetPreviousHandler,(self,) + _args, _kwargs)
+        if val: val = wxPyShapeEvtHandlerPtr(val) 
+        return val
+    def CreateNewCopy(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_CreateNewCopy,(self,) + _args, _kwargs)
+        if val: val = wxPyShapeEvtHandlerPtr(val) 
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShapeEvtHandler_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyShapeEvtHandler instance at %s>" % (self.this,)
+class wxPyShapeEvtHandler(wxPyShapeEvtHandlerPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglbasicc.new_wxPyShapeEvtHandler,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyShapePtr(wxPyShapeEvtHandlerPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def Destroy(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Destroy,(self,) + _args, _kwargs)
+        return val
+    def GetBoundingBoxMax(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBoundingBoxMax,(self,) + _args, _kwargs)
+        return val
+    def GetBoundingBoxMin(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBoundingBoxMin,(self,) + _args, _kwargs)
+        return val
+    def GetPerimeterPoint(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetPerimeterPoint,(self,) + _args, _kwargs)
+        return val
+    def GetCanvas(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetCanvas,(self,) + _args, _kwargs)
+        if val: val = wxPyShapeCanvasPtr(val) 
+        return val
+    def SetCanvas(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetCanvas,(self,) + _args, _kwargs)
+        return val
+    def AddToCanvas(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AddToCanvas,(self,) + _args, _kwargs)
+        return val
+    def InsertInCanvas(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_InsertInCanvas,(self,) + _args, _kwargs)
+        return val
+    def RemoveFromCanvas(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_RemoveFromCanvas,(self,) + _args, _kwargs)
+        return val
+    def GetX(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetX,(self,) + _args, _kwargs)
+        return val
+    def GetY(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetY,(self,) + _args, _kwargs)
+        return val
+    def SetX(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetX,(self,) + _args, _kwargs)
+        return val
+    def SetY(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetY,(self,) + _args, _kwargs)
+        return val
+    def GetParent(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetParent,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def SetParent(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetParent,(self,) + _args, _kwargs)
+        return val
+    def GetTopAncestor(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetTopAncestor,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def GetChildren(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetChildren,(self,) + _args, _kwargs)
+        return val
+    def Unlink(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Unlink,(self,) + _args, _kwargs)
+        return val
+    def SetDrawHandles(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetDrawHandles,(self,) + _args, _kwargs)
+        return val
+    def GetDrawHandles(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetDrawHandles,(self,) + _args, _kwargs)
+        return val
+    def MakeControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_MakeControlPoints,(self,) + _args, _kwargs)
+        return val
+    def DeleteControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_DeleteControlPoints,(self,) + _args, _kwargs)
+        return val
+    def ResetControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ResetControlPoints,(self,) + _args, _kwargs)
+        return val
+    def GetEventHandler(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetEventHandler,(self,) + _args, _kwargs)
+        if val: val = wxPyShapeEvtHandlerPtr(val) 
+        return val
+    def SetEventHandler(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetEventHandler,(self,) + _args, _kwargs)
+        return val
+    def MakeMandatoryControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_MakeMandatoryControlPoints,(self,) + _args, _kwargs)
+        return val
+    def ResetMandatoryControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ResetMandatoryControlPoints,(self,) + _args, _kwargs)
+        return val
+    def Recompute(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Recompute,(self,) + _args, _kwargs)
+        return val
+    def CalculateSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_CalculateSize,(self,) + _args, _kwargs)
+        return val
+    def Select(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Select,(self,) + _args, _kwargs)
+        return val
+    def SetHighlight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetHighlight,(self,) + _args, _kwargs)
+        return val
+    def IsHighlighted(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_IsHighlighted,(self,) + _args, _kwargs)
+        return val
+    def Selected(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Selected,(self,) + _args, _kwargs)
+        return val
+    def AncestorSelected(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AncestorSelected,(self,) + _args, _kwargs)
+        return val
+    def SetSensitivityFilter(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetSensitivityFilter,(self,) + _args, _kwargs)
+        return val
+    def GetSensitivityFilter(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetSensitivityFilter,(self,) + _args, _kwargs)
+        return val
+    def SetDraggable(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetDraggable,(self,) + _args, _kwargs)
+        return val
+    def SetFixedSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetFixedSize,(self,) + _args, _kwargs)
+        return val
+    def GetFixedSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetFixedSize,(self,) + _args, _kwargs)
+        return val
+    def GetFixedWidth(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetFixedWidth,(self,) + _args, _kwargs)
+        return val
+    def GetFixedHeight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetFixedHeight,(self,) + _args, _kwargs)
+        return val
+    def SetSpaceAttachments(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetSpaceAttachments,(self,) + _args, _kwargs)
+        return val
+    def GetSpaceAttachments(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetSpaceAttachments,(self,) + _args, _kwargs)
+        return val
+    def SetShadowMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetShadowMode,(self,) + _args, _kwargs)
+        return val
+    def GetShadowMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetShadowMode,(self,) + _args, _kwargs)
+        return val
+    def HitTest(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_HitTest,(self,) + _args, _kwargs)
+        return val
+    def SetCentreResize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetCentreResize,(self,) + _args, _kwargs)
+        return val
+    def GetCentreResize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetCentreResize,(self,) + _args, _kwargs)
+        return val
+    def SetMaintainAspectRatio(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetMaintainAspectRatio,(self,) + _args, _kwargs)
+        return val
+    def GetMaintainAspectRatio(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetMaintainAspectRatio,(self,) + _args, _kwargs)
+        return val
+    def GetLines(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetLines,(self,) + _args, _kwargs)
+        return val
+    def SetDisableLabel(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetDisableLabel,(self,) + _args, _kwargs)
+        return val
+    def GetDisableLabel(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetDisableLabel,(self,) + _args, _kwargs)
+        return val
+    def SetAttachmentMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetAttachmentMode,(self,) + _args, _kwargs)
+        return val
+    def GetAttachmentMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetAttachmentMode,(self,) + _args, _kwargs)
+        return val
+    def SetId(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetId,(self,) + _args, _kwargs)
+        return val
+    def GetId(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetId,(self,) + _args, _kwargs)
+        return val
+    def SetPen(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetPen,(self,) + _args, _kwargs)
+        return val
+    def SetBrush(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetBrush,(self,) + _args, _kwargs)
+        return val
+    def SetClientData(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetClientData,(self,) + _args, _kwargs)
+        return val
+    def GetClientData(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetClientData,(self,) + _args, _kwargs)
+        return val
+    def Show(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Show,(self,) + _args, _kwargs)
+        return val
+    def IsShown(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_IsShown,(self,) + _args, _kwargs)
+        return val
+    def Move(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Move,(self,) + _args, _kwargs)
+        return val
+    def Erase(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Erase,(self,) + _args, _kwargs)
+        return val
+    def EraseContents(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_EraseContents,(self,) + _args, _kwargs)
+        return val
+    def Draw(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Draw,(self,) + _args, _kwargs)
+        return val
+    def Flash(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Flash,(self,) + _args, _kwargs)
+        return val
+    def MoveLinks(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_MoveLinks,(self,) + _args, _kwargs)
+        return val
+    def DrawContents(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_DrawContents,(self,) + _args, _kwargs)
+        return val
+    def SetSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetSize,(self,) + _args, _kwargs)
+        return val
+    def SetAttachmentSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetAttachmentSize,(self,) + _args, _kwargs)
+        return val
+    def Attach(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Attach,(self,) + _args, _kwargs)
+        return val
+    def Detach(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Detach,(self,) + _args, _kwargs)
+        return val
+    def Constrain(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Constrain,(self,) + _args, _kwargs)
+        return val
+    def AddLine(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AddLine,(self,) + _args, _kwargs)
+        return val
+    def GetLinePosition(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetLinePosition,(self,) + _args, _kwargs)
+        return val
+    def AddText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AddText,(self,) + _args, _kwargs)
+        return val
+    def GetPen(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetPen,(self,) + _args, _kwargs)
+        if val: val = wxPenPtr(val) 
+        return val
+    def GetBrush(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBrush,(self,) + _args, _kwargs)
+        if val: val = wxBrushPtr(val) 
+        return val
+    def SetDefaultRegionSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetDefaultRegionSize,(self,) + _args, _kwargs)
+        return val
+    def FormatText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_FormatText,(self,) + _args, _kwargs)
+        return val
+    def SetFormatMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetFormatMode,(self,) + _args, _kwargs)
+        return val
+    def GetFormatMode(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetFormatMode,(self,) + _args, _kwargs)
+        return val
+    def SetFont(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetFont,(self,) + _args, _kwargs)
+        return val
+    def GetFont(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetFont,(self,) + _args, _kwargs)
+        if val: val = wxFontPtr(val) 
+        return val
+    def SetTextColour(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetTextColour,(self,) + _args, _kwargs)
+        return val
+    def GetTextColour(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetTextColour,(self,) + _args, _kwargs)
+        return val
+    def GetNumberOfTextRegions(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetNumberOfTextRegions,(self,) + _args, _kwargs)
+        return val
+    def SetRegionName(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetRegionName,(self,) + _args, _kwargs)
+        return val
+    def GetRegionName(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetRegionName,(self,) + _args, _kwargs)
+        return val
+    def GetRegionId(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetRegionId,(self,) + _args, _kwargs)
+        return val
+    def NameRegions(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_NameRegions,(self,) + _args, _kwargs)
+        return val
+    def GetRegions(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetRegions,(self,) + _args, _kwargs)
+        return val
+    def AddRegion(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AddRegion,(self,) + _args, _kwargs)
+        return val
+    def ClearRegions(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ClearRegions,(self,) + _args, _kwargs)
+        return val
+    def AssignNewIds(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AssignNewIds,(self,) + _args, _kwargs)
+        return val
+    def FindRegion(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_FindRegion,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def FindRegionNames(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_FindRegionNames,(self,) + _args, _kwargs)
+        return val
+    def ClearText(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ClearText,(self,) + _args, _kwargs)
+        return val
+    def RemoveLine(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_RemoveLine,(self,) + _args, _kwargs)
+        return val
+    def GetAttachmentPosition(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetAttachmentPosition,(self,) + _args, _kwargs)
+        return val
+    def GetNumberOfAttachments(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetNumberOfAttachments,(self,) + _args, _kwargs)
+        return val
+    def AttachmentIsValid(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AttachmentIsValid,(self,) + _args, _kwargs)
+        return val
+    def GetAttachmentPositionEdge(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetAttachmentPositionEdge,(self,) + _args, _kwargs)
+        return val
+    def CalcSimpleAttachment(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_CalcSimpleAttachment,(self,) + _args, _kwargs)
+        if val: val = wxRealPointPtr(val) ; val.thisown = 1
+        return val
+    def AttachmentSortTest(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_AttachmentSortTest,(self,) + _args, _kwargs)
+        return val
+    def EraseLinks(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_EraseLinks,(self,) + _args, _kwargs)
+        return val
+    def DrawLinks(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_DrawLinks,(self,) + _args, _kwargs)
+        return val
+    def MoveLineToNewAttachment(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_MoveLineToNewAttachment,(self,) + _args, _kwargs)
+        return val
+    def ApplyAttachmentOrdering(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ApplyAttachmentOrdering,(self,) + _args, _kwargs)
+        return val
+    def GetBranchingAttachmentRoot(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchingAttachmentRoot,(self,) + _args, _kwargs)
+        if val: val = wxRealPointPtr(val) ; val.thisown = 1
+        return val
+    def GetBranchingAttachmentInfo(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchingAttachmentInfo,(self,) + _args, _kwargs)
+        return val
+    def GetBranchingAttachmentPoint(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchingAttachmentPoint,(self,) + _args, _kwargs)
+        return val
+    def GetAttachmentLineCount(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetAttachmentLineCount,(self,) + _args, _kwargs)
+        return val
+    def SetBranchNeckLength(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetBranchNeckLength,(self,) + _args, _kwargs)
+        return val
+    def GetBranchNeckLength(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchNeckLength,(self,) + _args, _kwargs)
+        return val
+    def SetBranchStemLength(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetBranchStemLength,(self,) + _args, _kwargs)
+        return val
+    def GetBranchStemLength(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchStemLength,(self,) + _args, _kwargs)
+        return val
+    def SetBranchSpacing(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetBranchSpacing,(self,) + _args, _kwargs)
+        return val
+    def GetBranchSpacing(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchSpacing,(self,) + _args, _kwargs)
+        return val
+    def SetBranchStyle(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_SetBranchStyle,(self,) + _args, _kwargs)
+        return val
+    def GetBranchStyle(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetBranchStyle,(self,) + _args, _kwargs)
+        return val
+    def PhysicalToLogicalAttachment(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_PhysicalToLogicalAttachment,(self,) + _args, _kwargs)
+        return val
+    def LogicalToPhysicalAttachment(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_LogicalToPhysicalAttachment,(self,) + _args, _kwargs)
+        return val
+    def Draggable(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Draggable,(self,) + _args, _kwargs)
+        return val
+    def HasDescendant(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_HasDescendant,(self,) + _args, _kwargs)
+        return val
+    def CreateNewCopy(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_CreateNewCopy,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def Copy(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Copy,(self,) + _args, _kwargs)
+        return val
+    def CopyWithHandler(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_CopyWithHandler,(self,) + _args, _kwargs)
+        return val
+    def Rotate(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Rotate,(self,) + _args, _kwargs)
+        return val
+    def GetRotation(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_GetRotation,(self,) + _args, _kwargs)
+        return val
+    def ClearAttachments(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ClearAttachments,(self,) + _args, _kwargs)
+        return val
+    def Recentre(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_Recentre,(self,) + _args, _kwargs)
+        return val
+    def ClearPointList(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_ClearPointList,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglbasicc.wxPyShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyShape instance at %s>" % (self.this,)
+class wxPyShape(wxPyShapePtr):
+    def __init__(self,this):
+        self.this = this
+
+
+
+
+
+
+#-------------- FUNCTION WRAPPERS ------------------
+
+
+
+#-------------- VARIABLE WRAPPERS ------------------
+
diff --git a/utils/wxPython/modules/ogl/oglc.def b/utils/wxPython/modules/ogl/oglc.def
new file mode 100644
index 0000000000..78408b947c
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglc.def
@@ -0,0 +1,2 @@
+EXPORTS
+  initoglc
diff --git a/utils/wxPython/modules/ogl/oglcanvas.cpp b/utils/wxPython/modules/ogl/oglcanvas.cpp
new file mode 100644
index 0000000000..089d1a7a31
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglcanvas.cpp
@@ -0,0 +1,2363 @@
+/*
+ * FILE : ./oglcanvas.cpp
+ * 
+ * This file was automatically generated by :
+ * Simplified Wrapper and Interface Generator (SWIG)
+ * Version 1.1 (Build 810)
+ * 
+ * Portions Copyright (c) 1995-1998
+ * The University of Utah and The Regents of the University of California.
+ * Permission is granted to distribute this file in any manner provided
+ * this notice remains intact.
+ * 
+ * Do not make changes to this file--changes will be lost!
+ *
+ */
+
+
+#define SWIGCODE
+/* Implementation : PYTHON */
+
+#define SWIGPYTHON
+#include <string.h>
+#include <stdlib.h>
+/* Definitions for Windows/Unix exporting */
+#if defined(__WIN32__)
+#   if defined(_MSC_VER)
+#	define SWIGEXPORT(a) __declspec(dllexport) a
+#   else
+#	if defined(__BORLANDC__)
+#	    define SWIGEXPORT(a) a _export 
+#	else
+#	    define SWIGEXPORT(a) a 
+#	endif
+#   endif
+#else
+#   define SWIGEXPORT(a) a 
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "Python.h"
+extern void SWIG_MakePtr(char *, void *, char *);
+extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
+extern char *SWIG_GetPtr(char *, void **, char *);
+extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
+extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
+extern PyObject *SWIG_newvarlink(void);
+#ifdef __cplusplus
+}
+#endif
+#define SWIG_init    initoglcanvasc
+
+#define SWIG_name    "oglcanvasc"
+
+#include "helpers.h"
+#include "oglhelpers.h"
+
+static PyObject* l_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyList_Check(target)) {
+            o2 = target;
+            target = PyList_New(0);
+            PyList_Append(target, o2);
+	    Py_XDECREF(o2);
+        }
+        PyList_Append(target,o);
+	Py_XDECREF(o);
+    }
+    return target;
+}
+
+static PyObject* t_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyTuple_Check(target)) {
+            o2 = target;
+            target = PyTuple_New(1);
+            PyTuple_SetItem(target, 0, o2);
+        }
+        o3 = PyTuple_New(1);            
+        PyTuple_SetItem(o3, 0, o);      
+
+        o2 = target;
+        target = PySequence_Concat(o2, o3); 
+        Py_DECREF(o2);                      
+        Py_DECREF(o3);
+    }
+    return target;
+}
+
+
+HELPEREXPORT byte* byte_LIST_helper(PyObject* source);
+HELPEREXPORT int* int_LIST_helper(PyObject* source);
+HELPEREXPORT long* long_LIST_helper(PyObject* source);
+HELPEREXPORT char** string_LIST_helper(PyObject* source);
+HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source);
+HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source);
+HELPEREXPORT wxString* wxString_LIST_helper(PyObject* source);
+HELPEREXPORT wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
+
+
+static char* wxStringErrorMsg = "string type is required for parameter";
+
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragLeft);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragRight);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragLeft);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragRight);
+    IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragLeft);
+    IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragRight);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnLeftClick);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnRightClick);
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define new_wxDiagram() (new wxDiagram())
+static PyObject *_wrap_new_wxDiagram(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxDiagram",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxDiagram *)new_wxDiagram();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxDiagram_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define delete_wxDiagram(_swigobj) (delete _swigobj)
+static PyObject *_wrap_delete_wxDiagram(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:delete_wxDiagram",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxDiagram. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxDiagram(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_AddShape(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AddShape(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxDiagram_AddShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxPyShape * _arg1;
+    wxPyShape * _arg2 = (wxPyShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","shape","addAfter", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|O:wxDiagram_AddShape",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_AddShape. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_AddShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxDiagram_AddShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_AddShape(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_Clear(_swigobj,_swigarg0)  (_swigobj->Clear(_swigarg0))
+static PyObject *_wrap_wxDiagram_Clear(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_Clear",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_Clear. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_Clear. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_Clear(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_DeleteAllShapes(_swigobj)  (_swigobj->DeleteAllShapes())
+static PyObject *_wrap_wxDiagram_DeleteAllShapes(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_DeleteAllShapes",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_DeleteAllShapes. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_DeleteAllShapes(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_DrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->DrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxDiagram_DrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x1","y1","x2","y2", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxDiagram_DrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_DrawOutline. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_DrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_DrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_FindShape(_swigobj,_swigarg0)  (_swigobj->FindShape(_swigarg0))
+static PyObject *_wrap_wxDiagram_FindShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxDiagram * _arg0;
+    long  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","id", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxDiagram_FindShape",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_FindShape. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxDiagram_FindShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxDiagram_GetCanvas(_swigobj)  (_swigobj->GetCanvas())
+static PyObject *_wrap_wxDiagram_GetCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetCanvas",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetCanvas. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeCanvas *)wxDiagram_GetCanvas(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeCanvas_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxDiagram_GetCount(_swigobj)  (_swigobj->GetCount())
+static PyObject *_wrap_wxDiagram_GetCount(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetCount",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetCount. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxDiagram_GetCount(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxDiagram_GetGridSpacing(_swigobj)  (_swigobj->GetGridSpacing())
+static PyObject *_wrap_wxDiagram_GetGridSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetGridSpacing",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetGridSpacing. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxDiagram_GetGridSpacing(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxDiagram_GetMouseTolerance(_swigobj)  (_swigobj->GetMouseTolerance())
+static PyObject *_wrap_wxDiagram_GetMouseTolerance(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetMouseTolerance",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetMouseTolerance. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxDiagram_GetMouseTolerance(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+static PyObject * wxDiagram_GetShapeList(wxDiagram *self) {
+            wxList* list = self->GetShapeList();
+            return wxPy_ConvertList(list, "wxPyShape");
+        }
+static PyObject *_wrap_wxDiagram_GetShapeList(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetShapeList",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetShapeList. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxDiagram_GetShapeList(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxDiagram_GetQuickEditMode(_swigobj)  (_swigobj->GetQuickEditMode())
+static PyObject *_wrap_wxDiagram_GetQuickEditMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetQuickEditMode",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetQuickEditMode. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDiagram_GetQuickEditMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxDiagram_GetSnapToGrid(_swigobj)  (_swigobj->GetSnapToGrid())
+static PyObject *_wrap_wxDiagram_GetSnapToGrid(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_GetSnapToGrid",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_GetSnapToGrid. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDiagram_GetSnapToGrid(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxDiagram_InsertShape(_swigobj,_swigarg0)  (_swigobj->InsertShape(_swigarg0))
+static PyObject *_wrap_wxDiagram_InsertShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_InsertShape",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_InsertShape. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_InsertShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_InsertShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_LoadFile(_swigobj,_swigarg0)  (_swigobj->LoadFile(_swigarg0))
+static PyObject *_wrap_wxDiagram_LoadFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxDiagram * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","filename", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_LoadFile",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_LoadFile. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDiagram_LoadFile(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxDiagram_ReadContainerGeometry(_swigobj,_swigarg0)  (_swigobj->ReadContainerGeometry(_swigarg0))
+static PyObject *_wrap_wxDiagram_ReadContainerGeometry(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxExprDatabase * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","database", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_ReadContainerGeometry",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_ReadContainerGeometry. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxExprDatabase_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_ReadContainerGeometry. Expected _wxExprDatabase_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_ReadContainerGeometry(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_ReadLines(_swigobj,_swigarg0)  (_swigobj->ReadLines(_swigarg0))
+static PyObject *_wrap_wxDiagram_ReadLines(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxExprDatabase * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","database", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_ReadLines",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_ReadLines. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxExprDatabase_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_ReadLines. Expected _wxExprDatabase_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_ReadLines(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_ReadNodes(_swigobj,_swigarg0)  (_swigobj->ReadNodes(_swigarg0))
+static PyObject *_wrap_wxDiagram_ReadNodes(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxExprDatabase * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","database", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_ReadNodes",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_ReadNodes. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxExprDatabase_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_ReadNodes. Expected _wxExprDatabase_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_ReadNodes(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_RecentreAll(_swigobj,_swigarg0)  (_swigobj->RecentreAll(_swigarg0))
+static PyObject *_wrap_wxDiagram_RecentreAll(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_RecentreAll",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_RecentreAll. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_RecentreAll. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_RecentreAll(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_Redraw(_swigobj,_swigarg0)  (_swigobj->Redraw(_swigarg0))
+static PyObject *_wrap_wxDiagram_Redraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_Redraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_Redraw. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_Redraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_Redraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_RemoveAllShapes(_swigobj)  (_swigobj->RemoveAllShapes())
+static PyObject *_wrap_wxDiagram_RemoveAllShapes(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxDiagram_RemoveAllShapes",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_RemoveAllShapes. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_RemoveAllShapes(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_RemoveShape(_swigobj,_swigarg0)  (_swigobj->RemoveShape(_swigarg0))
+static PyObject *_wrap_wxDiagram_RemoveShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_RemoveShape",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_RemoveShape. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_RemoveShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_RemoveShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_SaveFile(_swigobj,_swigarg0)  (_swigobj->SaveFile(_swigarg0))
+static PyObject *_wrap_wxDiagram_SaveFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxDiagram * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","filename", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_SaveFile",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_SaveFile. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDiagram_SaveFile(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxDiagram_SetCanvas(_swigobj,_swigarg0)  (_swigobj->SetCanvas(_swigarg0))
+static PyObject *_wrap_wxDiagram_SetCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    wxPyShapeCanvas * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","canvas", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDiagram_SetCanvas",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_SetCanvas. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_SetCanvas. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_SetCanvas(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_SetGridSpacing(_swigobj,_swigarg0)  (_swigobj->SetGridSpacing(_swigarg0))
+static PyObject *_wrap_wxDiagram_SetGridSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","spacing", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxDiagram_SetGridSpacing",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_SetGridSpacing. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_SetGridSpacing(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_SetMouseTolerance(_swigobj,_swigarg0)  (_swigobj->SetMouseTolerance(_swigarg0))
+static PyObject *_wrap_wxDiagram_SetMouseTolerance(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","tolerance", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxDiagram_SetMouseTolerance",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_SetMouseTolerance. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_SetMouseTolerance(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_SetQuickEditMode(_swigobj,_swigarg0)  (_swigobj->SetQuickEditMode(_swigarg0))
+static PyObject *_wrap_wxDiagram_SetQuickEditMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","mode", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxDiagram_SetQuickEditMode",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_SetQuickEditMode. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_SetQuickEditMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_SetSnapToGrid(_swigobj,_swigarg0)  (_swigobj->SetSnapToGrid(_swigarg0))
+static PyObject *_wrap_wxDiagram_SetSnapToGrid(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","snap", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxDiagram_SetSnapToGrid",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_SetSnapToGrid. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_SetSnapToGrid(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_ShowAll(_swigobj,_swigarg0)  (_swigobj->ShowAll(_swigarg0))
+static PyObject *_wrap_wxDiagram_ShowAll(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","show", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxDiagram_ShowAll",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_ShowAll. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_ShowAll(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDiagram_Snap(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Snap(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxDiagram_Snap(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _arg0;
+    double * _arg1;
+    double * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxDiagram_Snap",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDiagram_Snap. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_Snap. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxDiagram_Snap. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDiagram_Snap(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyShapeCanvasTowxScrolledWindow(void *ptr) {
+    wxPyShapeCanvas *src;
+    wxScrolledWindow *dest;
+    src = (wxPyShapeCanvas *) ptr;
+    dest = (wxScrolledWindow *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyShapeCanvasTowxPanel(void *ptr) {
+    wxPyShapeCanvas *src;
+    wxPanel *dest;
+    src = (wxPyShapeCanvas *) ptr;
+    dest = (wxPanel *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyShapeCanvasTowxWindow(void *ptr) {
+    wxPyShapeCanvas *src;
+    wxWindow *dest;
+    src = (wxPyShapeCanvas *) ptr;
+    dest = (wxWindow *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyShapeCanvasTowxEvtHandler(void *ptr) {
+    wxPyShapeCanvas *src;
+    wxEvtHandler *dest;
+    src = (wxPyShapeCanvas *) ptr;
+    dest = (wxEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyShapeCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxPyShapeCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_new_wxPyShapeCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _result;
+    wxWindow * _arg0 = (wxWindow *) NULL;
+    wxWindowID  _arg1 = (wxWindowID ) -1;
+    wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition;
+    wxSize * _arg3 = (wxSize *) &wxPyDefaultSize;
+    long  _arg4 = (long ) wxBORDER;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "parent","id","pos","size","style", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|OiOOl:new_wxPyShapeCanvas",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPyShapeCanvas. Expected _wxWindow_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPyShapeCanvas. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxSize_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxPyShapeCanvas. Expected _wxSize_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShapeCanvas *)new_wxPyShapeCanvas(_arg0,_arg1,*_arg2,*_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeCanvas_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyShapeCanvas__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeCanvas__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas__setSelf. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_AddShape(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AddShape(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeCanvas_AddShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    wxPyShape * _arg1;
+    wxPyShape * _arg2 = (wxPyShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","shape","addAfter", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|O:wxPyShapeCanvas_AddShape",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_AddShape. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_AddShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShapeCanvas_AddShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_AddShape(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_FindShape(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->FindShape(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyShapeCanvas_FindShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int * _arg3;
+    wxClassInfo * _arg4 = (wxClassInfo *) NULL;
+    wxPyShape * _arg5 = (wxPyShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo3 = 0;
+    PyObject * _argo4 = 0;
+    PyObject * _argo5 = 0;
+    char *_kwnames[] = { "self","x1","y","attachment","info","notImage", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OddO|OO:wxPyShapeCanvas_FindShape",_kwnames,&_argo0,&_arg1,&_arg2,&_argo3,&_argo4,&_argo5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_FindShape. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_int_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShapeCanvas_FindShape. Expected _int_p.");
+        return NULL;
+        }
+    }
+    if (_argo4) {
+        if (_argo4 == Py_None) { _arg4 = NULL; }
+        else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_wxClassInfo_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxPyShapeCanvas_FindShape. Expected _wxClassInfo_p.");
+        return NULL;
+        }
+    }
+    if (_argo5) {
+        if (_argo5 == Py_None) { _arg5 = NULL; }
+        else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxPyShapeCanvas_FindShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShapeCanvas_FindShape(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_FindFirstSensitiveShape(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->FindFirstSensitiveShape(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeCanvas_FindFirstSensitiveShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int * _arg3;
+    int  _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "self","x1","y","attachment","op", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OddOi:wxPyShapeCanvas_FindFirstSensitiveShape",_kwnames,&_argo0,&_arg1,&_arg2,&_argo3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_FindFirstSensitiveShape. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_int_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyShapeCanvas_FindFirstSensitiveShape. Expected _int_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyShapeCanvas_FindFirstSensitiveShape(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_GetDiagram(_swigobj)  (_swigobj->GetDiagram())
+static PyObject *_wrap_wxPyShapeCanvas_GetDiagram(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDiagram * _result;
+    wxPyShapeCanvas * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeCanvas_GetDiagram",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_GetDiagram. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxDiagram *)wxPyShapeCanvas_GetDiagram(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxDiagram_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_GetQuickEditMode(_swigobj)  (_swigobj->GetQuickEditMode())
+static PyObject *_wrap_wxPyShapeCanvas_GetQuickEditMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyShapeCanvas * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyShapeCanvas_GetQuickEditMode",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_GetQuickEditMode. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyShapeCanvas_GetQuickEditMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_InsertShape(_swigobj,_swigarg0)  (_swigobj->InsertShape(_swigarg0))
+static PyObject *_wrap_wxPyShapeCanvas_InsertShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeCanvas_InsertShape",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_InsertShape. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_InsertShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_InsertShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShapeCanvas_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnBeginDragLeft. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShapeCanvas_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnBeginDragRight. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShapeCanvas_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnEndDragLeft. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShapeCanvas_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnEndDragRight. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|i:wxPyShapeCanvas_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnDragLeft. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|i:wxPyShapeCanvas_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnDragRight. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShapeCanvas_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnLeftClick. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyShapeCanvas_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|i:wxPyShapeCanvas_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_base_OnRightClick. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_base_OnRightClick(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_Redraw(_swigobj,_swigarg0)  (_swigobj->Redraw(_swigarg0))
+static PyObject *_wrap_wxPyShapeCanvas_Redraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeCanvas_Redraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_Redraw. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_Redraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_Redraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_RemoveShape(_swigobj,_swigarg0)  (_swigobj->RemoveShape(_swigarg0))
+static PyObject *_wrap_wxPyShapeCanvas_RemoveShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeCanvas_RemoveShape",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_RemoveShape. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_RemoveShape. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_RemoveShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_SetDiagram(_swigobj,_swigarg0)  (_swigobj->SetDiagram(_swigarg0))
+static PyObject *_wrap_wxPyShapeCanvas_SetDiagram(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    wxDiagram * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","diagram", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyShapeCanvas_SetDiagram",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_SetDiagram. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDiagram_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_SetDiagram. Expected _wxDiagram_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_SetDiagram(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyShapeCanvas_Snap(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Snap(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyShapeCanvas_Snap(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShapeCanvas * _arg0;
+    double * _arg1;
+    double * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyShapeCanvas_Snap",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyShapeCanvas_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyShapeCanvas_Snap. Expected _wxPyShapeCanvas_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_Snap. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyShapeCanvas_Snap. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyShapeCanvas_Snap(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyMethodDef oglcanvascMethods[] = {
+	 { "wxPyShapeCanvas_Snap", (PyCFunction) _wrap_wxPyShapeCanvas_Snap, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_SetDiagram", (PyCFunction) _wrap_wxPyShapeCanvas_SetDiagram, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_RemoveShape", (PyCFunction) _wrap_wxPyShapeCanvas_RemoveShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_Redraw", (PyCFunction) _wrap_wxPyShapeCanvas_Redraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnRightClick", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnLeftClick", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnDragRight", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnDragLeft", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnEndDragRight", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyShapeCanvas_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_InsertShape", (PyCFunction) _wrap_wxPyShapeCanvas_InsertShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_GetQuickEditMode", (PyCFunction) _wrap_wxPyShapeCanvas_GetQuickEditMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_GetDiagram", (PyCFunction) _wrap_wxPyShapeCanvas_GetDiagram, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_FindFirstSensitiveShape", (PyCFunction) _wrap_wxPyShapeCanvas_FindFirstSensitiveShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_FindShape", (PyCFunction) _wrap_wxPyShapeCanvas_FindShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas_AddShape", (PyCFunction) _wrap_wxPyShapeCanvas_AddShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyShapeCanvas__setSelf", (PyCFunction) _wrap_wxPyShapeCanvas__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyShapeCanvas", (PyCFunction) _wrap_new_wxPyShapeCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_Snap", (PyCFunction) _wrap_wxDiagram_Snap, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_ShowAll", (PyCFunction) _wrap_wxDiagram_ShowAll, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_SetSnapToGrid", (PyCFunction) _wrap_wxDiagram_SetSnapToGrid, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_SetQuickEditMode", (PyCFunction) _wrap_wxDiagram_SetQuickEditMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_SetMouseTolerance", (PyCFunction) _wrap_wxDiagram_SetMouseTolerance, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_SetGridSpacing", (PyCFunction) _wrap_wxDiagram_SetGridSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_SetCanvas", (PyCFunction) _wrap_wxDiagram_SetCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_SaveFile", (PyCFunction) _wrap_wxDiagram_SaveFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_RemoveShape", (PyCFunction) _wrap_wxDiagram_RemoveShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_RemoveAllShapes", (PyCFunction) _wrap_wxDiagram_RemoveAllShapes, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_Redraw", (PyCFunction) _wrap_wxDiagram_Redraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_RecentreAll", (PyCFunction) _wrap_wxDiagram_RecentreAll, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_ReadNodes", (PyCFunction) _wrap_wxDiagram_ReadNodes, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_ReadLines", (PyCFunction) _wrap_wxDiagram_ReadLines, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_ReadContainerGeometry", (PyCFunction) _wrap_wxDiagram_ReadContainerGeometry, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_LoadFile", (PyCFunction) _wrap_wxDiagram_LoadFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_InsertShape", (PyCFunction) _wrap_wxDiagram_InsertShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetSnapToGrid", (PyCFunction) _wrap_wxDiagram_GetSnapToGrid, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetQuickEditMode", (PyCFunction) _wrap_wxDiagram_GetQuickEditMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetShapeList", (PyCFunction) _wrap_wxDiagram_GetShapeList, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetMouseTolerance", (PyCFunction) _wrap_wxDiagram_GetMouseTolerance, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetGridSpacing", (PyCFunction) _wrap_wxDiagram_GetGridSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetCount", (PyCFunction) _wrap_wxDiagram_GetCount, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_GetCanvas", (PyCFunction) _wrap_wxDiagram_GetCanvas, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_FindShape", (PyCFunction) _wrap_wxDiagram_FindShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_DrawOutline", (PyCFunction) _wrap_wxDiagram_DrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_DeleteAllShapes", (PyCFunction) _wrap_wxDiagram_DeleteAllShapes, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_Clear", (PyCFunction) _wrap_wxDiagram_Clear, METH_VARARGS | METH_KEYWORDS },
+	 { "wxDiagram_AddShape", (PyCFunction) _wrap_wxDiagram_AddShape, METH_VARARGS | METH_KEYWORDS },
+	 { "delete_wxDiagram", (PyCFunction) _wrap_delete_wxDiagram, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxDiagram", (PyCFunction) _wrap_new_wxDiagram, METH_VARARGS | METH_KEYWORDS },
+	 { NULL, NULL }
+};
+#ifdef __cplusplus
+}
+#endif
+/*
+ * This table is used by the pointer type-checker
+ */
+static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
+    { "_wxAcceleratorTable","_class_wxAcceleratorTable",0},
+    { "_wxEvent","_class_wxEvent",0},
+    { "_class_wxActivateEvent","_wxActivateEvent",0},
+    { "_signed_long","_long",0},
+    { "_wxMenuEvent","_class_wxMenuEvent",0},
+    { "_class_wxJPEGHandler","_wxJPEGHandler",0},
+    { "_wxBMPHandler","_class_wxBMPHandler",0},
+    { "_wxImage","_class_wxImage",0},
+    { "_wxPrintQuality","_int",0},
+    { "_wxPrintQuality","_signed_int",0},
+    { "_wxPrintQuality","_unsigned_int",0},
+    { "_wxPrintQuality","_wxWindowID",0},
+    { "_wxPrintQuality","_uint",0},
+    { "_wxPrintQuality","_EBool",0},
+    { "_wxPrintQuality","_size_t",0},
+    { "_wxFontData","_class_wxFontData",0},
+    { "___wxPyCleanup","_class___wxPyCleanup",0},
+    { "_class_wxRegionIterator","_wxRegionIterator",0},
+    { "_class_wxMenuBar","_wxMenuBar",0},
+    { "_class_wxPyTreeItemData","_wxPyTreeItemData",0},
+    { "_class_wxEvtHandler","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxEvtHandler},
+    { "_class_wxEvtHandler","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxEvtHandler},
+    { "_class_wxEvtHandler","_wxEvtHandler",0},
+    { "_wxPaintEvent","_class_wxPaintEvent",0},
+    { "_wxGIFHandler","_class_wxGIFHandler",0},
+    { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
+    { "_wxCursor","_class_wxCursor",0},
+    { "_wxNotifyEvent","_class_wxNotifyEvent",0},
+    { "_wxImageHandler","_class_wxImageHandler",0},
+    { "_class_wxTreeCtrl","_wxTreeCtrl",0},
+    { "_wxMask","_class_wxMask",0},
+    { "_wxToolTip","_class_wxToolTip",0},
+    { "_wxGrid","_class_wxGrid",0},
+    { "_wxPNGHandler","_class_wxPNGHandler",0},
+    { "_class_wxColourData","_wxColourData",0},
+    { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0},
+    { "_wxPrinter","_class_wxPrinter",0},
+    { "_wxPen","_class_wxPen",0},
+    { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0},
+    { "_byte","_unsigned_char",0},
+    { "_wxStaticBox","_class_wxStaticBox",0},
+    { "_wxChoice","_class_wxChoice",0},
+    { "_wxSlider","_class_wxSlider",0},
+    { "_wxNotebookEvent","_class_wxNotebookEvent",0},
+    { "_wxPyPrintout","_class_wxPyPrintout",0},
+    { "_wxShapeRegion","_class_wxShapeRegion",0},
+    { "_long","_wxDash",0},
+    { "_long","_unsigned_long",0},
+    { "_long","_signed_long",0},
+    { "_wxImageList","_class_wxImageList",0},
+    { "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
+    { "_wxBitmapButton","_class_wxBitmapButton",0},
+    { "_wxSashWindow","_class_wxSashWindow",0},
+    { "_class_wxPrintDialogData","_wxPrintDialogData",0},
+    { "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
+    { "_class_wxGauge","_wxGauge",0},
+    { "_class_wxSashEvent","_wxSashEvent",0},
+    { "_wxDC","_class_wxDC",0},
+    { "_wxListEvent","_class_wxListEvent",0},
+    { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0},
+    { "_wxProgressDialog","_class_wxProgressDialog",0},
+    { "_class_wxBMPHandler","_wxBMPHandler",0},
+    { "_wxPrintPreview","_class_wxPrintPreview",0},
+    { "_wxSpinEvent","_class_wxSpinEvent",0},
+    { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0},
+    { "_size_t","_wxPrintQuality",0},
+    { "_size_t","_unsigned_int",0},
+    { "_size_t","_int",0},
+    { "_size_t","_wxWindowID",0},
+    { "_size_t","_uint",0},
+    { "_class_wxRealPoint","_wxRealPoint",0},
+    { "_wxPrinterDC","_class_wxPrinterDC",0},
+    { "_class_wxPyShapeEvtHandler","_wxPyShapeEvtHandler",0},
+    { "_class_wxMenuItem","_wxMenuItem",0},
+    { "_class_wxPaintEvent","_wxPaintEvent",0},
+    { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
+    { "_class_wxStatusBar","_wxStatusBar",0},
+    { "_class_wxGIFHandler","_wxGIFHandler",0},
+    { "_wxPanel","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxPanel},
+    { "_wxPanel","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxPanel},
+    { "_wxPanel","_class_wxPanel",0},
+    { "_wxInitDialogEvent","_class_wxInitDialogEvent",0},
+    { "_wxCheckBox","_class_wxCheckBox",0},
+    { "_wxPyEvent","_class_wxPyEvent",0},
+    { "_wxTextCtrl","_class_wxTextCtrl",0},
+    { "_class_wxMask","_wxMask",0},
+    { "_class_wxToolTip","_wxToolTip",0},
+    { "_class_wxKeyEvent","_wxKeyEvent",0},
+    { "_class_wxGrid","_wxGrid",0},
+    { "_class_wxPNGHandler","_wxPNGHandler",0},
+    { "_wxColour","_class_wxColour",0},
+    { "_class_wxDialog","_wxDialog",0},
+    { "_wxPageSetupDialog","_class_wxPageSetupDialog",0},
+    { "_class_wxPrinter","_wxPrinter",0},
+    { "_wxIdleEvent","_class_wxIdleEvent",0},
+    { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
+    { "_wxToolBar","_class_wxToolBar",0},
+    { "_wxStaticLine","_class_wxStaticLine",0},
+    { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0},
+    { "_wxBrush","_class_wxBrush",0},
+    { "_wxMiniFrame","_class_wxMiniFrame",0},
+    { "_class_wxNotebookEvent","_wxNotebookEvent",0},
+    { "_class_wxPyPrintout","_wxPyPrintout",0},
+    { "_class_wxSashWindow","_wxSashWindow",0},
+    { "_wxShowEvent","_class_wxShowEvent",0},
+    { "_uint","_wxPrintQuality",0},
+    { "_uint","_size_t",0},
+    { "_uint","_unsigned_int",0},
+    { "_uint","_int",0},
+    { "_uint","_wxWindowID",0},
+    { "_class_wxEvent","_wxEvent",0},
+    { "_wxCheckListBox","_class_wxCheckListBox",0},
+    { "_wxSplitterEvent","_class_wxSplitterEvent",0},
+    { "_wxGridEvent","_class_wxGridEvent",0},
+    { "_wxRect","_class_wxRect",0},
+    { "_wxCommandEvent","_class_wxCommandEvent",0},
+    { "_wxPyShapeCanvas","_class_wxPyShapeCanvas",0},
+    { "_wxSizeEvent","_class_wxSizeEvent",0},
+    { "_class_wxImage","_wxImage",0},
+    { "_wxPoint","_class_wxPoint",0},
+    { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0},
+    { "_class_wxButton","_wxButton",0},
+    { "_wxRadioBox","_class_wxRadioBox",0},
+    { "_class_wxFontData","_wxFontData",0},
+    { "_class___wxPyCleanup","___wxPyCleanup",0},
+    { "_wxBitmap","_class_wxBitmap",0},
+    { "_wxTaskBarIcon","_class_wxTaskBarIcon",0},
+    { "_wxPrintDialog","_class_wxPrintDialog",0},
+    { "_wxPyTimer","_class_wxPyTimer",0},
+    { "_wxWindowDC","_class_wxWindowDC",0},
+    { "_wxScrollBar","_class_wxScrollBar",0},
+    { "_wxSpinButton","_class_wxSpinButton",0},
+    { "_wxToolBarTool","_class_wxToolBarTool",0},
+    { "_wxColourDialog","_class_wxColourDialog",0},
+    { "_wxPrintData","_class_wxPrintData",0},
+    { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
+    { "_class_wxNotifyEvent","_wxNotifyEvent",0},
+    { "_wxMessageDialog","_class_wxMessageDialog",0},
+    { "_class_wxPyEvent","_wxPyEvent",0},
+    { "_wxTextEntryDialog","_class_wxTextEntryDialog",0},
+    { "_class_wxIconizeEvent","_wxIconizeEvent",0},
+    { "_class_wxStaticBitmap","_wxStaticBitmap",0},
+    { "_wxMDIChildFrame","_class_wxMDIChildFrame",0},
+    { "_wxListItem","_class_wxListItem",0},
+    { "_class_wxToolBar","_wxToolBar",0},
+    { "_class_wxStaticLine","_wxStaticLine",0},
+    { "_wxScrollEvent","_class_wxScrollEvent",0},
+    { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0},
+    { "_class_wxShapeRegion","_wxShapeRegion",0},
+    { "_EBool","_wxPrintQuality",0},
+    { "_EBool","_signed_int",0},
+    { "_EBool","_int",0},
+    { "_EBool","_wxWindowID",0},
+    { "_class_wxRegion","_wxRegion",0},
+    { "_class_wxDropFilesEvent","_wxDropFilesEvent",0},
+    { "_class_wxPreviewFrame","_wxPreviewFrame",0},
+    { "_wxStaticText","_class_wxStaticText",0},
+    { "_wxFont","_class_wxFont",0},
+    { "_wxCloseEvent","_class_wxCloseEvent",0},
+    { "_class_wxSplitterEvent","_wxSplitterEvent",0},
+    { "_wxNotebook","_class_wxNotebook",0},
+    { "_unsigned_long","_wxDash",0},
+    { "_unsigned_long","_long",0},
+    { "_class_wxRect","_wxRect",0},
+    { "_class_wxDC","_wxDC",0},
+    { "_class_wxPyShapeCanvas","_wxPyShapeCanvas",0},
+    { "_class_wxProgressDialog","_wxProgressDialog",0},
+    { "_wxPyApp","_class_wxPyApp",0},
+    { "_wxMDIParentFrame","_class_wxMDIParentFrame",0},
+    { "_class_wxTreeEvent","_wxTreeEvent",0},
+    { "_class_wxDirDialog","_wxDirDialog",0},
+    { "_class_wxPyTimer","_wxPyTimer",0},
+    { "_wxFocusEvent","_class_wxFocusEvent",0},
+    { "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
+    { "_class_wxSpinButton","_wxSpinButton",0},
+    { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
+    { "_class_wxPanel","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxPanel},
+    { "_class_wxPanel","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxPanel},
+    { "_class_wxPanel","_wxPanel",0},
+    { "_class_wxCheckBox","_wxCheckBox",0},
+    { "_wxComboBox","_class_wxComboBox",0},
+    { "_wxRadioButton","_class_wxRadioButton",0},
+    { "_class_wxMessageDialog","_wxMessageDialog",0},
+    { "_signed_int","_wxPrintQuality",0},
+    { "_signed_int","_EBool",0},
+    { "_signed_int","_wxWindowID",0},
+    { "_signed_int","_int",0},
+    { "_class_wxTextCtrl","_wxTextCtrl",0},
+    { "_wxLayoutConstraints","_class_wxLayoutConstraints",0},
+    { "_wxMetaFileDC","_class_wxMetaFileDC",0},
+    { "_wxMenu","_class_wxMenu",0},
+    { "_class_wxMoveEvent","_wxMoveEvent",0},
+    { "_wxListBox","_class_wxListBox",0},
+    { "_wxScreenDC","_class_wxScreenDC",0},
+    { "_class_wxMDIChildFrame","_wxMDIChildFrame",0},
+    { "_WXTYPE","_short",0},
+    { "_WXTYPE","_signed_short",0},
+    { "_WXTYPE","_unsigned_short",0},
+    { "_wxFileDialog","_class_wxFileDialog",0},
+    { "_class_wxMDIClientWindow","_wxMDIClientWindow",0},
+    { "_class_wxBrush","_wxBrush",0},
+    { "_unsigned_short","_WXTYPE",0},
+    { "_unsigned_short","_short",0},
+    { "_class_wxWindow","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxWindow},
+    { "_class_wxWindow","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxWindow},
+    { "_class_wxWindow","_wxWindow",0},
+    { "_wxSplitterWindow","_class_wxSplitterWindow",0},
+    { "_class_wxStaticText","_wxStaticText",0},
+    { "_wxPrintDialogData","_class_wxPrintDialogData",0},
+    { "_class_wxFont","_wxFont",0},
+    { "_class_wxCloseEvent","_wxCloseEvent",0},
+    { "_wxSashEvent","_class_wxSashEvent",0},
+    { "_class_wxMenuEvent","_wxMenuEvent",0},
+    { "_wxClientDC","_class_wxClientDC",0},
+    { "_wxMouseEvent","_class_wxMouseEvent",0},
+    { "_wxListCtrl","_class_wxListCtrl",0},
+    { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0},
+    { "_class_wxPoint","_wxPoint",0},
+    { "_wxRealPoint","_class_wxRealPoint",0},
+    { "_class_wxRadioBox","_wxRadioBox",0},
+    { "_wxGridCell","_class_wxGridCell",0},
+    { "_signed_short","_WXTYPE",0},
+    { "_signed_short","_short",0},
+    { "_wxMemoryDC","_class_wxMemoryDC",0},
+    { "_class_wxTaskBarIcon","_wxTaskBarIcon",0},
+    { "_class_wxPrintDialog","_wxPrintDialog",0},
+    { "_wxPaintDC","_class_wxPaintDC",0},
+    { "_class_wxWindowDC","_wxWindowDC",0},
+    { "_class_wxFocusEvent","_wxFocusEvent",0},
+    { "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
+    { "_wxStatusBar","_class_wxStatusBar",0},
+    { "_class_wxToolBarTool","_wxToolBarTool",0},
+    { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
+    { "_class_wxCursor","_wxCursor",0},
+    { "_class_wxImageHandler","_wxImageHandler",0},
+    { "_wxPyShape","_class_wxPyShape",0},
+    { "_wxScrolledWindow","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxScrolledWindow},
+    { "_wxScrolledWindow","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxScrolledWindow},
+    { "_wxScrolledWindow","_class_wxScrolledWindow",0},
+    { "_wxTreeItemId","_class_wxTreeItemId",0},
+    { "_unsigned_char","_byte",0},
+    { "_class_wxMetaFileDC","_wxMetaFileDC",0},
+    { "_class_wxMenu","_wxMenu",0},
+    { "_wxControl","_class_wxControl",0},
+    { "_class_wxListBox","_wxListBox",0},
+    { "_unsigned_int","_wxPrintQuality",0},
+    { "_unsigned_int","_size_t",0},
+    { "_unsigned_int","_uint",0},
+    { "_unsigned_int","_wxWindowID",0},
+    { "_unsigned_int","_int",0},
+    { "_wxIcon","_class_wxIcon",0},
+    { "_wxDialog","_class_wxDialog",0},
+    { "_class_wxListItem","_wxListItem",0},
+    { "_class_wxPen","_wxPen",0},
+    { "_class_wxFileDialog","_wxFileDialog",0},
+    { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0},
+    { "_short","_WXTYPE",0},
+    { "_short","_unsigned_short",0},
+    { "_short","_signed_short",0},
+    { "_class_wxStaticBox","_wxStaticBox",0},
+    { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0},
+    { "_class_wxScrollEvent","_wxScrollEvent",0},
+    { "_wxJoystickEvent","_class_wxJoystickEvent",0},
+    { "_class_wxChoice","_wxChoice",0},
+    { "_class_wxSlider","_wxSlider",0},
+    { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0},
+    { "_class_wxImageList","_wxImageList",0},
+    { "_class_wxBitmapButton","_wxBitmapButton",0},
+    { "_wxFrame","_class_wxFrame",0},
+    { "_class_wxNotebook","_wxNotebook",0},
+    { "_wxJPEGHandler","_class_wxJPEGHandler",0},
+    { "_wxWindowID","_wxPrintQuality",0},
+    { "_wxWindowID","_size_t",0},
+    { "_wxWindowID","_EBool",0},
+    { "_wxWindowID","_uint",0},
+    { "_wxWindowID","_int",0},
+    { "_wxWindowID","_signed_int",0},
+    { "_wxWindowID","_unsigned_int",0},
+    { "_int","_wxPrintQuality",0},
+    { "_int","_size_t",0},
+    { "_int","_EBool",0},
+    { "_int","_uint",0},
+    { "_int","_wxWindowID",0},
+    { "_int","_unsigned_int",0},
+    { "_int","_signed_int",0},
+    { "_class_wxMouseEvent","_wxMouseEvent",0},
+    { "_class_wxListEvent","_wxListEvent",0},
+    { "_class_wxPrintPreview","_wxPrintPreview",0},
+    { "_class_wxSpinEvent","_wxSpinEvent",0},
+    { "_wxButton","_class_wxButton",0},
+    { "_class_wxPyApp","_wxPyApp",0},
+    { "_wxSize","_class_wxSize",0},
+    { "_wxRegionIterator","_class_wxRegionIterator",0},
+    { "_class_wxPrinterDC","_wxPrinterDC",0},
+    { "_class_wxMDIParentFrame","_wxMDIParentFrame",0},
+    { "_wxPyTreeItemData","_class_wxPyTreeItemData",0},
+    { "_class_wxPaintDC","_wxPaintDC",0},
+    { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
+    { "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
+    { "_class_wxComboBox","_wxComboBox",0},
+    { "_class_wxRadioButton","_wxRadioButton",0},
+    { "_class_wxPyShape","_wxPyShape",0},
+    { "_class_wxTreeItemId","_wxTreeItemId",0},
+    { "_wxTreeCtrl","_class_wxTreeCtrl",0},
+    { "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
+    { "_wxIconizeEvent","_class_wxIconizeEvent",0},
+    { "_class_wxControl","_wxControl",0},
+    { "_wxStaticBitmap","_class_wxStaticBitmap",0},
+    { "_class_wxIcon","_wxIcon",0},
+    { "_class_wxColour","_wxColour",0},
+    { "_class_wxScreenDC","_wxScreenDC",0},
+    { "_class_wxPageSetupDialog","_wxPageSetupDialog",0},
+    { "_wxPalette","_class_wxPalette",0},
+    { "_class_wxIdleEvent","_wxIdleEvent",0},
+    { "_wxEraseEvent","_class_wxEraseEvent",0},
+    { "_class_wxJoystickEvent","_wxJoystickEvent",0},
+    { "_class_wxMiniFrame","_wxMiniFrame",0},
+    { "_wxFontDialog","_class_wxFontDialog",0},
+    { "_wxRegion","_class_wxRegion",0},
+    { "_class_wxSplitterWindow","_wxSplitterWindow",0},
+    { "_wxPreviewFrame","_class_wxPreviewFrame",0},
+    { "_class_wxShowEvent","_wxShowEvent",0},
+    { "_wxDiagram","_class_wxDiagram",0},
+    { "_wxActivateEvent","_class_wxActivateEvent",0},
+    { "_wxGauge","_class_wxGauge",0},
+    { "_class_wxCheckListBox","_wxCheckListBox",0},
+    { "_class_wxGridEvent","_wxGridEvent",0},
+    { "_class_wxCommandEvent","_wxCommandEvent",0},
+    { "_class_wxClientDC","_wxClientDC",0},
+    { "_class_wxSizeEvent","_wxSizeEvent",0},
+    { "_class_wxListCtrl","_wxListCtrl",0},
+    { "_class_wxGridCell","_wxGridCell",0},
+    { "_class_wxSize","_wxSize",0},
+    { "_class_wxBitmap","_wxBitmap",0},
+    { "_class_wxMemoryDC","_wxMemoryDC",0},
+    { "_wxMenuBar","_class_wxMenuBar",0},
+    { "_wxTreeEvent","_class_wxTreeEvent",0},
+    { "_wxDirDialog","_class_wxDirDialog",0},
+    { "_wxPyShapeEvtHandler","_class_wxPyShapeEvtHandler",0},
+    { "_wxEvtHandler","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxEvtHandler},
+    { "_wxEvtHandler","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxEvtHandler},
+    { "_wxEvtHandler","_class_wxEvtHandler",0},
+    { "_wxMenuItem","_class_wxMenuItem",0},
+    { "_class_wxScrollBar","_wxScrollBar",0},
+    { "_class_wxColourDialog","_wxColourDialog",0},
+    { "_class_wxPrintData","_wxPrintData",0},
+    { "_wxDash","_unsigned_long",0},
+    { "_wxDash","_long",0},
+    { "_class_wxScrolledWindow","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxScrolledWindow},
+    { "_class_wxScrolledWindow","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxScrolledWindow},
+    { "_class_wxScrolledWindow","_wxScrolledWindow",0},
+    { "_class_wxTextEntryDialog","_wxTextEntryDialog",0},
+    { "_wxKeyEvent","_class_wxKeyEvent",0},
+    { "_wxMoveEvent","_class_wxMoveEvent",0},
+    { "_wxColourData","_class_wxColourData",0},
+    { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0},
+    { "_class_wxPalette","_wxPalette",0},
+    { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0},
+    { "_class_wxEraseEvent","_wxEraseEvent",0},
+    { "_wxMDIClientWindow","_class_wxMDIClientWindow",0},
+    { "_class_wxFontDialog","_wxFontDialog",0},
+    { "_wxWindow","_class_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxWindow},
+    { "_wxWindow","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxWindow},
+    { "_wxWindow","_class_wxWindow",0},
+    { "_class_wxFrame","_wxFrame",0},
+    { "_class_wxDiagram","_wxDiagram",0},
+{0,0,0}};
+
+static PyObject *SWIG_globals;
+#ifdef __cplusplus
+extern "C" 
+#endif
+SWIGEXPORT(void) initoglcanvasc() {
+	 PyObject *m, *d;
+	 SWIG_globals = SWIG_newvarlink();
+	 m = Py_InitModule("oglcanvasc", oglcanvascMethods);
+	 d = PyModule_GetDict(m);
+{
+   int i;
+   for (i = 0; _swig_mapping[i].n1; i++)
+        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
+}
+}
diff --git a/utils/wxPython/modules/ogl/oglcanvas.i b/utils/wxPython/modules/ogl/oglcanvas.i
new file mode 100644
index 0000000000..20daaf370e
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglcanvas.i
@@ -0,0 +1,157 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        oglcanvas.i
+// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
+//
+// Author:      Robin Dunn
+//
+// Created:     7-Sept-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+%module oglcanvas
+
+%{
+#include "helpers.h"
+#include "oglhelpers.h"
+%}
+
+//---------------------------------------------------------------------------
+
+%include typemaps.i
+%include my_typemaps.i
+
+%extern wx.i
+%import windows.i
+%extern _defs.i
+%extern misc.i
+%extern gdi.i
+
+%include _ogldefs.i
+
+%extern oglbasic.i
+
+
+%pragma(python) code = "import wx"
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+class wxDiagram {
+public:
+    wxDiagram();
+    ~wxDiagram();
+
+    void AddShape(wxPyShape*shape, wxPyShape *addAfter = NULL);
+    void Clear(wxDC& dc);
+    void DeleteAllShapes();
+    void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2);
+    wxPyShape* FindShape(long id);
+    wxPyShapeCanvas* GetCanvas();
+    int GetCount();
+    double GetGridSpacing();
+    int GetMouseTolerance();
+
+    // wxList* GetShapeList();
+    %addmethods {
+        PyObject* GetShapeList() {
+            wxList* list = self->GetShapeList();
+            return wxPy_ConvertList(list, "wxPyShape");
+        }
+    }
+
+    bool GetQuickEditMode();
+    bool GetSnapToGrid();
+    void InsertShape(wxPyShape *shape);
+    bool LoadFile(const wxString& filename);
+
+    // **** Have to deal with wxExpr and wxExprDatabase first...
+    //void OnDatabaseLoad(wxExprDatabase& database);
+    //void OnDatabaseSave(wxExprDatabase& database);
+    //bool OnHeaderLoad(wxExprDatabase& database, wxExpr& expr);
+    //bool OnHeaderSave(wxExprDatabase& database, wxExpr& expr);
+    //bool OnShapeLoad(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
+    //bool OnShapeSave(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
+
+
+    void ReadContainerGeometry(wxExprDatabase& database);
+    void ReadLines(wxExprDatabase& database);
+    void ReadNodes(wxExprDatabase& database);
+    void RecentreAll(wxDC& dc);
+    void Redraw(wxDC& dc);
+    void RemoveAllShapes();
+    void RemoveShape(wxPyShape* shape);
+    bool SaveFile(const wxString& filename);
+    void SetCanvas(wxPyShapeCanvas* canvas);
+    void SetGridSpacing(double spacing);
+    void SetMouseTolerance(int tolerance);
+    void SetQuickEditMode(bool mode);
+    void SetSnapToGrid(bool snap);
+    void ShowAll(bool show);
+    void Snap(double *x, double *y);
+
+};
+
+//---------------------------------------------------------------------------
+
+%{
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragLeft);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragRight);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragLeft);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragRight);
+    IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragLeft);
+    IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragRight);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnLeftClick);
+    IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnRightClick);
+%}
+
+
+class wxPyShapeCanvas : public wxScrolledWindow {
+public:
+    wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
+                    const wxPoint& pos = wxPyDefaultPosition,
+                    const wxSize& size = wxPyDefaultSize,
+                    long style = wxBORDER);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdOnScrollCallbacks(self)"
+
+    void AddShape(wxPyShape *shape, wxPyShape *addAfter = NULL);
+
+    // ****  Need a typemap for wxClassInfo, or implement wxObject, etc.....
+    wxPyShape* FindShape(double x1, double y, int *attachment,
+                       wxClassInfo *info = NULL, wxPyShape* notImage = NULL);
+
+    wxPyShape * FindFirstSensitiveShape(double x1, double y, int *attachment, int op);
+    wxDiagram* GetDiagram();
+
+    bool GetQuickEditMode();
+    void InsertShape(wxPyShape* shape);
+
+
+    void base_OnBeginDragLeft(double x, double y, int keys = 0);
+    void base_OnBeginDragRight(double x, double y, int keys = 0);
+    void base_OnEndDragLeft(double x, double y, int keys = 0);
+    void base_OnEndDragRight(double x, double y, int keys = 0);
+    void base_OnDragLeft(bool draw, double x, double y, int keys = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys = 0);
+    void base_OnLeftClick(double x, double y, int keys = 0);
+    void base_OnRightClick(double x, double y, int keys = 0);
+
+    void Redraw(wxDC& dc);
+    void RemoveShape(wxPyShape *shape);
+    void SetDiagram(wxDiagram *diagram);
+    void Snap(double *x, double *y);
+
+};
+
+
+//---------------------------------------------------------------------------
+
+
diff --git a/utils/wxPython/modules/ogl/oglcanvas.py b/utils/wxPython/modules/ogl/oglcanvas.py
new file mode 100644
index 0000000000..16b14b20b1
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglcanvas.py
@@ -0,0 +1,224 @@
+# This file was created automatically by SWIG.
+import oglcanvasc
+
+from misc import *
+
+from misc2 import *
+
+from windows import *
+
+from gdi import *
+
+from events import *
+
+from mdi import *
+
+from frames import *
+
+from stattool import *
+
+from controls import *
+
+from controls2 import *
+
+from windows2 import *
+
+from cmndlgs import *
+
+from windows3 import *
+
+from image import *
+
+from printfw import *
+import wx
+class wxDiagramPtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __del__(self,oglcanvasc=oglcanvasc):
+        if self.thisown == 1 :
+            oglcanvasc.delete_wxDiagram(self)
+    def AddShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_AddShape,(self,) + _args, _kwargs)
+        return val
+    def Clear(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_Clear,(self,) + _args, _kwargs)
+        return val
+    def DeleteAllShapes(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_DeleteAllShapes,(self,) + _args, _kwargs)
+        return val
+    def DrawOutline(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_DrawOutline,(self,) + _args, _kwargs)
+        return val
+    def FindShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_FindShape,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def GetCanvas(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetCanvas,(self,) + _args, _kwargs)
+        if val: val = wxPyShapeCanvasPtr(val) 
+        return val
+    def GetCount(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetCount,(self,) + _args, _kwargs)
+        return val
+    def GetGridSpacing(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetGridSpacing,(self,) + _args, _kwargs)
+        return val
+    def GetMouseTolerance(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetMouseTolerance,(self,) + _args, _kwargs)
+        return val
+    def GetShapeList(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetShapeList,(self,) + _args, _kwargs)
+        return val
+    def GetQuickEditMode(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetQuickEditMode,(self,) + _args, _kwargs)
+        return val
+    def GetSnapToGrid(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_GetSnapToGrid,(self,) + _args, _kwargs)
+        return val
+    def InsertShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_InsertShape,(self,) + _args, _kwargs)
+        return val
+    def LoadFile(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_LoadFile,(self,) + _args, _kwargs)
+        return val
+    def ReadContainerGeometry(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_ReadContainerGeometry,(self,) + _args, _kwargs)
+        return val
+    def ReadLines(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_ReadLines,(self,) + _args, _kwargs)
+        return val
+    def ReadNodes(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_ReadNodes,(self,) + _args, _kwargs)
+        return val
+    def RecentreAll(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_RecentreAll,(self,) + _args, _kwargs)
+        return val
+    def Redraw(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_Redraw,(self,) + _args, _kwargs)
+        return val
+    def RemoveAllShapes(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_RemoveAllShapes,(self,) + _args, _kwargs)
+        return val
+    def RemoveShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_RemoveShape,(self,) + _args, _kwargs)
+        return val
+    def SaveFile(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_SaveFile,(self,) + _args, _kwargs)
+        return val
+    def SetCanvas(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_SetCanvas,(self,) + _args, _kwargs)
+        return val
+    def SetGridSpacing(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_SetGridSpacing,(self,) + _args, _kwargs)
+        return val
+    def SetMouseTolerance(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_SetMouseTolerance,(self,) + _args, _kwargs)
+        return val
+    def SetQuickEditMode(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_SetQuickEditMode,(self,) + _args, _kwargs)
+        return val
+    def SetSnapToGrid(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_SetSnapToGrid,(self,) + _args, _kwargs)
+        return val
+    def ShowAll(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_ShowAll,(self,) + _args, _kwargs)
+        return val
+    def Snap(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxDiagram_Snap,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxDiagram instance at %s>" % (self.this,)
+class wxDiagram(wxDiagramPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglcanvasc.new_wxDiagram,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxPyShapeCanvasPtr(wxScrolledWindowPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas__setSelf,(self,) + _args, _kwargs)
+        return val
+    def AddShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_AddShape,(self,) + _args, _kwargs)
+        return val
+    def FindShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_FindShape,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def FindFirstSensitiveShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_FindFirstSensitiveShape,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def GetDiagram(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_GetDiagram,(self,) + _args, _kwargs)
+        if val: val = wxDiagramPtr(val) 
+        return val
+    def GetQuickEditMode(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_GetQuickEditMode,(self,) + _args, _kwargs)
+        return val
+    def InsertShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_InsertShape,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def Redraw(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_Redraw,(self,) + _args, _kwargs)
+        return val
+    def RemoveShape(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_RemoveShape,(self,) + _args, _kwargs)
+        return val
+    def SetDiagram(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_SetDiagram,(self,) + _args, _kwargs)
+        return val
+    def Snap(self, *_args, **_kwargs):
+        val = apply(oglcanvasc.wxPyShapeCanvas_Snap,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyShapeCanvas instance at %s>" % (self.this,)
+class wxPyShapeCanvas(wxPyShapeCanvasPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglcanvasc.new_wxPyShapeCanvas,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+        wx._StdWindowCallbacks(self)
+        wx._StdOnScrollCallbacks(self)
+
+
+
+
+
+
+#-------------- FUNCTION WRAPPERS ------------------
+
+
+
+#-------------- VARIABLE WRAPPERS ------------------
+
diff --git a/utils/wxPython/modules/ogl/oglhelpers.cpp b/utils/wxPython/modules/ogl/oglhelpers.cpp
new file mode 100644
index 0000000000..6b6e7b17b9
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglhelpers.cpp
@@ -0,0 +1,135 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        oglhelpers.cpp
+// Purpose:     Some Helper functions to help in data conversions in OGL
+//
+// Author:      Robin Dunn
+//
+// Created:     3-Sept-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+#include <Python.h>
+#include "helpers.h"
+
+//---------------------------------------------------------------------------
+// This one will work for any class for the VERY generic cases, but beyond that
+// the helper needs to know more about the type.
+
+wxList* wxPy_wxListHelper(PyObject* pyList, char* className) {
+    bool doSave = wxPyRestoreThread();
+    if (!PyList_Check(pyList)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a list object.");
+        wxPySaveThread(doSave);
+        return NULL;
+    }
+    int count = PyList_Size(pyList);
+    wxList* list = new wxList;
+    if (! list) {
+        PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
+        wxPySaveThread(doSave);
+        return NULL;
+    }
+    for (int x=0; x<count; x++) {
+        PyObject* pyo = PyList_GetItem(pyList, x);
+        wxObject* wxo = NULL;
+
+        if (SWIG_GetPtrObj(pyo, (void **)&wxo, className)) {
+            char errmsg[1024];
+            sprintf(errmsg, "Type error, expected list of %s objects", className);
+            PyErr_SetString(PyExc_TypeError, errmsg);
+            wxPySaveThread(doSave);
+            return NULL;
+        }
+        list->Append(wxo);
+    }
+    wxPySaveThread(doSave);
+    return list;
+}
+
+//---------------------------------------------------------------------------
+
+wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList) {
+    bool doSave = wxPyRestoreThread();
+    if (!PyList_Check(pyList)) {
+        PyErr_SetString(PyExc_TypeError, "Expected a list object.");
+        wxPySaveThread(doSave);
+        return NULL;
+    }
+    int count = PyList_Size(pyList);
+    wxList* list = new wxList;
+    if (! list) {
+        PyErr_SetString(PyExc_MemoryError, "Unable to allocate wxList object");
+        wxPySaveThread(doSave);
+        return NULL;
+    }
+    for (int x=0; x<count; x++) {
+        PyObject* pyo = PyList_GetItem(pyList, x);
+
+        if (PyTuple_Check(pyo)) {
+            PyObject* o1 = PyNumber_Float(PyTuple_GetItem(pyo, 0));
+            PyObject* o2 = PyNumber_Float(PyTuple_GetItem(pyo, 1));
+
+            double val1 = (o1 ? PyFloat_AsDouble(o1) : 0.0);
+            double val2 = (o2 ? PyFloat_AsDouble(o2) : 0.0);
+
+            list->Append((wxObject*) new wxRealPoint(val1, val2));
+
+        } else {
+            wxRealPoint* wxo = NULL;
+            if (SWIG_GetPtrObj(pyo, (void **)&wxo, "_wxRealPoint_p")) {
+                PyErr_SetString(PyExc_TypeError, "Type error, expected list of wxRealPoint objects or 2-tuples");
+                wxPySaveThread(doSave);
+                return NULL;
+            }
+            list->Append((wxObject*) new wxRealPoint(*wxo));
+        }
+    }
+    wxPySaveThread(doSave);
+    return list;
+}
+
+
+//---------------------------------------------------------------------------
+// Convert a wxList to a Python List
+
+#include <ogl.h>
+
+PyObject* wxPy_ConvertList(wxList* list, char* className) {
+    PyObject*   pyList;
+    PyObject*   pyObj;
+    wxObject*   wxObj;
+    wxNode*     node = list->First();
+
+    bool doSave = wxPyRestoreThread();
+    pyList = PyList_New(0);
+    while (node) {
+        wxObj = node->Data();
+//        printf("%s class at %x : %x\n", wxObj->GetClassInfo()->GetClassName(), (void*)wxObj, (void*)((wxShape*)wxObj)->GetParent());
+        pyObj = wxPyConstructObject(wxObj, className);
+        PyList_Append(pyList, pyObj);
+        node = node->Next();
+    }
+//      for (int x=0; x<PyList_Size(pyList); x++) {
+//          PyObject* obj = PyList_GetItem(pyList, x);
+//          char* attr = PyString_AsString(PyObject_GetAttrString(obj, "this"));
+//          PyObject* par = PyObject_CallMethod(obj, "GetParent", NULL);
+//          char* parent;
+//          if (par != Py_None)
+//              parent = PyString_AsString(PyObject_GetAttrString(par, "this"));
+//          else
+//              parent = "None";
+//          printf("obj.this = %s  obj.GetParent().this = %s\n", attr, parent);
+//      }
+//    printf("--------\n");
+    wxPySaveThread(doSave);
+    return pyList;
+}
+
+//---------------------------------------------------------------------------
+
+
+
+
+
diff --git a/utils/wxPython/modules/ogl/oglhelpers.h b/utils/wxPython/modules/ogl/oglhelpers.h
new file mode 100644
index 0000000000..1c2804d5f0
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglhelpers.h
@@ -0,0 +1,251 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        oglhelpers.h
+// Purpose:     Some Helper functions to help in data conversions in OGL
+//
+// Author:      Robin Dunn
+//
+// Created:     9-Sept-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef __wxp_ogl_helpers__
+#define __wxp_ogl_helpers__
+
+
+#include <ogl.h>
+#include <basicp.h>
+#include <constrnt.h>
+#include <bmpshape.h>
+#include <drawn.h>
+
+//---------------------------------------------------------------------------
+// Define a macro that will be used in the class definintions below
+
+#define WXSHAPE_DEC_CALLBACKS()       \
+    DEC_PYCALLBACK__                (OnDelete);             \
+    DEC_PYCALLBACK__DC              (OnDraw);               \
+    DEC_PYCALLBACK__DC              (OnDrawContents);       \
+    DEC_PYCALLBACK__DCBOOL          (OnDrawBranches);       \
+    DEC_PYCALLBACK__DC              (OnMoveLinks);          \
+    DEC_PYCALLBACK__DC              (OnErase);              \
+    DEC_PYCALLBACK__DC              (OnEraseContents);      \
+    DEC_PYCALLBACK__DC              (OnHighlight);          \
+    DEC_PYCALLBACK__2DBL2INT        (OnLeftClick);          \
+    DEC_PYCALLBACK__2DBL2INT        (OnLeftDoubleClick);    \
+    DEC_PYCALLBACK__2DBL2INT        (OnRightClick);         \
+    DEC_PYCALLBACK__2DBL            (OnSize);               \
+    DEC_PYCALLBACK_BOOL_DC4DBLBOOL  (OnMovePre);            \
+    DEC_PYCALLBACK__DC4DBLBOOL      (OnMovePost);           \
+    DEC_PYCALLBACK__BOOL2DBL2INT    (OnDragLeft);           \
+    DEC_PYCALLBACK__2DBL2INT        (OnBeginDragLeft);      \
+    DEC_PYCALLBACK__2DBL2INT        (OnEndDragLeft);        \
+    DEC_PYCALLBACK__BOOL2DBL2INT    (OnDragRight);          \
+    DEC_PYCALLBACK__2DBL2INT        (OnBeginDragRight);     \
+    DEC_PYCALLBACK__2DBL2INT        (OnEndDragRight);       \
+    DEC_PYCALLBACK__DC4DBL          (OnDrawOutline);        \
+    DEC_PYCALLBACK__DC              (OnDrawControlPoints);  \
+    DEC_PYCALLBACK__DC              (OnEraseControlPoints); \
+    DEC_PYCALLBACK__DCBOOL          (OnMoveLink);           \
+    DEC_PYCALLBACK__WXCPBOOL2DBL2INT(OnSizingDragLeft);     \
+    DEC_PYCALLBACK__WXCP2DBL2INT    (OnSizingBeginDragLeft);\
+    DEC_PYCALLBACK__WXCP2DBL2INT    (OnSizingEndDragLeft);  \
+    DEC_PYCALLBACK__2DBL            (OnBeginSize);          \
+    DEC_PYCALLBACK__2DBL            (OnEndSize);            \
+                                                            \
+    PYPRIVATE;
+
+
+#define WXSHAPE_IMP_CALLBACKS(CLASS, PARENT)       \
+    IMP_PYCALLBACK__                (CLASS, PARENT,  OnDelete);             \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnDraw);               \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnDrawContents);       \
+    IMP_PYCALLBACK__DCBOOL          (CLASS, PARENT,  OnDrawBranches);       \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnMoveLinks);          \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnErase);              \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnEraseContents);      \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnHighlight);          \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnLeftClick);          \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnLeftDoubleClick);    \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnRightClick);         \
+    IMP_PYCALLBACK__2DBL            (CLASS, PARENT,  OnSize);               \
+    IMP_PYCALLBACK_BOOL_DC4DBLBOOL  (CLASS, PARENT,  OnMovePre);            \
+    IMP_PYCALLBACK__DC4DBLBOOL      (CLASS, PARENT,  OnMovePost);           \
+    IMP_PYCALLBACK__BOOL2DBL2INT    (CLASS, PARENT,  OnDragLeft);           \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnBeginDragLeft);      \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnEndDragLeft);        \
+    IMP_PYCALLBACK__BOOL2DBL2INT    (CLASS, PARENT,  OnDragRight);          \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnBeginDragRight);     \
+    IMP_PYCALLBACK__2DBL2INT        (CLASS, PARENT,  OnEndDragRight);       \
+    IMP_PYCALLBACK__DC4DBL          (CLASS, PARENT,  OnDrawOutline);        \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnDrawControlPoints);  \
+    IMP_PYCALLBACK__DC              (CLASS, PARENT,  OnEraseControlPoints); \
+    IMP_PYCALLBACK__DCBOOL          (CLASS, PARENT,  OnMoveLink);           \
+    IMP_PYCALLBACK__WXCPBOOL2DBL2INT(CLASS, PARENT,  OnSizingDragLeft);     \
+    IMP_PYCALLBACK__WXCP2DBL2INT    (CLASS, PARENT,  OnSizingBeginDragLeft);\
+    IMP_PYCALLBACK__WXCP2DBL2INT    (CLASS, PARENT,  OnSizingEndDragLeft);  \
+    IMP_PYCALLBACK__2DBL            (CLASS, PARENT,  OnBeginSize);          \
+    IMP_PYCALLBACK__2DBL            (CLASS, PARENT,  OnEndSize);            \
+
+
+    //  This one may be difficult...
+    //PYCALLBACK__???????       (PARENT,  OnChangeAttachment);
+
+
+
+//---------------------------------------------------------------------------
+// These are prototypes of some helper functions found in oglhelpers.cpp
+
+wxList* wxPy_wxListHelper(PyObject* pyList, char* className);
+wxList* wxPy_wxRealPoint_ListHelper(PyObject* pyList);
+
+PyObject* wxPy_ConvertList(wxList* list, char* className);
+
+
+
+//---------------------------------------------------------------------------
+// Classes that derive from the shapes and such, but which know how to turn
+// virtual callbacks into Python callbacks.
+
+class wxPyShapeCanvas : public wxShapeCanvas {
+public:
+    wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
+                    const wxPoint& pos = wxPyDefaultPosition,
+                    const wxSize& size = wxPyDefaultSize,
+                    long style = wxBORDER)
+        : wxShapeCanvas(parent, id, pos, size, style) {}
+
+    DEC_PYCALLBACK__2DBLINT(OnBeginDragLeft);
+    DEC_PYCALLBACK__2DBLINT(OnBeginDragRight);
+    DEC_PYCALLBACK__2DBLINT(OnEndDragLeft);
+    DEC_PYCALLBACK__2DBLINT(OnEndDragRight);
+    DEC_PYCALLBACK__BOOL2DBLINT(OnDragLeft);
+    DEC_PYCALLBACK__BOOL2DBLINT(OnDragRight);
+    DEC_PYCALLBACK__2DBLINT(OnLeftClick);
+    DEC_PYCALLBACK__2DBLINT(OnRightClick);
+
+    PYPRIVATE;
+};
+
+
+
+class wxPyShapeEvtHandler : public wxShapeEvtHandler {
+public:
+    wxPyShapeEvtHandler(wxShapeEvtHandler *prev = NULL, wxShape *shape = NULL)
+        : wxShapeEvtHandler(prev, shape) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyShape : public wxShape {
+public:
+    wxPyShape(wxPyShapeCanvas *can = NULL)
+        : wxShape(can) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+
+};
+
+
+class wxPyRectangleShape : public wxRectangleShape {
+public:
+    wxPyRectangleShape(double width = 0.0, double height = 0.0)
+        : wxRectangleShape(width, height) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+
+class wxPyBitmapShape : public wxBitmapShape {
+public:
+    wxPyBitmapShape() : wxBitmapShape() {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+
+class wxPyDrawnShape : public wxDrawnShape {
+public:
+    wxPyDrawnShape() : wxDrawnShape() {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyCompositeShape : public wxCompositeShape {
+public:
+    wxPyCompositeShape() : wxCompositeShape() {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyDividedShape : public wxDividedShape {
+public:
+    wxPyDividedShape(double width = 0.0, double height = 0.0)
+        : wxDividedShape(width, height) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyDivisionShape : public wxDivisionShape {
+public:
+    wxPyDivisionShape() : wxDivisionShape() {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyEllipseShape : public wxEllipseShape {
+public:
+    wxPyEllipseShape(double width = 0.0, double height = 0.0)
+        : wxEllipseShape(width, height) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyCircleShape : public wxCircleShape {
+public:
+    wxPyCircleShape(double width = 0.0)
+        : wxCircleShape(width) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyLineShape : public wxLineShape {
+public:
+    wxPyLineShape() : wxLineShape() {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyPolygonShape : public wxPolygonShape {
+public:
+    wxPyPolygonShape() : wxPolygonShape() {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+class wxPyTextShape : public wxTextShape {
+public:
+    wxPyTextShape(double width = 0.0, double height = 0.0)
+        : wxTextShape(width, height) {}
+
+    WXSHAPE_DEC_CALLBACKS();
+};
+
+
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+#endif
+
diff --git a/utils/wxPython/modules/ogl/oglshapes.cpp b/utils/wxPython/modules/ogl/oglshapes.cpp
new file mode 100644
index 0000000000..44c42e63a5
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglshapes.cpp
@@ -0,0 +1,11706 @@
+/*
+ * FILE : ./oglshapes.cpp
+ * 
+ * This file was automatically generated by :
+ * Simplified Wrapper and Interface Generator (SWIG)
+ * Version 1.1 (Build 810)
+ * 
+ * Portions Copyright (c) 1995-1998
+ * The University of Utah and The Regents of the University of California.
+ * Permission is granted to distribute this file in any manner provided
+ * this notice remains intact.
+ * 
+ * Do not make changes to this file--changes will be lost!
+ *
+ */
+
+
+#define SWIGCODE
+/* Implementation : PYTHON */
+
+#define SWIGPYTHON
+#include <string.h>
+#include <stdlib.h>
+/* Definitions for Windows/Unix exporting */
+#if defined(__WIN32__)
+#   if defined(_MSC_VER)
+#	define SWIGEXPORT(a) __declspec(dllexport) a
+#   else
+#	if defined(__BORLANDC__)
+#	    define SWIGEXPORT(a) a _export 
+#	else
+#	    define SWIGEXPORT(a) a 
+#	endif
+#   endif
+#else
+#   define SWIGEXPORT(a) a 
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "Python.h"
+extern void SWIG_MakePtr(char *, void *, char *);
+extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
+extern char *SWIG_GetPtr(char *, void **, char *);
+extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
+extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
+extern PyObject *SWIG_newvarlink(void);
+#ifdef __cplusplus
+}
+#endif
+#define SWIG_init    initoglshapesc
+
+#define SWIG_name    "oglshapesc"
+
+#include "helpers.h"
+#include "oglhelpers.h"
+
+static PyObject* l_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyList_Check(target)) {
+            o2 = target;
+            target = PyList_New(0);
+            PyList_Append(target, o2);
+	    Py_XDECREF(o2);
+        }
+        PyList_Append(target,o);
+	Py_XDECREF(o);
+    }
+    return target;
+}
+
+static PyObject* t_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyTuple_Check(target)) {
+            o2 = target;
+            target = PyTuple_New(1);
+            PyTuple_SetItem(target, 0, o2);
+        }
+        o3 = PyTuple_New(1);            
+        PyTuple_SetItem(o3, 0, o);      
+
+        o2 = target;
+        target = PySequence_Concat(o2, o3); 
+        Py_DECREF(o2);                      
+        Py_DECREF(o3);
+    }
+    return target;
+}
+
+
+HELPEREXPORT byte* byte_LIST_helper(PyObject* source);
+HELPEREXPORT int* int_LIST_helper(PyObject* source);
+HELPEREXPORT long* long_LIST_helper(PyObject* source);
+HELPEREXPORT char** string_LIST_helper(PyObject* source);
+HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source);
+HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source);
+HELPEREXPORT wxString* wxString_LIST_helper(PyObject* source);
+HELPEREXPORT wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
+
+
+static char* wxStringErrorMsg = "string type is required for parameter";
+
+    WXSHAPE_IMP_CALLBACKS(wxPyRectangleShape, wxRectangleShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyBitmapShape, wxBitmapShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyDrawnShape, wxDrawnShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyCompositeShape, wxCompositeShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyDividedShape, wxDividedShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyDivisionShape, wxDivisionShape);
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define new_wxPseudoMetaFile() (new wxPseudoMetaFile())
+static PyObject *_wrap_new_wxPseudoMetaFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPseudoMetaFile",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPseudoMetaFile *)new_wxPseudoMetaFile();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPseudoMetaFile_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define delete_wxPseudoMetaFile(_swigobj) (delete _swigobj)
+static PyObject *_wrap_delete_wxPseudoMetaFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:delete_wxPseudoMetaFile",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPseudoMetaFile. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxPseudoMetaFile(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_Draw(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->Draw(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPseudoMetaFile_Draw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","xoffset","yoffset", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd:wxPseudoMetaFile_Draw",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_Draw. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_Draw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_Draw(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_WriteAttributes(_swigobj,_swigarg0,_swigarg1)  (_swigobj->WriteAttributes(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_WriteAttributes(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxExpr * _arg1;
+    int  _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","clause","whichAngle", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOi:wxPseudoMetaFile_WriteAttributes",_kwnames,&_argo0,&_argo1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_WriteAttributes. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxExpr_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_WriteAttributes. Expected _wxExpr_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_WriteAttributes(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_ReadAttributes(_swigobj,_swigarg0,_swigarg1)  (_swigobj->ReadAttributes(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_ReadAttributes(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxExpr * _arg1;
+    int  _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","clause","whichAngle", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOi:wxPseudoMetaFile_ReadAttributes",_kwnames,&_argo0,&_argo1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_ReadAttributes. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxExpr_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_ReadAttributes. Expected _wxExpr_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_ReadAttributes(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_Clear(_swigobj)  (_swigobj->Clear())
+static PyObject *_wrap_wxPseudoMetaFile_Clear(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_Clear",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_Clear. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_Clear(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_Copy(_swigobj,_swigarg0)  (_swigobj->Copy(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_Copy(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxPseudoMetaFile * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","copy", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_Copy",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_Copy. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_Copy. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_Copy(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_Scale(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Scale(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_Scale(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","sx","sy", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPseudoMetaFile_Scale",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_Scale. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_Scale(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_ScaleTo(_swigobj,_swigarg0,_swigarg1)  (_swigobj->ScaleTo(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_ScaleTo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPseudoMetaFile_ScaleTo",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_ScaleTo. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_ScaleTo(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_Translate(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Translate(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_Translate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPseudoMetaFile_Translate",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_Translate. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_Translate(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_Rotate(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->Rotate(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPseudoMetaFile_Rotate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    double  _arg1;
+    double  _arg2;
+    double  _arg3;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","theta", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oddd:wxPseudoMetaFile_Rotate",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_Rotate. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_Rotate(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_LoadFromMetaFile(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->LoadFromMetaFile(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPseudoMetaFile_LoadFromMetaFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPseudoMetaFile * _arg0;
+    char * _arg1;
+    double * _arg2;
+    double * _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "self","filename","width","height", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OsOO:wxPseudoMetaFile_LoadFromMetaFile",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_LoadFromMetaFile. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPseudoMetaFile_LoadFromMetaFile. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPseudoMetaFile_LoadFromMetaFile. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPseudoMetaFile_LoadFromMetaFile(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_GetBounds(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->GetBounds(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPseudoMetaFile_GetBounds(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    double * _arg1;
+    double * _arg2;
+    double * _arg3;
+    double * _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    PyObject * _argo4 = 0;
+    char *_kwnames[] = { "self","minX","minY","maxX","maxY", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOOO:wxPseudoMetaFile_GetBounds",_kwnames,&_argo0,&_argo1,&_argo2,&_argo3,&_argo4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_GetBounds. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_GetBounds. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPseudoMetaFile_GetBounds. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPseudoMetaFile_GetBounds. Expected _double_p.");
+        return NULL;
+        }
+    }
+    if (_argo4) {
+        if (_argo4 == Py_None) { _arg4 = NULL; }
+        else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_double_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxPseudoMetaFile_GetBounds. Expected _double_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_GetBounds(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_CalculateSize(_swigobj,_swigarg0)  (_swigobj->CalculateSize(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_CalculateSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxDrawnShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_CalculateSize",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_CalculateSize. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_CalculateSize. Expected _wxDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_CalculateSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetRotateable(_swigobj,_swigarg0)  (_swigobj->SetRotateable(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetRotateable(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","rot", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPseudoMetaFile_SetRotateable",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetRotateable. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetRotateable(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_GetRotateable(_swigobj)  (_swigobj->GetRotateable())
+static PyObject *_wrap_wxPseudoMetaFile_GetRotateable(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_GetRotateable",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_GetRotateable. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPseudoMetaFile_GetRotateable(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_SetSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPseudoMetaFile_SetSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetSize. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetFillBrush(_swigobj,_swigarg0)  (_swigobj->SetFillBrush(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetFillBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxBrush * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","brush", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_SetFillBrush",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetFillBrush. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBrush_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetFillBrush. Expected _wxBrush_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetFillBrush(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_GetFillBrush(_swigobj)  (_swigobj->GetFillBrush())
+static PyObject *_wrap_wxPseudoMetaFile_GetFillBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxBrush * _result;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_GetFillBrush",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_GetFillBrush. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBrush *)wxPseudoMetaFile_GetFillBrush(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetOutlinePen(_swigobj,_swigarg0)  (_swigobj->SetOutlinePen(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetOutlinePen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxPen * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pen", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_SetOutlinePen",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetOutlinePen. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPen_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetOutlinePen. Expected _wxPen_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetOutlinePen(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_GetOutlinePen(_swigobj)  (_swigobj->GetOutlinePen())
+static PyObject *_wrap_wxPseudoMetaFile_GetOutlinePen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPen * _result;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_GetOutlinePen",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_GetOutlinePen. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPen *)wxPseudoMetaFile_GetOutlinePen(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetOutlineOp(_swigobj,_swigarg0)  (_swigobj->SetOutlineOp(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetOutlineOp(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","op", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPseudoMetaFile_SetOutlineOp",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetOutlineOp. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetOutlineOp(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_GetOutlineOp(_swigobj)  (_swigobj->GetOutlineOp())
+static PyObject *_wrap_wxPseudoMetaFile_GetOutlineOp(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_GetOutlineOp",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_GetOutlineOp. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPseudoMetaFile_GetOutlineOp(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_IsValid(_swigobj)  (_swigobj->IsValid())
+static PyObject *_wrap_wxPseudoMetaFile_IsValid(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_IsValid",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_IsValid. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPseudoMetaFile_IsValid(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawLine(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawLine(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_DrawLine(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxPoint * _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","pt1","pt2", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPseudoMetaFile_DrawLine",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawLine. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawLine. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPseudoMetaFile_DrawLine. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawLine(_arg0,*_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawRectangle(_swigobj,_swigarg0)  (_swigobj->DrawRectangle(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_DrawRectangle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxRect * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_DrawRectangle",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawRectangle. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawRectangle. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawRectangle(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawRoundedRectangle(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawRoundedRectangle(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_DrawRoundedRectangle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxRect * _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect","radius", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOd:wxPseudoMetaFile_DrawRoundedRectangle",_kwnames,&_argo0,&_argo1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawRoundedRectangle. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawRoundedRectangle. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawRoundedRectangle(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawArc(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawArc(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPseudoMetaFile_DrawArc(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxPoint * _arg1;
+    wxPoint * _arg2;
+    wxPoint * _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "self","centrePt","startPt","endPt", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOO:wxPseudoMetaFile_DrawArc",_kwnames,&_argo0,&_argo1,&_argo2,&_argo3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawArc. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawArc. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPseudoMetaFile_DrawArc. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPseudoMetaFile_DrawArc. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawArc(_arg0,*_arg1,*_arg2,*_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawEllipticArc(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawEllipticArc(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPseudoMetaFile_DrawEllipticArc(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxRect * _arg1;
+    double  _arg2;
+    double  _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect","startAngle","endAngle", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd:wxPseudoMetaFile_DrawEllipticArc",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawEllipticArc. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawEllipticArc. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawEllipticArc(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawEllipse(_swigobj,_swigarg0)  (_swigobj->DrawEllipse(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_DrawEllipse(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxRect * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_DrawEllipse",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawEllipse. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawEllipse. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawEllipse(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawPoint(_swigobj,_swigarg0)  (_swigobj->DrawPoint(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_DrawPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxPoint * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_DrawPoint",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawPoint. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_DrawPoint. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawPoint(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawText(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawText(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_DrawText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxString * _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","text","pt", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPseudoMetaFile_DrawText",_kwnames,&_argo0,&_obj1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawText. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPseudoMetaFile_DrawText. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawText(_arg0,*_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawLines(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawLines(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_DrawLines(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    int  _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","LIST", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_DrawLines",_kwnames,&_argo0,&_obj2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawLines. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_obj2)
+{
+    _arg2 = wxPoint_LIST_helper(_obj2);
+    if (_arg2 == NULL) {
+        return NULL;
+    }
+}
+{
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawLines(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    delete [] _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawPolygon(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawPolygon(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPseudoMetaFile_DrawPolygon(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    int  _arg1;
+    wxPoint * _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","LIST","flags", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPseudoMetaFile_DrawPolygon",_kwnames,&_argo0,&_obj2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawPolygon. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_obj2)
+{
+    _arg2 = wxPoint_LIST_helper(_obj2);
+    if (_arg2 == NULL) {
+        return NULL;
+    }
+}
+{
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawPolygon(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    delete [] _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DrawSpline(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawSpline(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_DrawSpline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    int  _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","LIST", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_DrawSpline",_kwnames,&_argo0,&_obj2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DrawSpline. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_obj2)
+{
+    _arg2 = wxPoint_LIST_helper(_obj2);
+    if (_arg2 == NULL) {
+        return NULL;
+    }
+}
+{
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DrawSpline(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    delete [] _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetClippingRect(_swigobj,_swigarg0)  (_swigobj->SetClippingRect(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetClippingRect(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxRect * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_SetClippingRect",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetClippingRect. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetClippingRect. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetClippingRect(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_DestroyClippingRect(_swigobj)  (_swigobj->DestroyClippingRect())
+static PyObject *_wrap_wxPseudoMetaFile_DestroyClippingRect(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPseudoMetaFile_DestroyClippingRect",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_DestroyClippingRect. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_DestroyClippingRect(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetPen(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetPen(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_SetPen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxPen * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","pen","isOutline", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPseudoMetaFile_SetPen",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetPen. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPen_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetPen. Expected _wxPen_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetPen(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetBrush(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetBrush(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPseudoMetaFile_SetBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxBrush * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","brush","isFill", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPseudoMetaFile_SetBrush",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetBrush. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBrush_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetBrush. Expected _wxBrush_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetBrush(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetFont(_swigobj,_swigarg0)  (_swigobj->SetFont(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxFont * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","font", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_SetFont",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetFont. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFont_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetFont. Expected _wxFont_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetFont(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetTextColour(_swigobj,_swigarg0)  (_swigobj->SetTextColour(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxColour * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_SetTextColour",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetTextColour. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxColour_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetTextColour. Expected _wxColour_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetTextColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetBackgroundColour(_swigobj,_swigarg0)  (_swigobj->SetBackgroundColour(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    wxColour * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPseudoMetaFile_SetBackgroundColour",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetBackgroundColour. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxColour_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPseudoMetaFile_SetBackgroundColour. Expected _wxColour_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetBackgroundColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPseudoMetaFile_SetBackgroundMode(_swigobj,_swigarg0)  (_swigobj->SetBackgroundMode(_swigarg0))
+static PyObject *_wrap_wxPseudoMetaFile_SetBackgroundMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","mode", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPseudoMetaFile_SetBackgroundMode",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPseudoMetaFile_SetBackgroundMode. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile_SetBackgroundMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyRectangleShapeTowxPyShape(void *ptr) {
+    wxPyRectangleShape *src;
+    wxPyShape *dest;
+    src = (wxPyRectangleShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyRectangleShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyRectangleShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyRectangleShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyRectangleShape(_swigarg0,_swigarg1) (new wxPyRectangleShape(_swigarg0,_swigarg1))
+static PyObject *_wrap_new_wxPyRectangleShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _result;
+    double  _arg0 = (double ) 0.0;
+    double  _arg1 = (double ) 0.0;
+    char *_kwnames[] = { "width","height", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|dd:new_wxPyRectangleShape",_kwnames,&_arg0,&_arg1)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyRectangleShape *)new_wxPyRectangleShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyRectangleShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyRectangleShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape__setSelf. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_SetCornerRadius(_swigobj,_swigarg0)  (_swigobj->SetCornerRadius(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_SetCornerRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","radius", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxPyRectangleShape_SetCornerRadius",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_SetCornerRadius. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_SetCornerRadius(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyRectangleShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyRectangleShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDelete. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDraw. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDrawContents. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyRectangleShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDrawBranches. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnMoveLinks. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnErase. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnEraseContents. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnHighlight. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnLeftClick. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnLeftDoubleClick. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnRightClick. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyRectangleShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyRectangleShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnSize. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyRectangleShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyRectangleShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnMovePre. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyRectangleShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyRectangleShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyRectangleShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnMovePost. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyRectangleShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDragLeft. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnBeginDragLeft. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnEndDragLeft. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyRectangleShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDragRight. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnBeginDragRight. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyRectangleShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyRectangleShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnEndDragRight. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyRectangleShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDrawOutline. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnDrawControlPoints. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyRectangleShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyRectangleShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnEraseControlPoints. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyRectangleShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyRectangleShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnMoveLink. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyRectangleShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyRectangleShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnSizingDragLeft. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyRectangleShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyRectangleShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnSizingBeginDragLeft. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyRectangleShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyRectangleShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnSizingEndDragLeft. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyRectangleShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyRectangleShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyRectangleShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnBeginSize. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyRectangleShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyRectangleShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyRectangleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyRectangleShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyRectangleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyRectangleShape_base_OnEndSize. Expected _wxPyRectangleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyRectangleShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyBitmapShapeTowxPyRectangleShape(void *ptr) {
+    wxPyBitmapShape *src;
+    wxPyRectangleShape *dest;
+    src = (wxPyBitmapShape *) ptr;
+    dest = (wxPyRectangleShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyBitmapShapeTowxPyShape(void *ptr) {
+    wxPyBitmapShape *src;
+    wxPyShape *dest;
+    src = (wxPyBitmapShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyBitmapShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyBitmapShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyBitmapShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyBitmapShape() (new wxPyBitmapShape())
+static PyObject *_wrap_new_wxPyBitmapShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPyBitmapShape",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyBitmapShape *)new_wxPyBitmapShape();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyBitmapShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyBitmapShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape__setSelf. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_GetBitmap(_swigobj)  (_swigobj->GetBitmap())
+static PyObject *_wrap_wxPyBitmapShape_GetBitmap(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxBitmap * _result;
+    wxPyBitmapShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyBitmapShape_GetBitmap",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_GetBitmap. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap & _result_ref = wxPyBitmapShape_GetBitmap(_arg0);
+    _result = (wxBitmap *) &_result_ref;
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_GetFilename(_swigobj)  (_swigobj->GetFilename())
+static PyObject *_wrap_wxPyBitmapShape_GetFilename(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxPyBitmapShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyBitmapShape_GetFilename",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_GetFilename. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxPyBitmapShape_GetFilename(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_SetBitmap(_swigobj,_swigarg0)  (_swigobj->SetBitmap(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_SetBitmap(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxBitmap * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","bitmap", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_SetBitmap",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_SetBitmap. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBitmap_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_SetBitmap. Expected _wxBitmap_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_SetBitmap(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_SetFilename(_swigobj,_swigarg0)  (_swigobj->SetFilename(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_SetFilename(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","filename", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_SetFilename",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_SetFilename. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_SetFilename(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyBitmapShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyBitmapShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDelete. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDraw. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDrawContents. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyBitmapShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDrawBranches. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnMoveLinks. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnErase. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnEraseContents. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnHighlight. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnLeftClick. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnLeftDoubleClick. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnRightClick. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyBitmapShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyBitmapShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnSize. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyBitmapShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyBitmapShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnMovePre. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyBitmapShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyBitmapShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyBitmapShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnMovePost. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyBitmapShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDragLeft. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnBeginDragLeft. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnEndDragLeft. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyBitmapShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDragRight. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnBeginDragRight. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyBitmapShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyBitmapShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnEndDragRight. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyBitmapShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDrawOutline. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnDrawControlPoints. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyBitmapShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyBitmapShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnEraseControlPoints. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyBitmapShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyBitmapShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnMoveLink. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyBitmapShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyBitmapShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnSizingDragLeft. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyBitmapShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyBitmapShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnSizingBeginDragLeft. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyBitmapShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyBitmapShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnSizingEndDragLeft. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyBitmapShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyBitmapShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyBitmapShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnBeginSize. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyBitmapShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyBitmapShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyBitmapShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyBitmapShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyBitmapShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyBitmapShape_base_OnEndSize. Expected _wxPyBitmapShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyBitmapShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyDrawnShapeTowxPyRectangleShape(void *ptr) {
+    wxPyDrawnShape *src;
+    wxPyRectangleShape *dest;
+    src = (wxPyDrawnShape *) ptr;
+    dest = (wxPyRectangleShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDrawnShapeTowxPyShape(void *ptr) {
+    wxPyDrawnShape *src;
+    wxPyShape *dest;
+    src = (wxPyDrawnShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDrawnShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyDrawnShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyDrawnShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyDrawnShape() (new wxPyDrawnShape())
+static PyObject *_wrap_new_wxPyDrawnShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPyDrawnShape",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDrawnShape *)new_wxPyDrawnShape();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDrawnShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDrawnShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape__setSelf. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_CalculateSize(_swigobj)  (_swigobj->CalculateSize())
+static PyObject *_wrap_wxPyDrawnShape_CalculateSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDrawnShape_CalculateSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_CalculateSize. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_CalculateSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DestroyClippingRect(_swigobj)  (_swigobj->DestroyClippingRect())
+static PyObject *_wrap_wxPyDrawnShape_DestroyClippingRect(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDrawnShape_DestroyClippingRect",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DestroyClippingRect. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DestroyClippingRect(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawArc(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawArc(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyDrawnShape_DrawArc(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxPoint * _arg1;
+    wxPoint * _arg2;
+    wxPoint * _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "self","centrePoint","startPoint","endPoint", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOO:wxPyDrawnShape_DrawArc",_kwnames,&_argo0,&_argo1,&_argo2,&_argo3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawArc. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_DrawArc. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyDrawnShape_DrawArc. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyDrawnShape_DrawArc. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawArc(_arg0,*_arg1,*_arg2,*_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawAtAngle(_swigobj,_swigarg0)  (_swigobj->DrawAtAngle(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_DrawAtAngle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","angle", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyDrawnShape_DrawAtAngle",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawAtAngle. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawAtAngle(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawEllipticArc(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawEllipticArc(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyDrawnShape_DrawEllipticArc(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxRect * _arg1;
+    double  _arg2;
+    double  _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect","startAngle","endAngle", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd:wxPyDrawnShape_DrawEllipticArc",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawEllipticArc. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_DrawEllipticArc. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawEllipticArc(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawLine(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawLine(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_DrawLine(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxPoint * _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","point1","point2", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyDrawnShape_DrawLine",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawLine. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_DrawLine. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyDrawnShape_DrawLine. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawLine(_arg0,*_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawLines(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawLines(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_DrawLines(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    int  _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","LIST", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_DrawLines",_kwnames,&_argo0,&_obj2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawLines. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_obj2)
+{
+    _arg2 = wxPoint_LIST_helper(_obj2);
+    if (_arg2 == NULL) {
+        return NULL;
+    }
+}
+{
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawLines(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    delete [] _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawPoint(_swigobj,_swigarg0)  (_swigobj->DrawPoint(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_DrawPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxPoint * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","point", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_DrawPoint",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawPoint. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_DrawPoint. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawPoint(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawPolygon(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawPolygon(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyDrawnShape_DrawPolygon(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    int  _arg1;
+    wxPoint * _arg2;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","LIST","flags", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDrawnShape_DrawPolygon",_kwnames,&_argo0,&_obj2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawPolygon. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_obj2)
+{
+    _arg2 = wxPoint_LIST_helper(_obj2);
+    if (_arg2 == NULL) {
+        return NULL;
+    }
+}
+{
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawPolygon(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    delete [] _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawRectangle(_swigobj,_swigarg0)  (_swigobj->DrawRectangle(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_DrawRectangle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxRect * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_DrawRectangle",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawRectangle. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_DrawRectangle. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawRectangle(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawRoundedRectangle(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawRoundedRectangle(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_DrawRoundedRectangle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxRect * _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect","radius", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOd:wxPyDrawnShape_DrawRoundedRectangle",_kwnames,&_argo0,&_argo1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawRoundedRectangle. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_DrawRoundedRectangle. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawRoundedRectangle(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawSpline(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawSpline(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_DrawSpline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    int  _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","LIST", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_DrawSpline",_kwnames,&_argo0,&_obj2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawSpline. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_obj2)
+{
+    _arg2 = wxPoint_LIST_helper(_obj2);
+    if (_arg2 == NULL) {
+        return NULL;
+    }
+}
+{
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawSpline(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    delete [] _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_DrawText(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DrawText(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_DrawText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxString * _arg1;
+    wxPoint * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","text","point", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyDrawnShape_DrawText",_kwnames,&_argo0,&_obj1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_DrawText. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyDrawnShape_DrawText. Expected _wxPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_DrawText(_arg0,*_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_GetAngle(_swigobj)  (_swigobj->GetAngle())
+static PyObject *_wrap_wxPyDrawnShape_GetAngle(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyDrawnShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDrawnShape_GetAngle",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_GetAngle. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyDrawnShape_GetAngle(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_GetMetaFile(_swigobj)  (_swigobj->GetMetaFile())
+static PyObject *_wrap_wxPyDrawnShape_GetMetaFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _result;
+    wxPyDrawnShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDrawnShape_GetMetaFile",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_GetMetaFile. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPseudoMetaFile & _result_ref = wxPyDrawnShape_GetMetaFile(_arg0);
+    _result = (wxPseudoMetaFile *) &_result_ref;
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPseudoMetaFile_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_GetRotation(_swigobj)  (_swigobj->GetRotation())
+static PyObject *_wrap_wxPyDrawnShape_GetRotation(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxPyDrawnShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDrawnShape_GetRotation",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_GetRotation. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxPyDrawnShape_GetRotation(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_LoadFromMetaFile(_swigobj,_swigarg0)  (_swigobj->LoadFromMetaFile(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_LoadFromMetaFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyDrawnShape * _arg0;
+    char * _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","filename", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Os:wxPyDrawnShape_LoadFromMetaFile",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_LoadFromMetaFile. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyDrawnShape_LoadFromMetaFile(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_Rotate(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->Rotate(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyDrawnShape_Rotate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    double  _arg3;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","theta", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oddd:wxPyDrawnShape_Rotate",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_Rotate. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_Rotate(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetClippingRect(_swigobj,_swigarg0)  (_swigobj->SetClippingRect(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_SetClippingRect(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxRect * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","rect", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_SetClippingRect",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetClippingRect. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxRect_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_SetClippingRect. Expected _wxRect_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetClippingRect(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetDrawnBackgroundColour(_swigobj,_swigarg0)  (_swigobj->SetDrawnBackgroundColour(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_SetDrawnBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxColour * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_SetDrawnBackgroundColour",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetDrawnBackgroundColour. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxColour_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_SetDrawnBackgroundColour. Expected _wxColour_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetDrawnBackgroundColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetDrawnBackgroundMode(_swigobj,_swigarg0)  (_swigobj->SetDrawnBackgroundMode(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_SetDrawnBackgroundMode(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","mode", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyDrawnShape_SetDrawnBackgroundMode",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetDrawnBackgroundMode. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetDrawnBackgroundMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetDrawnBrush(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetDrawnBrush(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_SetDrawnBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxBrush * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","pen","isOutline", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDrawnShape_SetDrawnBrush",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetDrawnBrush. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBrush_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_SetDrawnBrush. Expected _wxBrush_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetDrawnBrush(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetDrawnFont(_swigobj,_swigarg0)  (_swigobj->SetDrawnFont(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_SetDrawnFont(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxFont * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","font", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_SetDrawnFont",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetDrawnFont. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxFont_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_SetDrawnFont. Expected _wxFont_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetDrawnFont(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetDrawnPen(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetDrawnPen(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_SetDrawnPen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxPen * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","pen","isOutline", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDrawnShape_SetDrawnPen",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetDrawnPen. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPen_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_SetDrawnPen. Expected _wxPen_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetDrawnPen(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetDrawnTextColour(_swigobj,_swigarg0)  (_swigobj->SetDrawnTextColour(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_SetDrawnTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxColour * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_SetDrawnTextColour",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetDrawnTextColour. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxColour_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_SetDrawnTextColour. Expected _wxColour_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetDrawnTextColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_Scale(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Scale(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_Scale(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","sx","sy", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDrawnShape_Scale",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_Scale. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_Scale(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_SetSaveToFile(_swigobj,_swigarg0)  (_swigobj->SetSaveToFile(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_SetSaveToFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","save", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyDrawnShape_SetSaveToFile",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_SetSaveToFile. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_SetSaveToFile(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_Translate(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Translate(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_Translate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDrawnShape_Translate",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_Translate. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_Translate(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyDrawnShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDrawnShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDelete. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDraw. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDrawContents. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDrawnShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDrawBranches. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnMoveLinks. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnErase. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnEraseContents. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnHighlight. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnLeftClick. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnLeftDoubleClick. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnRightClick. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDrawnShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnSize. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDrawnShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyDrawnShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnMovePre. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyDrawnShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDrawnShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyDrawnShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnMovePost. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyDrawnShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDragLeft. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnBeginDragLeft. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnEndDragLeft. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyDrawnShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDragRight. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnBeginDragRight. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDrawnShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDrawnShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnEndDragRight. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyDrawnShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDrawOutline. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnDrawControlPoints. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyDrawnShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDrawnShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnEraseControlPoints. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDrawnShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnMoveLink. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDrawnShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyDrawnShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnSizingDragLeft. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDrawnShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyDrawnShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnSizingBeginDragLeft. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDrawnShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyDrawnShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnSizingEndDragLeft. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDrawnShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDrawnShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnBeginSize. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDrawnShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDrawnShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDrawnShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDrawnShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDrawnShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDrawnShape_base_OnEndSize. Expected _wxPyDrawnShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDrawnShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static wxOGLConstraint *new_wxOGLConstraint(int type,wxPyShape *constraining,PyObject *constrained) {
+            wxList* list = wxPy_wxListHelper(constrained, "wxPyShape");
+            wxOGLConstraint* rv = new wxOGLConstraint(type, constraining, *list);
+            delete list;
+            return rv;
+        }
+
+static PyObject *_wrap_new_wxOGLConstraint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxOGLConstraint * _result;
+    int  _arg0;
+    wxPyShape * _arg1;
+    PyObject * _arg2;
+    PyObject * _argo1 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "type","constraining","constrained", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"iOO:new_wxOGLConstraint",_kwnames,&_arg0,&_argo1,&_obj2)) 
+        return NULL;
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxOGLConstraint. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg2 = _obj2;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxOGLConstraint *)new_wxOGLConstraint(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxOGLConstraint_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define delete_wxOGLConstraint(_swigobj) (delete _swigobj)
+static PyObject *_wrap_delete_wxOGLConstraint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxOGLConstraint * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:delete_wxOGLConstraint",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxOGLConstraint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxOGLConstraint. Expected _wxOGLConstraint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxOGLConstraint(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxOGLConstraint_Evaluate(_swigobj)  (_swigobj->Evaluate())
+static PyObject *_wrap_wxOGLConstraint_Evaluate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxOGLConstraint * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxOGLConstraint_Evaluate",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxOGLConstraint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxOGLConstraint_Evaluate. Expected _wxOGLConstraint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxOGLConstraint_Evaluate(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxOGLConstraint_SetSpacing(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetSpacing(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxOGLConstraint_SetSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxOGLConstraint * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxOGLConstraint_SetSpacing",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxOGLConstraint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxOGLConstraint_SetSpacing. Expected _wxOGLConstraint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxOGLConstraint_SetSpacing(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxOGLConstraint_Equals(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Equals(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxOGLConstraint_Equals(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxOGLConstraint * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","a","b", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxOGLConstraint_Equals",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxOGLConstraint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxOGLConstraint_Equals. Expected _wxOGLConstraint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxOGLConstraint_Equals(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+static void *SwigwxPyCompositeShapeTowxPyRectangleShape(void *ptr) {
+    wxPyCompositeShape *src;
+    wxPyRectangleShape *dest;
+    src = (wxPyCompositeShape *) ptr;
+    dest = (wxPyRectangleShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyCompositeShapeTowxPyShape(void *ptr) {
+    wxPyCompositeShape *src;
+    wxPyShape *dest;
+    src = (wxPyCompositeShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyCompositeShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyCompositeShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyCompositeShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyCompositeShape() (new wxPyCompositeShape())
+static PyObject *_wrap_new_wxPyCompositeShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPyCompositeShape",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyCompositeShape *)new_wxPyCompositeShape();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyCompositeShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyCompositeShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape__setSelf. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_AddChild(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AddChild(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCompositeShape_AddChild(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxPyShape * _arg1;
+    wxPyShape * _arg2 = (wxPyShape *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","child","addAfter", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|O:wxPyCompositeShape_AddChild",_kwnames,&_argo0,&_argo1,&_argo2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_AddChild. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_AddChild. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyCompositeShape_AddChild. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_AddChild(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_AddConstraint(_swigobj,_swigarg0)  (_swigobj->AddConstraint(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_AddConstraint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxOGLConstraint * _result;
+    wxPyCompositeShape * _arg0;
+    wxOGLConstraint * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","constraint", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_AddConstraint",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_AddConstraint. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxOGLConstraint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_AddConstraint. Expected _wxOGLConstraint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxOGLConstraint *)wxPyCompositeShape_AddConstraint(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxOGLConstraint_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_AddSimpleConstraint(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->AddConstraint(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyCompositeShape_AddSimpleConstraint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxOGLConstraint * _result;
+    wxPyCompositeShape * _arg0;
+    int  _arg1;
+    wxPyShape * _arg2;
+    wxPyShape * _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo2 = 0;
+    PyObject * _argo3 = 0;
+    char *_kwnames[] = { "self","type","constraining","constrained", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOO:wxPyCompositeShape_AddSimpleConstraint",_kwnames,&_argo0,&_arg1,&_argo2,&_argo3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_AddSimpleConstraint. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyCompositeShape_AddSimpleConstraint. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo3) {
+        if (_argo3 == Py_None) { _arg3 = NULL; }
+        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPyCompositeShape_AddSimpleConstraint. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxOGLConstraint *)wxPyCompositeShape_AddSimpleConstraint(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxOGLConstraint_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_CalculateSize(_swigobj)  (_swigobj->CalculateSize())
+static PyObject *_wrap_wxPyCompositeShape_CalculateSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_CalculateSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_CalculateSize. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_CalculateSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_ContainsDivision(_swigobj,_swigarg0)  (_swigobj->ContainsDivision(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_ContainsDivision(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyCompositeShape * _arg0;
+    wxPyDivisionShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","division", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_ContainsDivision",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_ContainsDivision. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_ContainsDivision. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyCompositeShape_ContainsDivision(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_DeleteConstraint(_swigobj,_swigarg0)  (_swigobj->DeleteConstraint(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_DeleteConstraint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxOGLConstraint * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","constraint", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_DeleteConstraint",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_DeleteConstraint. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxOGLConstraint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_DeleteConstraint. Expected _wxOGLConstraint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_DeleteConstraint(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_DeleteConstraintsInvolvingChild(_swigobj,_swigarg0)  (_swigobj->DeleteConstraintsInvolvingChild(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_DeleteConstraintsInvolvingChild(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","child", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_DeleteConstraintsInvolvingChild",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_DeleteConstraintsInvolvingChild. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_DeleteConstraintsInvolvingChild. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_DeleteConstraintsInvolvingChild(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_FindContainerImage(_swigobj)  (_swigobj->FindContainerImage())
+static PyObject *_wrap_wxPyCompositeShape_FindContainerImage(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_FindContainerImage",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_FindContainerImage. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyCompositeShape_FindContainerImage(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+static PyObject * wxPyCompositeShape_GetConstraints(wxPyCompositeShape *self) {
+            wxList& list = self->GetConstraints();
+            return wxPy_ConvertList(&list, "wxOGLConstraint");
+        }
+static PyObject *_wrap_wxPyCompositeShape_GetConstraints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_GetConstraints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_GetConstraints. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyCompositeShape_GetConstraints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+static PyObject * wxPyCompositeShape_GetDivisions(wxPyCompositeShape *self) {
+            wxList& list = self->GetDivisions();
+            return wxPy_ConvertList(&list, "wxPyDivisionShape");
+        }
+static PyObject *_wrap_wxPyCompositeShape_GetDivisions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_GetDivisions",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_GetDivisions. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyCompositeShape_GetDivisions(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_MakeContainer(_swigobj)  (_swigobj->MakeContainer())
+static PyObject *_wrap_wxPyCompositeShape_MakeContainer(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_MakeContainer",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_MakeContainer. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_MakeContainer(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_Recompute(_swigobj)  (_swigobj->Recompute())
+static PyObject *_wrap_wxPyCompositeShape_Recompute(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_Recompute",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_Recompute. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyCompositeShape_Recompute(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_RemoveChild(_swigobj,_swigarg0)  (_swigobj->RemoveChild(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_RemoveChild(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","child", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_RemoveChild",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_RemoveChild. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_RemoveChild. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_RemoveChild(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyCompositeShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyCompositeShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDelete. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDraw. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDrawContents. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyCompositeShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDrawBranches. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnMoveLinks. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnErase. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnEraseContents. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnHighlight. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnLeftClick. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnLeftDoubleClick. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnRightClick. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCompositeShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyCompositeShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnSize. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyCompositeShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyCompositeShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnMovePre. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyCompositeShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyCompositeShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyCompositeShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnMovePost. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyCompositeShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDragLeft. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnBeginDragLeft. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnEndDragLeft. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyCompositeShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDragRight. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnBeginDragRight. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCompositeShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCompositeShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnEndDragRight. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyCompositeShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDrawOutline. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnDrawControlPoints. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyCompositeShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCompositeShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnEraseControlPoints. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCompositeShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyCompositeShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnMoveLink. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyCompositeShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyCompositeShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnSizingDragLeft. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCompositeShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyCompositeShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnSizingBeginDragLeft. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCompositeShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyCompositeShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnSizingEndDragLeft. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCompositeShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCompositeShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyCompositeShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnBeginSize. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCompositeShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCompositeShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCompositeShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyCompositeShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCompositeShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCompositeShape_base_OnEndSize. Expected _wxPyCompositeShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCompositeShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyDividedShapeTowxPyRectangleShape(void *ptr) {
+    wxPyDividedShape *src;
+    wxPyRectangleShape *dest;
+    src = (wxPyDividedShape *) ptr;
+    dest = (wxPyRectangleShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDividedShapeTowxPyShape(void *ptr) {
+    wxPyDividedShape *src;
+    wxPyShape *dest;
+    src = (wxPyDividedShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDividedShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyDividedShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyDividedShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyDividedShape(_swigarg0,_swigarg1) (new wxPyDividedShape(_swigarg0,_swigarg1))
+static PyObject *_wrap_new_wxPyDividedShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _result;
+    double  _arg0 = (double ) 0.0;
+    double  _arg1 = (double ) 0.0;
+    char *_kwnames[] = { "width","height", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|dd:new_wxPyDividedShape",_kwnames,&_arg0,&_arg1)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDividedShape *)new_wxPyDividedShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDividedShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDividedShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape__setSelf. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_EditRegions(_swigobj)  (_swigobj->EditRegions())
+static PyObject *_wrap_wxPyDividedShape_EditRegions(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDividedShape_EditRegions",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_EditRegions. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_EditRegions(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_SetRegionSizes(_swigobj)  (_swigobj->SetRegionSizes())
+static PyObject *_wrap_wxPyDividedShape_SetRegionSizes(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDividedShape_SetRegionSizes",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_SetRegionSizes. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_SetRegionSizes(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyDividedShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDividedShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDelete. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDraw. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDrawContents. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDividedShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDividedShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDrawBranches. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnMoveLinks. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnErase. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnEraseContents. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnHighlight. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnLeftClick. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnLeftDoubleClick. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnRightClick. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDividedShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDividedShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnSize. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDividedShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyDividedShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnMovePre. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyDividedShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDividedShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyDividedShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnMovePost. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDividedShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyDividedShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDragLeft. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnBeginDragLeft. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnEndDragLeft. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDividedShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyDividedShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDragRight. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnBeginDragRight. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDividedShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDividedShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnEndDragRight. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDividedShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyDividedShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDrawOutline. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnDrawControlPoints. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyDividedShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDividedShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnEraseControlPoints. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDividedShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDividedShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnMoveLink. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDividedShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyDividedShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnSizingDragLeft. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDividedShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyDividedShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnSizingBeginDragLeft. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDividedShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyDividedShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnSizingEndDragLeft. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDividedShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDividedShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDividedShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnBeginSize. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDividedShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDividedShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDividedShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDividedShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDividedShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDividedShape_base_OnEndSize. Expected _wxPyDividedShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDividedShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyDivisionShapeTowxPyCompositeShape(void *ptr) {
+    wxPyDivisionShape *src;
+    wxPyCompositeShape *dest;
+    src = (wxPyDivisionShape *) ptr;
+    dest = (wxPyCompositeShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDivisionShapeTowxPyRectangleShape(void *ptr) {
+    wxPyDivisionShape *src;
+    wxPyRectangleShape *dest;
+    src = (wxPyDivisionShape *) ptr;
+    dest = (wxPyRectangleShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDivisionShapeTowxPyShape(void *ptr) {
+    wxPyDivisionShape *src;
+    wxPyShape *dest;
+    src = (wxPyDivisionShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyDivisionShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyDivisionShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyDivisionShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyDivisionShape() (new wxPyDivisionShape())
+static PyObject *_wrap_new_wxPyDivisionShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPyDivisionShape",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDivisionShape *)new_wxPyDivisionShape();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDivisionShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape__setSelf. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_AdjustBottom(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AdjustBottom(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_AdjustBottom(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    bool  _arg2;
+    PyObject * _argo0 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","bottom","test", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odi:wxPyDivisionShape_AdjustBottom",_kwnames,&_argo0,&_arg1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_AdjustBottom. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_AdjustBottom(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_AdjustLeft(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AdjustLeft(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_AdjustLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    bool  _arg2;
+    PyObject * _argo0 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","left","test", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odi:wxPyDivisionShape_AdjustLeft",_kwnames,&_argo0,&_arg1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_AdjustLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_AdjustLeft(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_AdjustRight(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AdjustRight(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_AdjustRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    bool  _arg2;
+    PyObject * _argo0 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","right","test", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odi:wxPyDivisionShape_AdjustRight",_kwnames,&_argo0,&_arg1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_AdjustRight. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_AdjustRight(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_AdjustTop(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AdjustTop(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_AdjustTop(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    bool  _arg2;
+    PyObject * _argo0 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","top","test", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odi:wxPyDivisionShape_AdjustTop",_kwnames,&_argo0,&_arg1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_AdjustTop. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_AdjustTop(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_Divide(_swigobj,_swigarg0)  (_swigobj->Divide(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_Divide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","direction", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyDivisionShape_Divide",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_Divide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_Divide(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_EditEdge(_swigobj,_swigarg0)  (_swigobj->EditEdge(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_EditEdge(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","side", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyDivisionShape_EditEdge",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_EditEdge. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_EditEdge(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetBottomSide(_swigobj)  (_swigobj->GetBottomSide())
+static PyObject *_wrap_wxPyDivisionShape_GetBottomSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetBottomSide",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetBottomSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDivisionShape *)wxPyDivisionShape_GetBottomSide(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDivisionShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetHandleSide(_swigobj)  (_swigobj->GetHandleSide())
+static PyObject *_wrap_wxPyDivisionShape_GetHandleSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetHandleSide",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetHandleSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyDivisionShape_GetHandleSide(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetLeftSide(_swigobj)  (_swigobj->GetLeftSide())
+static PyObject *_wrap_wxPyDivisionShape_GetLeftSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetLeftSide",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetLeftSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDivisionShape *)wxPyDivisionShape_GetLeftSide(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDivisionShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetLeftSideColour(_swigobj)  (_swigobj->GetLeftSideColour())
+static PyObject *_wrap_wxPyDivisionShape_GetLeftSideColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetLeftSideColour",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetLeftSideColour. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxPyDivisionShape_GetLeftSideColour(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetLeftSidePen(_swigobj)  (_swigobj->GetLeftSidePen())
+static PyObject *_wrap_wxPyDivisionShape_GetLeftSidePen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPen * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetLeftSidePen",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetLeftSidePen. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPen *)wxPyDivisionShape_GetLeftSidePen(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetRightSide(_swigobj)  (_swigobj->GetRightSide())
+static PyObject *_wrap_wxPyDivisionShape_GetRightSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetRightSide",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetRightSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDivisionShape *)wxPyDivisionShape_GetRightSide(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDivisionShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetTopSide(_swigobj)  (_swigobj->GetTopSide())
+static PyObject *_wrap_wxPyDivisionShape_GetTopSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetTopSide",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetTopSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyDivisionShape *)wxPyDivisionShape_GetTopSide(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyDivisionShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_GetTopSidePen(_swigobj)  (_swigobj->GetTopSidePen())
+static PyObject *_wrap_wxPyDivisionShape_GetTopSidePen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPen * _result;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_GetTopSidePen",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_GetTopSidePen. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPen *)wxPyDivisionShape_GetTopSidePen(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_ResizeAdjoining(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->ResizeAdjoining(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyDivisionShape_ResizeAdjoining(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    int  _arg1;
+    double  _arg2;
+    bool  _arg3;
+    PyObject * _argo0 = 0;
+    int tempbool3;
+    char *_kwnames[] = { "self","side","newPos","test", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidi:wxPyDivisionShape_ResizeAdjoining",_kwnames,&_argo0,&_arg1,&_arg2,&tempbool3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_ResizeAdjoining. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg3 = (bool ) tempbool3;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_ResizeAdjoining(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_PopupMenu(_swigobj,_swigarg0,_swigarg1)  (_swigobj->PopupMenu(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_PopupMenu(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDivisionShape_PopupMenu",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_PopupMenu. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_PopupMenu(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetBottomSide(_swigobj,_swigarg0)  (_swigobj->SetBottomSide(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetBottomSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxPyDivisionShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetBottomSide",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetBottomSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_SetBottomSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetBottomSide(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetHandleSide(_swigobj,_swigarg0)  (_swigobj->SetHandleSide(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetHandleSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","side", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyDivisionShape_SetHandleSide",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetHandleSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetHandleSide(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetLeftSide(_swigobj,_swigarg0)  (_swigobj->SetLeftSide(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetLeftSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxPyDivisionShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetLeftSide",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetLeftSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_SetLeftSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetLeftSide(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetLeftSideColour(_swigobj,_swigarg0)  (_swigobj->SetLeftSideColour(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetLeftSideColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetLeftSideColour",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetLeftSideColour. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetLeftSideColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetLeftSidePen(_swigobj,_swigarg0)  (_swigobj->SetLeftSidePen(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetLeftSidePen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxPen * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pen", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetLeftSidePen",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetLeftSidePen. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPen_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_SetLeftSidePen. Expected _wxPen_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetLeftSidePen(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetRightSide(_swigobj,_swigarg0)  (_swigobj->SetRightSide(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetRightSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxPyDivisionShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetRightSide",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetRightSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_SetRightSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetRightSide(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetTopSide(_swigobj,_swigarg0)  (_swigobj->SetTopSide(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetTopSide(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxPyDivisionShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetTopSide",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetTopSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_SetTopSide. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetTopSide(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetTopSideColour(_swigobj,_swigarg0)  (_swigobj->SetTopSideColour(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetTopSideColour(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetTopSideColour",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetTopSideColour. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetTopSideColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_SetTopSidePen(_swigobj,_swigarg0)  (_swigobj->SetTopSidePen(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_SetTopSidePen(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxPen * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pen", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_SetTopSidePen",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_SetTopSidePen. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPen_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_SetTopSidePen. Expected _wxPen_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_SetTopSidePen(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyDivisionShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyDivisionShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDelete. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDraw. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDrawContents. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDivisionShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDrawBranches. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnMoveLinks. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnErase. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnEraseContents. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnHighlight. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnLeftClick. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnLeftDoubleClick. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnRightClick. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDivisionShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnSize. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDivisionShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyDivisionShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnMovePre. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyDivisionShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDivisionShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyDivisionShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnMovePost. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyDivisionShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDragLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnBeginDragLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnEndDragLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyDivisionShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDragRight. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnBeginDragRight. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyDivisionShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyDivisionShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnEndDragRight. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyDivisionShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDrawOutline. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnDrawControlPoints. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyDivisionShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyDivisionShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnEraseControlPoints. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyDivisionShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnMoveLink. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyDivisionShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyDivisionShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnSizingDragLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDivisionShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyDivisionShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnSizingBeginDragLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyDivisionShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyDivisionShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnSizingEndDragLeft. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyDivisionShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDivisionShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnBeginSize. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyDivisionShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyDivisionShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyDivisionShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyDivisionShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyDivisionShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyDivisionShape_base_OnEndSize. Expected _wxPyDivisionShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyDivisionShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyMethodDef oglshapescMethods[] = {
+	 { "wxPyDivisionShape_base_OnEndSize", (PyCFunction) _wrap_wxPyDivisionShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyDivisionShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyDivisionShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyDivisionShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyDivisionShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyDivisionShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyDivisionShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyDivisionShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyDivisionShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDragRight", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyDivisionShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyDivisionShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnMovePost", (PyCFunction) _wrap_wxPyDivisionShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnMovePre", (PyCFunction) _wrap_wxPyDivisionShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnSize", (PyCFunction) _wrap_wxPyDivisionShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnRightClick", (PyCFunction) _wrap_wxPyDivisionShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyDivisionShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyDivisionShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnHighlight", (PyCFunction) _wrap_wxPyDivisionShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyDivisionShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnErase", (PyCFunction) _wrap_wxPyDivisionShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyDivisionShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDraw", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_base_OnDelete", (PyCFunction) _wrap_wxPyDivisionShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetTopSidePen", (PyCFunction) _wrap_wxPyDivisionShape_SetTopSidePen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetTopSideColour", (PyCFunction) _wrap_wxPyDivisionShape_SetTopSideColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetTopSide", (PyCFunction) _wrap_wxPyDivisionShape_SetTopSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetRightSide", (PyCFunction) _wrap_wxPyDivisionShape_SetRightSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetLeftSidePen", (PyCFunction) _wrap_wxPyDivisionShape_SetLeftSidePen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetLeftSideColour", (PyCFunction) _wrap_wxPyDivisionShape_SetLeftSideColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetLeftSide", (PyCFunction) _wrap_wxPyDivisionShape_SetLeftSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetHandleSide", (PyCFunction) _wrap_wxPyDivisionShape_SetHandleSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_SetBottomSide", (PyCFunction) _wrap_wxPyDivisionShape_SetBottomSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_PopupMenu", (PyCFunction) _wrap_wxPyDivisionShape_PopupMenu, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_ResizeAdjoining", (PyCFunction) _wrap_wxPyDivisionShape_ResizeAdjoining, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetTopSidePen", (PyCFunction) _wrap_wxPyDivisionShape_GetTopSidePen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetTopSide", (PyCFunction) _wrap_wxPyDivisionShape_GetTopSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetRightSide", (PyCFunction) _wrap_wxPyDivisionShape_GetRightSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetLeftSidePen", (PyCFunction) _wrap_wxPyDivisionShape_GetLeftSidePen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetLeftSideColour", (PyCFunction) _wrap_wxPyDivisionShape_GetLeftSideColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetLeftSide", (PyCFunction) _wrap_wxPyDivisionShape_GetLeftSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetHandleSide", (PyCFunction) _wrap_wxPyDivisionShape_GetHandleSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_GetBottomSide", (PyCFunction) _wrap_wxPyDivisionShape_GetBottomSide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_EditEdge", (PyCFunction) _wrap_wxPyDivisionShape_EditEdge, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_Divide", (PyCFunction) _wrap_wxPyDivisionShape_Divide, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_AdjustTop", (PyCFunction) _wrap_wxPyDivisionShape_AdjustTop, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_AdjustRight", (PyCFunction) _wrap_wxPyDivisionShape_AdjustRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_AdjustLeft", (PyCFunction) _wrap_wxPyDivisionShape_AdjustLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape_AdjustBottom", (PyCFunction) _wrap_wxPyDivisionShape_AdjustBottom, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDivisionShape__setSelf", (PyCFunction) _wrap_wxPyDivisionShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyDivisionShape", (PyCFunction) _wrap_new_wxPyDivisionShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnEndSize", (PyCFunction) _wrap_wxPyDividedShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyDividedShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyDividedShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyDividedShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyDividedShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyDividedShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyDividedShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyDividedShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyDividedShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyDividedShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyDividedShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDragRight", (PyCFunction) _wrap_wxPyDividedShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyDividedShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyDividedShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyDividedShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnMovePost", (PyCFunction) _wrap_wxPyDividedShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnMovePre", (PyCFunction) _wrap_wxPyDividedShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnSize", (PyCFunction) _wrap_wxPyDividedShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnRightClick", (PyCFunction) _wrap_wxPyDividedShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyDividedShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyDividedShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnHighlight", (PyCFunction) _wrap_wxPyDividedShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyDividedShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnErase", (PyCFunction) _wrap_wxPyDividedShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyDividedShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyDividedShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyDividedShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDraw", (PyCFunction) _wrap_wxPyDividedShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_base_OnDelete", (PyCFunction) _wrap_wxPyDividedShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_SetRegionSizes", (PyCFunction) _wrap_wxPyDividedShape_SetRegionSizes, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape_EditRegions", (PyCFunction) _wrap_wxPyDividedShape_EditRegions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDividedShape__setSelf", (PyCFunction) _wrap_wxPyDividedShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyDividedShape", (PyCFunction) _wrap_new_wxPyDividedShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnEndSize", (PyCFunction) _wrap_wxPyCompositeShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyCompositeShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyCompositeShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyCompositeShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyCompositeShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyCompositeShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyCompositeShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyCompositeShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyCompositeShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDragRight", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyCompositeShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyCompositeShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnMovePost", (PyCFunction) _wrap_wxPyCompositeShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnMovePre", (PyCFunction) _wrap_wxPyCompositeShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnSize", (PyCFunction) _wrap_wxPyCompositeShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnRightClick", (PyCFunction) _wrap_wxPyCompositeShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyCompositeShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyCompositeShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnHighlight", (PyCFunction) _wrap_wxPyCompositeShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyCompositeShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnErase", (PyCFunction) _wrap_wxPyCompositeShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyCompositeShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDraw", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_base_OnDelete", (PyCFunction) _wrap_wxPyCompositeShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_RemoveChild", (PyCFunction) _wrap_wxPyCompositeShape_RemoveChild, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_Recompute", (PyCFunction) _wrap_wxPyCompositeShape_Recompute, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_MakeContainer", (PyCFunction) _wrap_wxPyCompositeShape_MakeContainer, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_GetDivisions", (PyCFunction) _wrap_wxPyCompositeShape_GetDivisions, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_GetConstraints", (PyCFunction) _wrap_wxPyCompositeShape_GetConstraints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_FindContainerImage", (PyCFunction) _wrap_wxPyCompositeShape_FindContainerImage, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_DeleteConstraintsInvolvingChild", (PyCFunction) _wrap_wxPyCompositeShape_DeleteConstraintsInvolvingChild, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_DeleteConstraint", (PyCFunction) _wrap_wxPyCompositeShape_DeleteConstraint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_ContainsDivision", (PyCFunction) _wrap_wxPyCompositeShape_ContainsDivision, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_CalculateSize", (PyCFunction) _wrap_wxPyCompositeShape_CalculateSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_AddSimpleConstraint", (PyCFunction) _wrap_wxPyCompositeShape_AddSimpleConstraint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_AddConstraint", (PyCFunction) _wrap_wxPyCompositeShape_AddConstraint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape_AddChild", (PyCFunction) _wrap_wxPyCompositeShape_AddChild, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCompositeShape__setSelf", (PyCFunction) _wrap_wxPyCompositeShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyCompositeShape", (PyCFunction) _wrap_new_wxPyCompositeShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxOGLConstraint_Equals", (PyCFunction) _wrap_wxOGLConstraint_Equals, METH_VARARGS | METH_KEYWORDS },
+	 { "wxOGLConstraint_SetSpacing", (PyCFunction) _wrap_wxOGLConstraint_SetSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxOGLConstraint_Evaluate", (PyCFunction) _wrap_wxOGLConstraint_Evaluate, METH_VARARGS | METH_KEYWORDS },
+	 { "delete_wxOGLConstraint", (PyCFunction) _wrap_delete_wxOGLConstraint, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxOGLConstraint", (PyCFunction) _wrap_new_wxOGLConstraint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnEndSize", (PyCFunction) _wrap_wxPyDrawnShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyDrawnShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyDrawnShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyDrawnShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyDrawnShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyDrawnShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyDrawnShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyDrawnShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyDrawnShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDragRight", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyDrawnShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyDrawnShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnMovePost", (PyCFunction) _wrap_wxPyDrawnShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnMovePre", (PyCFunction) _wrap_wxPyDrawnShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnSize", (PyCFunction) _wrap_wxPyDrawnShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnRightClick", (PyCFunction) _wrap_wxPyDrawnShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyDrawnShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyDrawnShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnHighlight", (PyCFunction) _wrap_wxPyDrawnShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyDrawnShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnErase", (PyCFunction) _wrap_wxPyDrawnShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyDrawnShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDraw", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_base_OnDelete", (PyCFunction) _wrap_wxPyDrawnShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_Translate", (PyCFunction) _wrap_wxPyDrawnShape_Translate, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetSaveToFile", (PyCFunction) _wrap_wxPyDrawnShape_SetSaveToFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_Scale", (PyCFunction) _wrap_wxPyDrawnShape_Scale, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetDrawnTextColour", (PyCFunction) _wrap_wxPyDrawnShape_SetDrawnTextColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetDrawnPen", (PyCFunction) _wrap_wxPyDrawnShape_SetDrawnPen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetDrawnFont", (PyCFunction) _wrap_wxPyDrawnShape_SetDrawnFont, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetDrawnBrush", (PyCFunction) _wrap_wxPyDrawnShape_SetDrawnBrush, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetDrawnBackgroundMode", (PyCFunction) _wrap_wxPyDrawnShape_SetDrawnBackgroundMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetDrawnBackgroundColour", (PyCFunction) _wrap_wxPyDrawnShape_SetDrawnBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_SetClippingRect", (PyCFunction) _wrap_wxPyDrawnShape_SetClippingRect, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_Rotate", (PyCFunction) _wrap_wxPyDrawnShape_Rotate, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_LoadFromMetaFile", (PyCFunction) _wrap_wxPyDrawnShape_LoadFromMetaFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_GetRotation", (PyCFunction) _wrap_wxPyDrawnShape_GetRotation, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_GetMetaFile", (PyCFunction) _wrap_wxPyDrawnShape_GetMetaFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_GetAngle", (PyCFunction) _wrap_wxPyDrawnShape_GetAngle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawText", (PyCFunction) _wrap_wxPyDrawnShape_DrawText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawSpline", (PyCFunction) _wrap_wxPyDrawnShape_DrawSpline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawRoundedRectangle", (PyCFunction) _wrap_wxPyDrawnShape_DrawRoundedRectangle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawRectangle", (PyCFunction) _wrap_wxPyDrawnShape_DrawRectangle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawPolygon", (PyCFunction) _wrap_wxPyDrawnShape_DrawPolygon, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawPoint", (PyCFunction) _wrap_wxPyDrawnShape_DrawPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawLines", (PyCFunction) _wrap_wxPyDrawnShape_DrawLines, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawLine", (PyCFunction) _wrap_wxPyDrawnShape_DrawLine, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawEllipticArc", (PyCFunction) _wrap_wxPyDrawnShape_DrawEllipticArc, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawAtAngle", (PyCFunction) _wrap_wxPyDrawnShape_DrawAtAngle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DrawArc", (PyCFunction) _wrap_wxPyDrawnShape_DrawArc, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_DestroyClippingRect", (PyCFunction) _wrap_wxPyDrawnShape_DestroyClippingRect, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape_CalculateSize", (PyCFunction) _wrap_wxPyDrawnShape_CalculateSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyDrawnShape__setSelf", (PyCFunction) _wrap_wxPyDrawnShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyDrawnShape", (PyCFunction) _wrap_new_wxPyDrawnShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnEndSize", (PyCFunction) _wrap_wxPyBitmapShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyBitmapShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyBitmapShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyBitmapShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyBitmapShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyBitmapShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyBitmapShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyBitmapShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyBitmapShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDragRight", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyBitmapShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyBitmapShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnMovePost", (PyCFunction) _wrap_wxPyBitmapShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnMovePre", (PyCFunction) _wrap_wxPyBitmapShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnSize", (PyCFunction) _wrap_wxPyBitmapShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnRightClick", (PyCFunction) _wrap_wxPyBitmapShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyBitmapShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyBitmapShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnHighlight", (PyCFunction) _wrap_wxPyBitmapShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyBitmapShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnErase", (PyCFunction) _wrap_wxPyBitmapShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyBitmapShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDraw", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_base_OnDelete", (PyCFunction) _wrap_wxPyBitmapShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_SetFilename", (PyCFunction) _wrap_wxPyBitmapShape_SetFilename, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_SetBitmap", (PyCFunction) _wrap_wxPyBitmapShape_SetBitmap, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_GetFilename", (PyCFunction) _wrap_wxPyBitmapShape_GetFilename, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape_GetBitmap", (PyCFunction) _wrap_wxPyBitmapShape_GetBitmap, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyBitmapShape__setSelf", (PyCFunction) _wrap_wxPyBitmapShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyBitmapShape", (PyCFunction) _wrap_new_wxPyBitmapShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnEndSize", (PyCFunction) _wrap_wxPyRectangleShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyRectangleShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyRectangleShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyRectangleShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyRectangleShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyRectangleShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyRectangleShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyRectangleShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyRectangleShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDragRight", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyRectangleShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyRectangleShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnMovePost", (PyCFunction) _wrap_wxPyRectangleShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnMovePre", (PyCFunction) _wrap_wxPyRectangleShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnSize", (PyCFunction) _wrap_wxPyRectangleShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnRightClick", (PyCFunction) _wrap_wxPyRectangleShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyRectangleShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyRectangleShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnHighlight", (PyCFunction) _wrap_wxPyRectangleShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyRectangleShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnErase", (PyCFunction) _wrap_wxPyRectangleShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyRectangleShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDraw", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_base_OnDelete", (PyCFunction) _wrap_wxPyRectangleShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape_SetCornerRadius", (PyCFunction) _wrap_wxPyRectangleShape_SetCornerRadius, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyRectangleShape__setSelf", (PyCFunction) _wrap_wxPyRectangleShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyRectangleShape", (PyCFunction) _wrap_new_wxPyRectangleShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetBackgroundMode", (PyCFunction) _wrap_wxPseudoMetaFile_SetBackgroundMode, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetBackgroundColour", (PyCFunction) _wrap_wxPseudoMetaFile_SetBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetTextColour", (PyCFunction) _wrap_wxPseudoMetaFile_SetTextColour, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetFont", (PyCFunction) _wrap_wxPseudoMetaFile_SetFont, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetBrush", (PyCFunction) _wrap_wxPseudoMetaFile_SetBrush, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetPen", (PyCFunction) _wrap_wxPseudoMetaFile_SetPen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DestroyClippingRect", (PyCFunction) _wrap_wxPseudoMetaFile_DestroyClippingRect, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetClippingRect", (PyCFunction) _wrap_wxPseudoMetaFile_SetClippingRect, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawSpline", (PyCFunction) _wrap_wxPseudoMetaFile_DrawSpline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawPolygon", (PyCFunction) _wrap_wxPseudoMetaFile_DrawPolygon, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawLines", (PyCFunction) _wrap_wxPseudoMetaFile_DrawLines, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawText", (PyCFunction) _wrap_wxPseudoMetaFile_DrawText, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawPoint", (PyCFunction) _wrap_wxPseudoMetaFile_DrawPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawEllipse", (PyCFunction) _wrap_wxPseudoMetaFile_DrawEllipse, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawEllipticArc", (PyCFunction) _wrap_wxPseudoMetaFile_DrawEllipticArc, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawArc", (PyCFunction) _wrap_wxPseudoMetaFile_DrawArc, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawRoundedRectangle", (PyCFunction) _wrap_wxPseudoMetaFile_DrawRoundedRectangle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawRectangle", (PyCFunction) _wrap_wxPseudoMetaFile_DrawRectangle, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_DrawLine", (PyCFunction) _wrap_wxPseudoMetaFile_DrawLine, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_IsValid", (PyCFunction) _wrap_wxPseudoMetaFile_IsValid, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_GetOutlineOp", (PyCFunction) _wrap_wxPseudoMetaFile_GetOutlineOp, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetOutlineOp", (PyCFunction) _wrap_wxPseudoMetaFile_SetOutlineOp, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_GetOutlinePen", (PyCFunction) _wrap_wxPseudoMetaFile_GetOutlinePen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetOutlinePen", (PyCFunction) _wrap_wxPseudoMetaFile_SetOutlinePen, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_GetFillBrush", (PyCFunction) _wrap_wxPseudoMetaFile_GetFillBrush, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetFillBrush", (PyCFunction) _wrap_wxPseudoMetaFile_SetFillBrush, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetSize", (PyCFunction) _wrap_wxPseudoMetaFile_SetSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_GetRotateable", (PyCFunction) _wrap_wxPseudoMetaFile_GetRotateable, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_SetRotateable", (PyCFunction) _wrap_wxPseudoMetaFile_SetRotateable, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_CalculateSize", (PyCFunction) _wrap_wxPseudoMetaFile_CalculateSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_GetBounds", (PyCFunction) _wrap_wxPseudoMetaFile_GetBounds, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_LoadFromMetaFile", (PyCFunction) _wrap_wxPseudoMetaFile_LoadFromMetaFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_Rotate", (PyCFunction) _wrap_wxPseudoMetaFile_Rotate, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_Translate", (PyCFunction) _wrap_wxPseudoMetaFile_Translate, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_ScaleTo", (PyCFunction) _wrap_wxPseudoMetaFile_ScaleTo, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_Scale", (PyCFunction) _wrap_wxPseudoMetaFile_Scale, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_Copy", (PyCFunction) _wrap_wxPseudoMetaFile_Copy, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_Clear", (PyCFunction) _wrap_wxPseudoMetaFile_Clear, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_ReadAttributes", (PyCFunction) _wrap_wxPseudoMetaFile_ReadAttributes, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_WriteAttributes", (PyCFunction) _wrap_wxPseudoMetaFile_WriteAttributes, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPseudoMetaFile_Draw", (PyCFunction) _wrap_wxPseudoMetaFile_Draw, METH_VARARGS | METH_KEYWORDS },
+	 { "delete_wxPseudoMetaFile", (PyCFunction) _wrap_delete_wxPseudoMetaFile, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPseudoMetaFile", (PyCFunction) _wrap_new_wxPseudoMetaFile, METH_VARARGS | METH_KEYWORDS },
+	 { NULL, NULL }
+};
+#ifdef __cplusplus
+}
+#endif
+/*
+ * This table is used by the pointer type-checker
+ */
+static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
+    { "_wxAcceleratorTable","_class_wxAcceleratorTable",0},
+    { "_wxEvent","_class_wxEvent",0},
+    { "_class_wxActivateEvent","_wxActivateEvent",0},
+    { "_signed_long","_long",0},
+    { "_wxMenuEvent","_class_wxMenuEvent",0},
+    { "_class_wxJPEGHandler","_wxJPEGHandler",0},
+    { "_wxBMPHandler","_class_wxBMPHandler",0},
+    { "_wxImage","_class_wxImage",0},
+    { "_wxPrintQuality","_int",0},
+    { "_wxPrintQuality","_signed_int",0},
+    { "_wxPrintQuality","_unsigned_int",0},
+    { "_wxPrintQuality","_wxWindowID",0},
+    { "_wxPrintQuality","_uint",0},
+    { "_wxPrintQuality","_EBool",0},
+    { "_wxPrintQuality","_size_t",0},
+    { "_wxFontData","_class_wxFontData",0},
+    { "___wxPyCleanup","_class___wxPyCleanup",0},
+    { "_class_wxRegionIterator","_wxRegionIterator",0},
+    { "_class_wxMenuBar","_wxMenuBar",0},
+    { "_class_wxPyTreeItemData","_wxPyTreeItemData",0},
+    { "_class_wxEvtHandler","_wxEvtHandler",0},
+    { "_wxPaintEvent","_class_wxPaintEvent",0},
+    { "_wxGIFHandler","_class_wxGIFHandler",0},
+    { "_wxPyCompositeShape","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyCompositeShape},
+    { "_wxPyCompositeShape","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyCompositeShape},
+    { "_wxPyCompositeShape","_class_wxPyCompositeShape",0},
+    { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
+    { "_wxCursor","_class_wxCursor",0},
+    { "_wxNotifyEvent","_class_wxNotifyEvent",0},
+    { "_wxImageHandler","_class_wxImageHandler",0},
+    { "_class_wxPyRectangleShape","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_class_wxPyDividedShape",SwigwxPyDividedShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyDividedShape",SwigwxPyDividedShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_class_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_class_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_class_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyRectangleShape",0},
+    { "_class_wxTreeCtrl","_wxTreeCtrl",0},
+    { "_wxMask","_class_wxMask",0},
+    { "_wxToolTip","_class_wxToolTip",0},
+    { "_wxGrid","_class_wxGrid",0},
+    { "_wxPNGHandler","_class_wxPNGHandler",0},
+    { "_class_wxOGLConstraint","_wxOGLConstraint",0},
+    { "_class_wxColourData","_wxColourData",0},
+    { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0},
+    { "_wxPrinter","_class_wxPrinter",0},
+    { "_wxPseudoMetaFile","_class_wxPseudoMetaFile",0},
+    { "_wxPen","_class_wxPen",0},
+    { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0},
+    { "_byte","_unsigned_char",0},
+    { "_wxStaticBox","_class_wxStaticBox",0},
+    { "_wxChoice","_class_wxChoice",0},
+    { "_wxSlider","_class_wxSlider",0},
+    { "_wxNotebookEvent","_class_wxNotebookEvent",0},
+    { "_wxPyPrintout","_class_wxPyPrintout",0},
+    { "_wxShapeRegion","_class_wxShapeRegion",0},
+    { "_long","_wxDash",0},
+    { "_long","_unsigned_long",0},
+    { "_long","_signed_long",0},
+    { "_wxImageList","_class_wxImageList",0},
+    { "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
+    { "_wxBitmapButton","_class_wxBitmapButton",0},
+    { "_wxSashWindow","_class_wxSashWindow",0},
+    { "_class_wxPrintDialogData","_wxPrintDialogData",0},
+    { "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
+    { "_class_wxGauge","_wxGauge",0},
+    { "_class_wxSashEvent","_wxSashEvent",0},
+    { "_wxDC","_class_wxDC",0},
+    { "_wxListEvent","_class_wxListEvent",0},
+    { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0},
+    { "_wxProgressDialog","_class_wxProgressDialog",0},
+    { "_class_wxBMPHandler","_wxBMPHandler",0},
+    { "_wxPrintPreview","_class_wxPrintPreview",0},
+    { "_wxSpinEvent","_class_wxSpinEvent",0},
+    { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0},
+    { "_wxPyBitmapShape","_class_wxPyBitmapShape",0},
+    { "_size_t","_wxPrintQuality",0},
+    { "_size_t","_unsigned_int",0},
+    { "_size_t","_int",0},
+    { "_size_t","_wxWindowID",0},
+    { "_size_t","_uint",0},
+    { "_class_wxRealPoint","_wxRealPoint",0},
+    { "_wxPrinterDC","_class_wxPrinterDC",0},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyShapeEvtHandler",0},
+    { "_class_wxMenuItem","_wxMenuItem",0},
+    { "_class_wxPaintEvent","_wxPaintEvent",0},
+    { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
+    { "_class_wxStatusBar","_wxStatusBar",0},
+    { "_class_wxGIFHandler","_wxGIFHandler",0},
+    { "_class_wxPyCompositeShape","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyCompositeShape},
+    { "_class_wxPyCompositeShape","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyCompositeShape},
+    { "_class_wxPyCompositeShape","_wxPyCompositeShape",0},
+    { "_wxPanel","_class_wxPanel",0},
+    { "_wxInitDialogEvent","_class_wxInitDialogEvent",0},
+    { "_wxCheckBox","_class_wxCheckBox",0},
+    { "_wxPyEvent","_class_wxPyEvent",0},
+    { "_wxTextCtrl","_class_wxTextCtrl",0},
+    { "_class_wxMask","_wxMask",0},
+    { "_class_wxToolTip","_wxToolTip",0},
+    { "_class_wxKeyEvent","_wxKeyEvent",0},
+    { "_class_wxGrid","_wxGrid",0},
+    { "_class_wxPNGHandler","_wxPNGHandler",0},
+    { "_wxColour","_class_wxColour",0},
+    { "_class_wxDialog","_wxDialog",0},
+    { "_wxPageSetupDialog","_class_wxPageSetupDialog",0},
+    { "_class_wxPrinter","_wxPrinter",0},
+    { "_wxIdleEvent","_class_wxIdleEvent",0},
+    { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
+    { "_wxToolBar","_class_wxToolBar",0},
+    { "_wxStaticLine","_class_wxStaticLine",0},
+    { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0},
+    { "_wxBrush","_class_wxBrush",0},
+    { "_wxMiniFrame","_class_wxMiniFrame",0},
+    { "_class_wxNotebookEvent","_wxNotebookEvent",0},
+    { "_class_wxPyPrintout","_wxPyPrintout",0},
+    { "_class_wxSashWindow","_wxSashWindow",0},
+    { "_wxShowEvent","_class_wxShowEvent",0},
+    { "_class_wxPyDivisionShape","_wxPyDivisionShape",0},
+    { "_uint","_wxPrintQuality",0},
+    { "_uint","_size_t",0},
+    { "_uint","_unsigned_int",0},
+    { "_uint","_int",0},
+    { "_uint","_wxWindowID",0},
+    { "_class_wxEvent","_wxEvent",0},
+    { "_wxCheckListBox","_class_wxCheckListBox",0},
+    { "_wxSplitterEvent","_class_wxSplitterEvent",0},
+    { "_wxGridEvent","_class_wxGridEvent",0},
+    { "_wxRect","_class_wxRect",0},
+    { "_wxCommandEvent","_class_wxCommandEvent",0},
+    { "_wxSizeEvent","_class_wxSizeEvent",0},
+    { "_class_wxImage","_wxImage",0},
+    { "_wxPoint","_class_wxPoint",0},
+    { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0},
+    { "_class_wxPyBitmapShape","_wxPyBitmapShape",0},
+    { "_class_wxButton","_wxButton",0},
+    { "_wxRadioBox","_class_wxRadioBox",0},
+    { "_class_wxFontData","_wxFontData",0},
+    { "_class___wxPyCleanup","___wxPyCleanup",0},
+    { "_wxBitmap","_class_wxBitmap",0},
+    { "_wxTaskBarIcon","_class_wxTaskBarIcon",0},
+    { "_wxPrintDialog","_class_wxPrintDialog",0},
+    { "_wxPyTimer","_class_wxPyTimer",0},
+    { "_wxWindowDC","_class_wxWindowDC",0},
+    { "_wxScrollBar","_class_wxScrollBar",0},
+    { "_wxSpinButton","_class_wxSpinButton",0},
+    { "_wxToolBarTool","_class_wxToolBarTool",0},
+    { "_wxColourDialog","_class_wxColourDialog",0},
+    { "_wxPrintData","_class_wxPrintData",0},
+    { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
+    { "_class_wxNotifyEvent","_wxNotifyEvent",0},
+    { "_wxMessageDialog","_class_wxMessageDialog",0},
+    { "_class_wxPyEvent","_wxPyEvent",0},
+    { "_wxTextEntryDialog","_class_wxTextEntryDialog",0},
+    { "_class_wxIconizeEvent","_wxIconizeEvent",0},
+    { "_class_wxStaticBitmap","_wxStaticBitmap",0},
+    { "_class_wxPyDrawnShape","_wxPyDrawnShape",0},
+    { "_wxMDIChildFrame","_class_wxMDIChildFrame",0},
+    { "_wxListItem","_class_wxListItem",0},
+    { "_class_wxPseudoMetaFile","_wxPseudoMetaFile",0},
+    { "_class_wxToolBar","_wxToolBar",0},
+    { "_class_wxStaticLine","_wxStaticLine",0},
+    { "_wxScrollEvent","_class_wxScrollEvent",0},
+    { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0},
+    { "_class_wxShapeRegion","_wxShapeRegion",0},
+    { "_EBool","_wxPrintQuality",0},
+    { "_EBool","_signed_int",0},
+    { "_EBool","_int",0},
+    { "_EBool","_wxWindowID",0},
+    { "_class_wxRegion","_wxRegion",0},
+    { "_class_wxDropFilesEvent","_wxDropFilesEvent",0},
+    { "_class_wxPreviewFrame","_wxPreviewFrame",0},
+    { "_wxStaticText","_class_wxStaticText",0},
+    { "_wxFont","_class_wxFont",0},
+    { "_wxCloseEvent","_class_wxCloseEvent",0},
+    { "_class_wxSplitterEvent","_wxSplitterEvent",0},
+    { "_wxNotebook","_class_wxNotebook",0},
+    { "_unsigned_long","_wxDash",0},
+    { "_unsigned_long","_long",0},
+    { "_class_wxRect","_wxRect",0},
+    { "_class_wxDC","_wxDC",0},
+    { "_class_wxProgressDialog","_wxProgressDialog",0},
+    { "_wxPyApp","_class_wxPyApp",0},
+    { "_wxMDIParentFrame","_class_wxMDIParentFrame",0},
+    { "_class_wxTreeEvent","_wxTreeEvent",0},
+    { "_class_wxDirDialog","_wxDirDialog",0},
+    { "_class_wxPyTimer","_wxPyTimer",0},
+    { "_wxFocusEvent","_class_wxFocusEvent",0},
+    { "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
+    { "_class_wxSpinButton","_wxSpinButton",0},
+    { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
+    { "_class_wxPanel","_wxPanel",0},
+    { "_class_wxCheckBox","_wxCheckBox",0},
+    { "_wxComboBox","_class_wxComboBox",0},
+    { "_wxRadioButton","_class_wxRadioButton",0},
+    { "_class_wxMessageDialog","_wxMessageDialog",0},
+    { "_signed_int","_wxPrintQuality",0},
+    { "_signed_int","_EBool",0},
+    { "_signed_int","_wxWindowID",0},
+    { "_signed_int","_int",0},
+    { "_class_wxTextCtrl","_wxTextCtrl",0},
+    { "_wxLayoutConstraints","_class_wxLayoutConstraints",0},
+    { "_wxMetaFileDC","_class_wxMetaFileDC",0},
+    { "_wxMenu","_class_wxMenu",0},
+    { "_class_wxMoveEvent","_wxMoveEvent",0},
+    { "_wxListBox","_class_wxListBox",0},
+    { "_wxScreenDC","_class_wxScreenDC",0},
+    { "_class_wxMDIChildFrame","_wxMDIChildFrame",0},
+    { "_WXTYPE","_short",0},
+    { "_WXTYPE","_signed_short",0},
+    { "_WXTYPE","_unsigned_short",0},
+    { "_wxFileDialog","_class_wxFileDialog",0},
+    { "_class_wxMDIClientWindow","_wxMDIClientWindow",0},
+    { "_class_wxBrush","_wxBrush",0},
+    { "_unsigned_short","_WXTYPE",0},
+    { "_unsigned_short","_short",0},
+    { "_class_wxWindow","_wxWindow",0},
+    { "_wxSplitterWindow","_class_wxSplitterWindow",0},
+    { "_class_wxStaticText","_wxStaticText",0},
+    { "_wxPrintDialogData","_class_wxPrintDialogData",0},
+    { "_class_wxFont","_wxFont",0},
+    { "_class_wxCloseEvent","_wxCloseEvent",0},
+    { "_wxSashEvent","_class_wxSashEvent",0},
+    { "_class_wxMenuEvent","_wxMenuEvent",0},
+    { "_wxClientDC","_class_wxClientDC",0},
+    { "_wxMouseEvent","_class_wxMouseEvent",0},
+    { "_wxListCtrl","_class_wxListCtrl",0},
+    { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0},
+    { "_wxPyDividedShape","_class_wxPyDividedShape",0},
+    { "_class_wxPoint","_wxPoint",0},
+    { "_wxRealPoint","_class_wxRealPoint",0},
+    { "_class_wxRadioBox","_wxRadioBox",0},
+    { "_wxGridCell","_class_wxGridCell",0},
+    { "_signed_short","_WXTYPE",0},
+    { "_signed_short","_short",0},
+    { "_wxMemoryDC","_class_wxMemoryDC",0},
+    { "_class_wxTaskBarIcon","_wxTaskBarIcon",0},
+    { "_class_wxPrintDialog","_wxPrintDialog",0},
+    { "_wxPaintDC","_class_wxPaintDC",0},
+    { "_class_wxWindowDC","_wxWindowDC",0},
+    { "_class_wxFocusEvent","_wxFocusEvent",0},
+    { "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
+    { "_wxStatusBar","_class_wxStatusBar",0},
+    { "_class_wxToolBarTool","_wxToolBarTool",0},
+    { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
+    { "_class_wxCursor","_wxCursor",0},
+    { "_class_wxImageHandler","_wxImageHandler",0},
+    { "_wxPyShape","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShape},
+    { "_wxPyShape","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShape},
+    { "_wxPyShape","_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShape},
+    { "_wxPyShape","_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShape},
+    { "_wxPyShape","_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShape},
+    { "_wxPyShape","_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShape},
+    { "_wxPyShape","_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyShape",0},
+    { "_wxScrolledWindow","_class_wxScrolledWindow",0},
+    { "_wxTreeItemId","_class_wxTreeItemId",0},
+    { "_unsigned_char","_byte",0},
+    { "_class_wxMetaFileDC","_wxMetaFileDC",0},
+    { "_class_wxMenu","_wxMenu",0},
+    { "_wxControl","_class_wxControl",0},
+    { "_class_wxListBox","_wxListBox",0},
+    { "_unsigned_int","_wxPrintQuality",0},
+    { "_unsigned_int","_size_t",0},
+    { "_unsigned_int","_uint",0},
+    { "_unsigned_int","_wxWindowID",0},
+    { "_unsigned_int","_int",0},
+    { "_wxIcon","_class_wxIcon",0},
+    { "_wxDialog","_class_wxDialog",0},
+    { "_class_wxListItem","_wxListItem",0},
+    { "_class_wxPen","_wxPen",0},
+    { "_class_wxFileDialog","_wxFileDialog",0},
+    { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0},
+    { "_short","_WXTYPE",0},
+    { "_short","_unsigned_short",0},
+    { "_short","_signed_short",0},
+    { "_class_wxStaticBox","_wxStaticBox",0},
+    { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0},
+    { "_class_wxScrollEvent","_wxScrollEvent",0},
+    { "_wxJoystickEvent","_class_wxJoystickEvent",0},
+    { "_class_wxChoice","_wxChoice",0},
+    { "_class_wxSlider","_wxSlider",0},
+    { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0},
+    { "_class_wxImageList","_wxImageList",0},
+    { "_class_wxBitmapButton","_wxBitmapButton",0},
+    { "_wxFrame","_class_wxFrame",0},
+    { "_wxPyDivisionShape","_class_wxPyDivisionShape",0},
+    { "_class_wxNotebook","_wxNotebook",0},
+    { "_wxJPEGHandler","_class_wxJPEGHandler",0},
+    { "_wxWindowID","_wxPrintQuality",0},
+    { "_wxWindowID","_size_t",0},
+    { "_wxWindowID","_EBool",0},
+    { "_wxWindowID","_uint",0},
+    { "_wxWindowID","_int",0},
+    { "_wxWindowID","_signed_int",0},
+    { "_wxWindowID","_unsigned_int",0},
+    { "_int","_wxPrintQuality",0},
+    { "_int","_size_t",0},
+    { "_int","_EBool",0},
+    { "_int","_uint",0},
+    { "_int","_wxWindowID",0},
+    { "_int","_unsigned_int",0},
+    { "_int","_signed_int",0},
+    { "_class_wxMouseEvent","_wxMouseEvent",0},
+    { "_class_wxListEvent","_wxListEvent",0},
+    { "_class_wxPrintPreview","_wxPrintPreview",0},
+    { "_class_wxSpinEvent","_wxSpinEvent",0},
+    { "_wxButton","_class_wxButton",0},
+    { "_class_wxPyApp","_wxPyApp",0},
+    { "_wxSize","_class_wxSize",0},
+    { "_wxRegionIterator","_class_wxRegionIterator",0},
+    { "_class_wxPrinterDC","_wxPrinterDC",0},
+    { "_class_wxMDIParentFrame","_wxMDIParentFrame",0},
+    { "_wxPyTreeItemData","_class_wxPyTreeItemData",0},
+    { "_class_wxPaintDC","_wxPaintDC",0},
+    { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
+    { "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
+    { "_class_wxComboBox","_wxComboBox",0},
+    { "_class_wxRadioButton","_wxRadioButton",0},
+    { "_class_wxPyShape","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyShape",0},
+    { "_class_wxTreeItemId","_wxTreeItemId",0},
+    { "_wxTreeCtrl","_class_wxTreeCtrl",0},
+    { "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
+    { "_wxIconizeEvent","_class_wxIconizeEvent",0},
+    { "_class_wxControl","_wxControl",0},
+    { "_wxStaticBitmap","_class_wxStaticBitmap",0},
+    { "_wxPyDrawnShape","_class_wxPyDrawnShape",0},
+    { "_class_wxIcon","_wxIcon",0},
+    { "_class_wxColour","_wxColour",0},
+    { "_class_wxScreenDC","_wxScreenDC",0},
+    { "_class_wxPageSetupDialog","_wxPageSetupDialog",0},
+    { "_wxPalette","_class_wxPalette",0},
+    { "_class_wxIdleEvent","_wxIdleEvent",0},
+    { "_wxEraseEvent","_class_wxEraseEvent",0},
+    { "_class_wxJoystickEvent","_wxJoystickEvent",0},
+    { "_class_wxMiniFrame","_wxMiniFrame",0},
+    { "_wxFontDialog","_class_wxFontDialog",0},
+    { "_wxRegion","_class_wxRegion",0},
+    { "_class_wxSplitterWindow","_wxSplitterWindow",0},
+    { "_wxPreviewFrame","_class_wxPreviewFrame",0},
+    { "_class_wxShowEvent","_wxShowEvent",0},
+    { "_wxActivateEvent","_class_wxActivateEvent",0},
+    { "_wxGauge","_class_wxGauge",0},
+    { "_class_wxCheckListBox","_wxCheckListBox",0},
+    { "_class_wxGridEvent","_wxGridEvent",0},
+    { "_class_wxCommandEvent","_wxCommandEvent",0},
+    { "_class_wxClientDC","_wxClientDC",0},
+    { "_class_wxSizeEvent","_wxSizeEvent",0},
+    { "_class_wxListCtrl","_wxListCtrl",0},
+    { "_class_wxPyDividedShape","_wxPyDividedShape",0},
+    { "_class_wxGridCell","_wxGridCell",0},
+    { "_class_wxSize","_wxSize",0},
+    { "_class_wxBitmap","_wxBitmap",0},
+    { "_class_wxMemoryDC","_wxMemoryDC",0},
+    { "_wxMenuBar","_class_wxMenuBar",0},
+    { "_wxTreeEvent","_class_wxTreeEvent",0},
+    { "_wxDirDialog","_class_wxDirDialog",0},
+    { "_wxPyShapeEvtHandler","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyDividedShape",SwigwxPyDividedShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyRectangleShape",SwigwxPyRectangleShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyShapeEvtHandler",0},
+    { "_wxEvtHandler","_class_wxEvtHandler",0},
+    { "_wxMenuItem","_class_wxMenuItem",0},
+    { "_class_wxScrollBar","_wxScrollBar",0},
+    { "_class_wxColourDialog","_wxColourDialog",0},
+    { "_class_wxPrintData","_wxPrintData",0},
+    { "_wxDash","_unsigned_long",0},
+    { "_wxDash","_long",0},
+    { "_wxPyRectangleShape","_class_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_wxPyDivisionShape",SwigwxPyDivisionShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_class_wxPyDividedShape",SwigwxPyDividedShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_wxPyDividedShape",SwigwxPyDividedShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_class_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_wxPyCompositeShape",SwigwxPyCompositeShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_class_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_wxPyDrawnShape",SwigwxPyDrawnShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_class_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_wxPyBitmapShape",SwigwxPyBitmapShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_class_wxPyRectangleShape",0},
+    { "_class_wxScrolledWindow","_wxScrolledWindow",0},
+    { "_class_wxTextEntryDialog","_wxTextEntryDialog",0},
+    { "_wxKeyEvent","_class_wxKeyEvent",0},
+    { "_wxMoveEvent","_class_wxMoveEvent",0},
+    { "_wxOGLConstraint","_class_wxOGLConstraint",0},
+    { "_wxColourData","_class_wxColourData",0},
+    { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0},
+    { "_class_wxPalette","_wxPalette",0},
+    { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0},
+    { "_class_wxEraseEvent","_wxEraseEvent",0},
+    { "_wxMDIClientWindow","_class_wxMDIClientWindow",0},
+    { "_class_wxFontDialog","_wxFontDialog",0},
+    { "_wxWindow","_class_wxWindow",0},
+    { "_class_wxFrame","_wxFrame",0},
+{0,0,0}};
+
+static PyObject *SWIG_globals;
+#ifdef __cplusplus
+extern "C" 
+#endif
+SWIGEXPORT(void) initoglshapesc() {
+	 PyObject *m, *d;
+	 SWIG_globals = SWIG_newvarlink();
+	 m = Py_InitModule("oglshapesc", oglshapescMethods);
+	 d = PyModule_GetDict(m);
+{
+   int i;
+   for (i = 0; _swig_mapping[i].n1; i++)
+        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
+}
+}
diff --git a/utils/wxPython/modules/ogl/oglshapes.i b/utils/wxPython/modules/ogl/oglshapes.i
new file mode 100644
index 0000000000..fce7c5f1c1
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglshapes.i
@@ -0,0 +1,515 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        oglshapes.i
+// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
+//
+// Author:      Robin Dunn
+//
+// Created:     3-Sept-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+%module oglshapes
+
+%{
+#include "helpers.h"
+#include "oglhelpers.h"
+%}
+
+//---------------------------------------------------------------------------
+
+%include typemaps.i
+%include my_typemaps.i
+
+%extern wx.i
+%import windows.i
+%extern _defs.i
+%extern misc.i
+%extern gdi.i
+
+%include _ogldefs.i
+
+%import oglbasic.i
+
+
+%pragma(python) code = "import wx"
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+
+class wxPseudoMetaFile {
+public:
+  wxPseudoMetaFile();
+  ~wxPseudoMetaFile();
+
+    void Draw(wxDC& dc, double xoffset, double yoffset);
+
+    void WriteAttributes(wxExpr *clause, int whichAngle);
+    void ReadAttributes(wxExpr *clause, int whichAngle);
+    void Clear();
+    void Copy(wxPseudoMetaFile& copy);
+    void Scale(double sx, double sy);
+    void ScaleTo(double w, double h);
+    void Translate(double x, double y);
+    void Rotate(double x, double y, double theta);
+    bool LoadFromMetaFile(char* filename, double *width, double *height);
+    void GetBounds(double *minX, double *minY, double *maxX, double *maxY);
+    void CalculateSize(wxDrawnShape* shape);
+
+    // ****  fix these...  is it even possible?  these are lists of various GDI opperations (not the objects...)
+    // wxList& GetOutlineColours();
+    // wxList& GetFillColours();
+    // wxList& GetOps();
+
+    void SetRotateable(bool rot);
+    bool GetRotateable();
+    void SetSize(double w, double h);
+    void SetFillBrush(wxBrush* brush);
+    wxBrush* GetFillBrush();
+    void SetOutlinePen(wxPen* pen);
+    wxPen* GetOutlinePen();
+    void SetOutlineOp(int op);
+    int GetOutlineOp();
+
+
+    bool IsValid();
+    void DrawLine(const wxPoint& pt1, const wxPoint& pt2);
+    void DrawRectangle(const wxRect& rect);
+    void DrawRoundedRectangle(const wxRect& rect, double radius);
+    void DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt);
+    void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
+    void DrawEllipse(const wxRect& rect);
+    void DrawPoint(const wxPoint& pt);
+    void DrawText(const wxString& text, const wxPoint& pt);
+    void DrawLines(int LCOUNT, wxPoint* LIST);
+    void DrawPolygon(int LCOUNT, wxPoint* LIST, int flags = 0);
+    void DrawSpline(int LCOUNT, wxPoint* LIST);
+    void SetClippingRect(const wxRect& rect);
+    void DestroyClippingRect();
+    void SetPen(wxPen* pen, bool isOutline = FALSE);
+    void SetBrush(wxBrush* brush, bool isFill = FALSE);
+    void SetFont(wxFont* font);
+    void SetTextColour(const wxColour& colour);
+    void SetBackgroundColour(const wxColour& colour);
+    void SetBackgroundMode(int mode);
+};
+
+
+//---------------------------------------------------------------------------
+
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyRectangleShape, wxRectangleShape);
+%}
+
+class wxPyRectangleShape : public wxPyShape {
+public:
+    wxPyRectangleShape(double width = 0.0, double height = 0.0);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void SetCornerRadius(double radius);
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyBitmapShape, wxBitmapShape);
+%}
+
+
+class wxPyBitmapShape : public wxPyRectangleShape {
+public:
+    wxPyBitmapShape();
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    wxBitmap& GetBitmap();
+    wxString GetFilename();
+    void SetBitmap(const wxBitmap& bitmap);
+    void SetFilename(const wxString& filename);
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyDrawnShape, wxDrawnShape);
+%}
+
+class wxPyDrawnShape : public wxPyRectangleShape {
+public:
+    wxPyDrawnShape();
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void CalculateSize();
+    void DestroyClippingRect();
+    void DrawArc(const wxPoint& centrePoint, const wxPoint& startPoint,
+                 const wxPoint& endPoint);
+    void DrawAtAngle(int angle);
+    void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle);
+    void DrawLine(const wxPoint& point1, const wxPoint& point2);
+    void DrawLines(int LCOUNT, wxPoint* LIST);
+    void DrawPoint(const wxPoint& point);
+    void DrawPolygon(int LCOUNT, wxPoint* LIST, int flags = 0);
+    void DrawRectangle(const wxRect& rect);
+    void DrawRoundedRectangle(const wxRect& rect, double radius);
+    void DrawSpline(int LCOUNT, wxPoint* LIST);
+    void DrawText(const wxString& text, const wxPoint& point);
+    int GetAngle();
+
+    wxPseudoMetaFile& GetMetaFile();
+
+    double GetRotation();
+    bool LoadFromMetaFile(char * filename);
+    void Rotate(double x, double y, double theta);
+    void SetClippingRect(const wxRect& rect);
+    void SetDrawnBackgroundColour(const wxColour& colour);
+    void SetDrawnBackgroundMode(int mode);
+    void SetDrawnBrush(wxBrush* pen, bool isOutline = FALSE);
+    void SetDrawnFont(wxFont* font);
+    void SetDrawnPen(wxPen* pen, bool isOutline = FALSE);
+    void SetDrawnTextColour(const wxColour& colour);
+    void Scale(double sx, double sy);
+    void SetSaveToFile(bool save);
+    void Translate(double x, double y);
+
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+
+};
+
+
+//---------------------------------------------------------------------------
+
+class wxOGLConstraint  {
+public:
+    //wxOGLConstraint(int type, wxPyShape *constraining, wxList& constrained);
+    %addmethods {
+        wxOGLConstraint(int type, wxPyShape *constraining, PyObject* constrained) {
+            wxList* list = wxPy_wxListHelper(constrained, "wxPyShape");
+            wxOGLConstraint* rv = new wxOGLConstraint(type, constraining, *list);
+            delete list;
+            return rv;
+        }
+    }
+    ~wxOGLConstraint();
+
+    bool Evaluate();
+    void SetSpacing(double x, double y);
+    bool Equals(double a, double b);
+
+};
+
+
+
+//---------------------------------------------------------------------------
+
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyCompositeShape, wxCompositeShape);
+%}
+
+class wxPyCompositeShape : public wxPyRectangleShape {
+public:
+    wxPyCompositeShape();
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void AddChild(wxPyShape *child, wxPyShape *addAfter = NULL);
+
+    wxOGLConstraint * AddConstraint(wxOGLConstraint *constraint);
+
+    // **** Needs a typemap
+    //wxOGLConstraint * AddConstraint(int type,
+    //                                wxPyShape *constraining,
+    //                                wxList& constrained);
+
+    %name(AddSimpleConstraint)wxOGLConstraint* AddConstraint(int type,
+                                                             wxPyShape *constraining,
+                                                             wxPyShape *constrained);
+
+    void CalculateSize();
+    bool ContainsDivision(wxPyDivisionShape *division);
+    void DeleteConstraint(wxOGLConstraint *constraint);
+    void DeleteConstraintsInvolvingChild(wxPyShape *child);
+
+    // ****  Needs an output typemap
+    //wxOGLConstraint * FindConstraint(long id, wxPyCompositeShape **actualComposite);
+
+    wxPyShape * FindContainerImage();
+
+    // wxList& GetConstraints();
+    // wxList& GetDivisions();
+    %addmethods {
+        PyObject* GetConstraints() {
+            wxList& list = self->GetConstraints();
+            return wxPy_ConvertList(&list, "wxOGLConstraint");
+        }
+
+        PyObject* GetDivisions() {
+            wxList& list = self->GetDivisions();
+            return wxPy_ConvertList(&list, "wxPyDivisionShape");
+        }
+    }
+
+    void MakeContainer();
+    bool Recompute();
+    void RemoveChild(wxPyShape *child);
+
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+
+};
+
+
+//---------------------------------------------------------------------------
+
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyDividedShape, wxDividedShape);
+%}
+
+class wxPyDividedShape : public wxPyRectangleShape {
+public:
+    wxPyDividedShape(double width = 0.0, double height = 0.0);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void EditRegions();
+    void SetRegionSizes();
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+
+};
+
+
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyDivisionShape, wxDivisionShape);
+%}
+
+class wxPyDivisionShape : public wxPyCompositeShape {
+public:
+    wxPyDivisionShape();
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void AdjustBottom(double bottom, bool test);
+    void AdjustLeft(double left, bool test);
+    void AdjustRight(double right, bool test);
+    void AdjustTop(double top, bool test);
+    void Divide(int direction);
+    void EditEdge(int side);
+    wxPyDivisionShape * GetBottomSide();
+    int GetHandleSide();
+    wxPyDivisionShape * GetLeftSide();
+    wxString GetLeftSideColour();
+    wxPen * GetLeftSidePen();
+    wxPyDivisionShape * GetRightSide();
+    wxPyDivisionShape * GetTopSide();
+    wxPen * GetTopSidePen();
+    void ResizeAdjoining(int side, double newPos, bool test);
+    void PopupMenu(double x, double y);
+    void SetBottomSide(wxPyDivisionShape *shape);
+    void SetHandleSide(int side);
+    void SetLeftSide(wxPyDivisionShape *shape);
+    void SetLeftSideColour(const wxString& colour);
+    void SetLeftSidePen(wxPen *pen);
+    void SetRightSide(wxPyDivisionShape *shape);
+    void SetTopSide(wxPyDivisionShape *shape);
+    void SetTopSideColour(const wxString& colour);
+    void SetTopSidePen(wxPen *pen);
+
+
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+
+};
+
+
+
+//---------------------------------------------------------------------------
+
diff --git a/utils/wxPython/modules/ogl/oglshapes.py b/utils/wxPython/modules/ogl/oglshapes.py
new file mode 100644
index 0000000000..19c33611f3
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglshapes.py
@@ -0,0 +1,1071 @@
+# This file was created automatically by SWIG.
+import oglshapesc
+
+from misc import *
+
+from misc2 import *
+
+from windows import *
+
+from gdi import *
+
+from events import *
+
+from mdi import *
+
+from frames import *
+
+from stattool import *
+
+from controls import *
+
+from controls2 import *
+
+from windows2 import *
+
+from cmndlgs import *
+
+from windows3 import *
+
+from image import *
+
+from printfw import *
+
+from oglbasic import *
+import wx
+class wxPseudoMetaFilePtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __del__(self,oglshapesc=oglshapesc):
+        if self.thisown == 1 :
+            oglshapesc.delete_wxPseudoMetaFile(self)
+    def Draw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_Draw,(self,) + _args, _kwargs)
+        return val
+    def WriteAttributes(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_WriteAttributes,(self,) + _args, _kwargs)
+        return val
+    def ReadAttributes(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_ReadAttributes,(self,) + _args, _kwargs)
+        return val
+    def Clear(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_Clear,(self,) + _args, _kwargs)
+        return val
+    def Copy(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_Copy,(self,) + _args, _kwargs)
+        return val
+    def Scale(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_Scale,(self,) + _args, _kwargs)
+        return val
+    def ScaleTo(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_ScaleTo,(self,) + _args, _kwargs)
+        return val
+    def Translate(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_Translate,(self,) + _args, _kwargs)
+        return val
+    def Rotate(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_Rotate,(self,) + _args, _kwargs)
+        return val
+    def LoadFromMetaFile(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_LoadFromMetaFile,(self,) + _args, _kwargs)
+        return val
+    def GetBounds(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_GetBounds,(self,) + _args, _kwargs)
+        return val
+    def CalculateSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_CalculateSize,(self,) + _args, _kwargs)
+        return val
+    def SetRotateable(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetRotateable,(self,) + _args, _kwargs)
+        return val
+    def GetRotateable(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_GetRotateable,(self,) + _args, _kwargs)
+        return val
+    def SetSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetSize,(self,) + _args, _kwargs)
+        return val
+    def SetFillBrush(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetFillBrush,(self,) + _args, _kwargs)
+        return val
+    def GetFillBrush(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_GetFillBrush,(self,) + _args, _kwargs)
+        if val: val = wxBrushPtr(val) 
+        return val
+    def SetOutlinePen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetOutlinePen,(self,) + _args, _kwargs)
+        return val
+    def GetOutlinePen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_GetOutlinePen,(self,) + _args, _kwargs)
+        if val: val = wxPenPtr(val) 
+        return val
+    def SetOutlineOp(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetOutlineOp,(self,) + _args, _kwargs)
+        return val
+    def GetOutlineOp(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_GetOutlineOp,(self,) + _args, _kwargs)
+        return val
+    def IsValid(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_IsValid,(self,) + _args, _kwargs)
+        return val
+    def DrawLine(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawLine,(self,) + _args, _kwargs)
+        return val
+    def DrawRectangle(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawRectangle,(self,) + _args, _kwargs)
+        return val
+    def DrawRoundedRectangle(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawRoundedRectangle,(self,) + _args, _kwargs)
+        return val
+    def DrawArc(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawArc,(self,) + _args, _kwargs)
+        return val
+    def DrawEllipticArc(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawEllipticArc,(self,) + _args, _kwargs)
+        return val
+    def DrawEllipse(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawEllipse,(self,) + _args, _kwargs)
+        return val
+    def DrawPoint(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawPoint,(self,) + _args, _kwargs)
+        return val
+    def DrawText(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawText,(self,) + _args, _kwargs)
+        return val
+    def DrawLines(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawLines,(self,) + _args, _kwargs)
+        return val
+    def DrawPolygon(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawPolygon,(self,) + _args, _kwargs)
+        return val
+    def DrawSpline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DrawSpline,(self,) + _args, _kwargs)
+        return val
+    def SetClippingRect(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetClippingRect,(self,) + _args, _kwargs)
+        return val
+    def DestroyClippingRect(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_DestroyClippingRect,(self,) + _args, _kwargs)
+        return val
+    def SetPen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetPen,(self,) + _args, _kwargs)
+        return val
+    def SetBrush(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetBrush,(self,) + _args, _kwargs)
+        return val
+    def SetFont(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetFont,(self,) + _args, _kwargs)
+        return val
+    def SetTextColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetTextColour,(self,) + _args, _kwargs)
+        return val
+    def SetBackgroundColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetBackgroundColour,(self,) + _args, _kwargs)
+        return val
+    def SetBackgroundMode(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPseudoMetaFile_SetBackgroundMode,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPseudoMetaFile instance at %s>" % (self.this,)
+class wxPseudoMetaFile(wxPseudoMetaFilePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPseudoMetaFile,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxPyRectangleShapePtr(wxPyShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def SetCornerRadius(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_SetCornerRadius,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyRectangleShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyRectangleShape instance at %s>" % (self.this,)
+class wxPyRectangleShape(wxPyRectangleShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPyRectangleShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyBitmapShapePtr(wxPyRectangleShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def GetBitmap(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_GetBitmap,(self,) + _args, _kwargs)
+        if val: val = wxBitmapPtr(val) 
+        return val
+    def GetFilename(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_GetFilename,(self,) + _args, _kwargs)
+        return val
+    def SetBitmap(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_SetBitmap,(self,) + _args, _kwargs)
+        return val
+    def SetFilename(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_SetFilename,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyBitmapShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyBitmapShape instance at %s>" % (self.this,)
+class wxPyBitmapShape(wxPyBitmapShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPyBitmapShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyDrawnShapePtr(wxPyRectangleShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def CalculateSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_CalculateSize,(self,) + _args, _kwargs)
+        return val
+    def DestroyClippingRect(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DestroyClippingRect,(self,) + _args, _kwargs)
+        return val
+    def DrawArc(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawArc,(self,) + _args, _kwargs)
+        return val
+    def DrawAtAngle(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawAtAngle,(self,) + _args, _kwargs)
+        return val
+    def DrawEllipticArc(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawEllipticArc,(self,) + _args, _kwargs)
+        return val
+    def DrawLine(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawLine,(self,) + _args, _kwargs)
+        return val
+    def DrawLines(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawLines,(self,) + _args, _kwargs)
+        return val
+    def DrawPoint(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawPoint,(self,) + _args, _kwargs)
+        return val
+    def DrawPolygon(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawPolygon,(self,) + _args, _kwargs)
+        return val
+    def DrawRectangle(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawRectangle,(self,) + _args, _kwargs)
+        return val
+    def DrawRoundedRectangle(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawRoundedRectangle,(self,) + _args, _kwargs)
+        return val
+    def DrawSpline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawSpline,(self,) + _args, _kwargs)
+        return val
+    def DrawText(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_DrawText,(self,) + _args, _kwargs)
+        return val
+    def GetAngle(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_GetAngle,(self,) + _args, _kwargs)
+        return val
+    def GetMetaFile(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_GetMetaFile,(self,) + _args, _kwargs)
+        if val: val = wxPseudoMetaFilePtr(val) 
+        return val
+    def GetRotation(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_GetRotation,(self,) + _args, _kwargs)
+        return val
+    def LoadFromMetaFile(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_LoadFromMetaFile,(self,) + _args, _kwargs)
+        return val
+    def Rotate(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_Rotate,(self,) + _args, _kwargs)
+        return val
+    def SetClippingRect(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetClippingRect,(self,) + _args, _kwargs)
+        return val
+    def SetDrawnBackgroundColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetDrawnBackgroundColour,(self,) + _args, _kwargs)
+        return val
+    def SetDrawnBackgroundMode(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetDrawnBackgroundMode,(self,) + _args, _kwargs)
+        return val
+    def SetDrawnBrush(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetDrawnBrush,(self,) + _args, _kwargs)
+        return val
+    def SetDrawnFont(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetDrawnFont,(self,) + _args, _kwargs)
+        return val
+    def SetDrawnPen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetDrawnPen,(self,) + _args, _kwargs)
+        return val
+    def SetDrawnTextColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetDrawnTextColour,(self,) + _args, _kwargs)
+        return val
+    def Scale(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_Scale,(self,) + _args, _kwargs)
+        return val
+    def SetSaveToFile(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_SetSaveToFile,(self,) + _args, _kwargs)
+        return val
+    def Translate(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_Translate,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDrawnShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyDrawnShape instance at %s>" % (self.this,)
+class wxPyDrawnShape(wxPyDrawnShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPyDrawnShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxOGLConstraintPtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __del__(self,oglshapesc=oglshapesc):
+        if self.thisown == 1 :
+            oglshapesc.delete_wxOGLConstraint(self)
+    def Evaluate(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxOGLConstraint_Evaluate,(self,) + _args, _kwargs)
+        return val
+    def SetSpacing(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxOGLConstraint_SetSpacing,(self,) + _args, _kwargs)
+        return val
+    def Equals(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxOGLConstraint_Equals,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxOGLConstraint instance at %s>" % (self.this,)
+class wxOGLConstraint(wxOGLConstraintPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxOGLConstraint,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxPyCompositeShapePtr(wxPyRectangleShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def AddChild(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_AddChild,(self,) + _args, _kwargs)
+        return val
+    def AddConstraint(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_AddConstraint,(self,) + _args, _kwargs)
+        if val: val = wxOGLConstraintPtr(val) 
+        return val
+    def AddSimpleConstraint(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_AddSimpleConstraint,(self,) + _args, _kwargs)
+        if val: val = wxOGLConstraintPtr(val) 
+        return val
+    def CalculateSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_CalculateSize,(self,) + _args, _kwargs)
+        return val
+    def ContainsDivision(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_ContainsDivision,(self,) + _args, _kwargs)
+        return val
+    def DeleteConstraint(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_DeleteConstraint,(self,) + _args, _kwargs)
+        return val
+    def DeleteConstraintsInvolvingChild(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_DeleteConstraintsInvolvingChild,(self,) + _args, _kwargs)
+        return val
+    def FindContainerImage(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_FindContainerImage,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def GetConstraints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_GetConstraints,(self,) + _args, _kwargs)
+        return val
+    def GetDivisions(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_GetDivisions,(self,) + _args, _kwargs)
+        return val
+    def MakeContainer(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_MakeContainer,(self,) + _args, _kwargs)
+        return val
+    def Recompute(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_Recompute,(self,) + _args, _kwargs)
+        return val
+    def RemoveChild(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_RemoveChild,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyCompositeShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyCompositeShape instance at %s>" % (self.this,)
+class wxPyCompositeShape(wxPyCompositeShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPyCompositeShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyDividedShapePtr(wxPyRectangleShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def EditRegions(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_EditRegions,(self,) + _args, _kwargs)
+        return val
+    def SetRegionSizes(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_SetRegionSizes,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDividedShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyDividedShape instance at %s>" % (self.this,)
+class wxPyDividedShape(wxPyDividedShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPyDividedShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyDivisionShapePtr(wxPyCompositeShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def AdjustBottom(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_AdjustBottom,(self,) + _args, _kwargs)
+        return val
+    def AdjustLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_AdjustLeft,(self,) + _args, _kwargs)
+        return val
+    def AdjustRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_AdjustRight,(self,) + _args, _kwargs)
+        return val
+    def AdjustTop(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_AdjustTop,(self,) + _args, _kwargs)
+        return val
+    def Divide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_Divide,(self,) + _args, _kwargs)
+        return val
+    def EditEdge(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_EditEdge,(self,) + _args, _kwargs)
+        return val
+    def GetBottomSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetBottomSide,(self,) + _args, _kwargs)
+        if val: val = wxPyDivisionShapePtr(val) 
+        return val
+    def GetHandleSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetHandleSide,(self,) + _args, _kwargs)
+        return val
+    def GetLeftSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetLeftSide,(self,) + _args, _kwargs)
+        if val: val = wxPyDivisionShapePtr(val) 
+        return val
+    def GetLeftSideColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetLeftSideColour,(self,) + _args, _kwargs)
+        return val
+    def GetLeftSidePen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetLeftSidePen,(self,) + _args, _kwargs)
+        if val: val = wxPenPtr(val) 
+        return val
+    def GetRightSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetRightSide,(self,) + _args, _kwargs)
+        if val: val = wxPyDivisionShapePtr(val) 
+        return val
+    def GetTopSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetTopSide,(self,) + _args, _kwargs)
+        if val: val = wxPyDivisionShapePtr(val) 
+        return val
+    def GetTopSidePen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_GetTopSidePen,(self,) + _args, _kwargs)
+        if val: val = wxPenPtr(val) 
+        return val
+    def ResizeAdjoining(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_ResizeAdjoining,(self,) + _args, _kwargs)
+        return val
+    def PopupMenu(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_PopupMenu,(self,) + _args, _kwargs)
+        return val
+    def SetBottomSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetBottomSide,(self,) + _args, _kwargs)
+        return val
+    def SetHandleSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetHandleSide,(self,) + _args, _kwargs)
+        return val
+    def SetLeftSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetLeftSide,(self,) + _args, _kwargs)
+        return val
+    def SetLeftSideColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetLeftSideColour,(self,) + _args, _kwargs)
+        return val
+    def SetLeftSidePen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetLeftSidePen,(self,) + _args, _kwargs)
+        return val
+    def SetRightSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetRightSide,(self,) + _args, _kwargs)
+        return val
+    def SetTopSide(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetTopSide,(self,) + _args, _kwargs)
+        return val
+    def SetTopSideColour(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetTopSideColour,(self,) + _args, _kwargs)
+        return val
+    def SetTopSidePen(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_SetTopSidePen,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapesc.wxPyDivisionShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyDivisionShape instance at %s>" % (self.this,)
+class wxPyDivisionShape(wxPyDivisionShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapesc.new_wxPyDivisionShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+
+
+#-------------- FUNCTION WRAPPERS ------------------
+
+
+
+#-------------- VARIABLE WRAPPERS ------------------
+
diff --git a/utils/wxPython/modules/ogl/oglshapes2.cpp b/utils/wxPython/modules/ogl/oglshapes2.cpp
new file mode 100644
index 0000000000..21f8783ac4
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglshapes2.cpp
@@ -0,0 +1,8282 @@
+/*
+ * FILE : ./oglshapes2.cpp
+ * 
+ * This file was automatically generated by :
+ * Simplified Wrapper and Interface Generator (SWIG)
+ * Version 1.1 (Build 810)
+ * 
+ * Portions Copyright (c) 1995-1998
+ * The University of Utah and The Regents of the University of California.
+ * Permission is granted to distribute this file in any manner provided
+ * this notice remains intact.
+ * 
+ * Do not make changes to this file--changes will be lost!
+ *
+ */
+
+
+#define SWIGCODE
+/* Implementation : PYTHON */
+
+#define SWIGPYTHON
+#include <string.h>
+#include <stdlib.h>
+/* Definitions for Windows/Unix exporting */
+#if defined(__WIN32__)
+#   if defined(_MSC_VER)
+#	define SWIGEXPORT(a) __declspec(dllexport) a
+#   else
+#	if defined(__BORLANDC__)
+#	    define SWIGEXPORT(a) a _export 
+#	else
+#	    define SWIGEXPORT(a) a 
+#	endif
+#   endif
+#else
+#   define SWIGEXPORT(a) a 
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "Python.h"
+extern void SWIG_MakePtr(char *, void *, char *);
+extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
+extern char *SWIG_GetPtr(char *, void **, char *);
+extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
+extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
+extern PyObject *SWIG_newvarlink(void);
+#ifdef __cplusplus
+}
+#endif
+#define SWIG_init    initoglshapes2c
+
+#define SWIG_name    "oglshapes2c"
+
+#include "helpers.h"
+#include "oglhelpers.h"
+
+static PyObject* l_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyList_Check(target)) {
+            o2 = target;
+            target = PyList_New(0);
+            PyList_Append(target, o2);
+	    Py_XDECREF(o2);
+        }
+        PyList_Append(target,o);
+	Py_XDECREF(o);
+    }
+    return target;
+}
+
+static PyObject* t_output_helper(PyObject* target, PyObject* o) {
+    PyObject*   o2;
+    PyObject*   o3;
+
+    if (!target) {                   
+        target = o;
+    } else if (target == Py_None) {  
+        Py_DECREF(Py_None);
+        target = o;
+    } else {                         
+        if (!PyTuple_Check(target)) {
+            o2 = target;
+            target = PyTuple_New(1);
+            PyTuple_SetItem(target, 0, o2);
+        }
+        o3 = PyTuple_New(1);            
+        PyTuple_SetItem(o3, 0, o);      
+
+        o2 = target;
+        target = PySequence_Concat(o2, o3); 
+        Py_DECREF(o2);                      
+        Py_DECREF(o3);
+    }
+    return target;
+}
+
+
+HELPEREXPORT byte* byte_LIST_helper(PyObject* source);
+HELPEREXPORT int* int_LIST_helper(PyObject* source);
+HELPEREXPORT long* long_LIST_helper(PyObject* source);
+HELPEREXPORT char** string_LIST_helper(PyObject* source);
+HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source);
+HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source);
+HELPEREXPORT wxString* wxString_LIST_helper(PyObject* source);
+HELPEREXPORT wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
+
+
+static char* wxStringErrorMsg = "string type is required for parameter";
+
+    WXSHAPE_IMP_CALLBACKS(wxPyEllipseShape, wxEllipseShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyCircleShape, wxCircleShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyLineShape, wxLineShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyPolygonShape, wxPolygonShape);
+
+    WXSHAPE_IMP_CALLBACKS(wxPyTextShape, wxTextShape);
+#ifdef __cplusplus
+extern "C" {
+#endif
+static void *SwigwxPyEllipseShapeTowxPyShape(void *ptr) {
+    wxPyEllipseShape *src;
+    wxPyShape *dest;
+    src = (wxPyEllipseShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyEllipseShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyEllipseShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyEllipseShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyEllipseShape(_swigarg0,_swigarg1) (new wxPyEllipseShape(_swigarg0,_swigarg1))
+static PyObject *_wrap_new_wxPyEllipseShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _result;
+    double  _arg0 = (double ) 0.0;
+    double  _arg1 = (double ) 0.0;
+    char *_kwnames[] = { "width","height", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|dd:new_wxPyEllipseShape",_kwnames,&_arg0,&_arg1)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyEllipseShape *)new_wxPyEllipseShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyEllipseShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyEllipseShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape__setSelf. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDraw. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDrawContents. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyEllipseShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDrawBranches. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnMoveLinks. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnErase. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnEraseContents. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnHighlight. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnLeftClick. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnLeftDoubleClick. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnRightClick. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyEllipseShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyEllipseShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnSize. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyEllipseShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyEllipseShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnMovePre. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyEllipseShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyEllipseShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyEllipseShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnMovePost. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyEllipseShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDragLeft. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnBeginDragLeft. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnEndDragLeft. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyEllipseShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDragRight. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnBeginDragRight. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyEllipseShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyEllipseShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnEndDragRight. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyEllipseShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDrawOutline. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnDrawControlPoints. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyEllipseShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyEllipseShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnEraseControlPoints. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyEllipseShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyEllipseShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnMoveLink. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyEllipseShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyEllipseShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnSizingDragLeft. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyEllipseShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyEllipseShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnSizingBeginDragLeft. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyEllipseShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyEllipseShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnSizingEndDragLeft. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyEllipseShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyEllipseShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyEllipseShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnBeginSize. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyEllipseShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyEllipseShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyEllipseShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyEllipseShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyEllipseShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEllipseShape_base_OnEndSize. Expected _wxPyEllipseShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyEllipseShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyCircleShapeTowxPyEllipseShape(void *ptr) {
+    wxPyCircleShape *src;
+    wxPyEllipseShape *dest;
+    src = (wxPyCircleShape *) ptr;
+    dest = (wxPyEllipseShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyCircleShapeTowxPyShape(void *ptr) {
+    wxPyCircleShape *src;
+    wxPyShape *dest;
+    src = (wxPyCircleShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyCircleShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyCircleShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyCircleShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyCircleShape(_swigarg0) (new wxPyCircleShape(_swigarg0))
+static PyObject *_wrap_new_wxPyCircleShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _result;
+    double  _arg0 = (double ) 0.0;
+    char *_kwnames[] = { "width", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|d:new_wxPyCircleShape",_kwnames,&_arg0)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyCircleShape *)new_wxPyCircleShape(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyCircleShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyCircleShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape__setSelf. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDraw. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDrawContents. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCircleShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyCircleShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDrawBranches. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnMoveLinks. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnErase. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnEraseContents. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnHighlight. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnLeftClick. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnLeftDoubleClick. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnRightClick. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCircleShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyCircleShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnSize. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyCircleShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyCircleShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnMovePre. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyCircleShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyCircleShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyCircleShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnMovePost. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCircleShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyCircleShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDragLeft. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnBeginDragLeft. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnEndDragLeft. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCircleShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyCircleShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDragRight. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnBeginDragRight. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyCircleShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyCircleShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnEndDragRight. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCircleShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyCircleShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDrawOutline. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnDrawControlPoints. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyCircleShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyCircleShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnEraseControlPoints. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCircleShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyCircleShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnMoveLink. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyCircleShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyCircleShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnSizingDragLeft. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCircleShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyCircleShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnSizingBeginDragLeft. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyCircleShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyCircleShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnSizingEndDragLeft. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyCircleShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCircleShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyCircleShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnBeginSize. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyCircleShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyCircleShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyCircleShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyCircleShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyCircleShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyCircleShape_base_OnEndSize. Expected _wxPyCircleShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyCircleShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define new_wxArrowHead(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxArrowHead(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6))
+static PyObject *_wrap_new_wxArrowHead(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _result;
+    int  _arg0 = (int ) 0;
+    int  _arg1 = (int ) 0;
+    double  _arg2 = (double ) 0.0;
+    double  _arg3 = (double ) 0.0;
+    char * _arg4 = (char *) "";
+    wxPseudoMetaFile * _arg5 = (wxPseudoMetaFile *) NULL;
+    long  _arg6 = (long ) -1;
+    PyObject * _argo5 = 0;
+    char *_kwnames[] = { "type","end","size","dist","name","mf","arrowId", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|iiddsOl:new_wxArrowHead",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argo5,&_arg6)) 
+        return NULL;
+    if (_argo5) {
+        if (_argo5 == Py_None) { _arg5 = NULL; }
+        else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxArrowHead. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxArrowHead *)new_wxArrowHead(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxArrowHead_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define delete_wxArrowHead(_swigobj) (delete _swigobj)
+static PyObject *_wrap_delete_wxArrowHead(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:delete_wxArrowHead",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxArrowHead. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxArrowHead(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxArrowHead__GetType(_swigobj)  (_swigobj->_GetType())
+static PyObject *_wrap_wxArrowHead__GetType(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead__GetType",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead__GetType. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxArrowHead__GetType(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetPosition(_swigobj)  (_swigobj->GetPosition())
+static PyObject *_wrap_wxArrowHead_GetPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetPosition",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetPosition. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxArrowHead_GetPosition(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_SetPosition(_swigobj,_swigarg0)  (_swigobj->SetPosition(_swigarg0))
+static PyObject *_wrap_wxArrowHead_SetPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","pos", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxArrowHead_SetPosition",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_SetPosition. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxArrowHead_SetPosition(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxArrowHead_GetXOffset(_swigobj)  (_swigobj->GetXOffset())
+static PyObject *_wrap_wxArrowHead_GetXOffset(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetXOffset",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetXOffset. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxArrowHead_GetXOffset(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetYOffset(_swigobj)  (_swigobj->GetYOffset())
+static PyObject *_wrap_wxArrowHead_GetYOffset(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetYOffset",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetYOffset. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxArrowHead_GetYOffset(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetSpacing(_swigobj)  (_swigobj->GetSpacing())
+static PyObject *_wrap_wxArrowHead_GetSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetSpacing",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetSpacing. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxArrowHead_GetSpacing(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetSize(_swigobj)  (_swigobj->GetSize())
+static PyObject *_wrap_wxArrowHead_GetSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetSize. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxArrowHead_GetSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetName(_swigobj)  (_swigobj->GetName())
+static PyObject *_wrap_wxArrowHead_GetName(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxString * _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetName",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetName. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxArrowHead_GetName(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
+    _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
+}
+{
+    delete _result;
+}
+    return _resultobj;
+}
+
+#define wxArrowHead_SetXOffset(_swigobj,_swigarg0)  (_swigobj->SetXOffset(_swigarg0))
+static PyObject *_wrap_wxArrowHead_SetXOffset(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxArrowHead_SetXOffset",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_SetXOffset. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxArrowHead_SetXOffset(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxArrowHead_SetYOffset(_swigobj,_swigarg0)  (_swigobj->SetYOffset(_swigarg0))
+static PyObject *_wrap_wxArrowHead_SetYOffset(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxArrowHead_SetYOffset",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_SetYOffset. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxArrowHead_SetYOffset(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxArrowHead_GetMetaFile(_swigobj)  (_swigobj->GetMetaFile())
+static PyObject *_wrap_wxArrowHead_GetMetaFile(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPseudoMetaFile * _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetMetaFile",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetMetaFile. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPseudoMetaFile *)wxArrowHead_GetMetaFile(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPseudoMetaFile_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxArrowHead_GetId(_swigobj)  (_swigobj->GetId())
+static PyObject *_wrap_wxArrowHead_GetId(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    long  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetId",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetId. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxArrowHead_GetId(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetArrowEnd(_swigobj)  (_swigobj->GetArrowEnd())
+static PyObject *_wrap_wxArrowHead_GetArrowEnd(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetArrowEnd",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetArrowEnd. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxArrowHead_GetArrowEnd(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_GetArrowSize(_swigobj)  (_swigobj->GetArrowSize())
+static PyObject *_wrap_wxArrowHead_GetArrowSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxArrowHead * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxArrowHead_GetArrowSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_GetArrowSize. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxArrowHead_GetArrowSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxArrowHead_SetSize(_swigobj,_swigarg0)  (_swigobj->SetSize(_swigarg0))
+static PyObject *_wrap_wxArrowHead_SetSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","size", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxArrowHead_SetSize",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_SetSize. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxArrowHead_SetSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxArrowHead_SetSpacing(_swigobj,_swigarg0)  (_swigobj->SetSpacing(_swigarg0))
+static PyObject *_wrap_wxArrowHead_SetSpacing(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _arg0;
+    double  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","sp", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:wxArrowHead_SetSpacing",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxArrowHead_SetSpacing. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxArrowHead_SetSpacing(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyLineShapeTowxPyShape(void *ptr) {
+    wxPyLineShape *src;
+    wxPyShape *dest;
+    src = (wxPyLineShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyLineShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyLineShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyLineShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyLineShape() (new wxPyLineShape())
+static PyObject *_wrap_new_wxPyLineShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPyLineShape",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyLineShape *)new_wxPyLineShape();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyLineShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyLineShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyLineShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape__setSelf. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_AddArrow(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)  (_swigobj->AddArrow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6))
+static PyObject *_wrap_wxPyLineShape_AddArrow(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    int  _arg2 = (int ) ARROW_POSITION_END;
+    double  _arg3 = (double ) 10.0;
+    double  _arg4 = (double ) 0.0;
+    char * _arg5 = (char *) "";
+    wxPseudoMetaFile * _arg6 = (wxPseudoMetaFile *) NULL;
+    long  _arg7 = (long ) -1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo6 = 0;
+    char *_kwnames[] = { "self","type","end","arrowSize","xOffset","name","mf","arrowId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|iddsOl:wxPyLineShape_AddArrow",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argo6,&_arg7)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_AddArrow. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo6) {
+        if (_argo6 == Py_None) { _arg6 = NULL; }
+        else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxPseudoMetaFile_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxPyLineShape_AddArrow. Expected _wxPseudoMetaFile_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_AddArrow(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void  wxPyLineShape_AddArrowOrdered(wxPyLineShape *self,wxArrowHead * arrow,PyObject * referenceList,int  end) {
+            wxList* list = wxPy_wxListHelper(referenceList, "wxArrowHead");
+            self->AddArrowOrdered(arrow, *list, end);
+            delete list;
+        }
+static PyObject *_wrap_wxPyLineShape_AddArrowOrdered(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxArrowHead * _arg1;
+    PyObject * _arg2;
+    int  _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","arrow","referenceList","end", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOi:wxPyLineShape_AddArrowOrdered",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_AddArrowOrdered. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_AddArrowOrdered. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+{
+  _arg2 = _obj2;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_AddArrowOrdered(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_ClearArrow(_swigobj,_swigarg0)  (_swigobj->ClearArrow(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_ClearArrow(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    wxString * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","name", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_ClearArrow",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_ClearArrow. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj1)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_ClearArrow(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    if (_obj1)
+        delete _arg1;
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_ClearArrowsAtPosition(_swigobj,_swigarg0)  (_swigobj->ClearArrowsAtPosition(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_ClearArrowsAtPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1 = (int ) -1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","position", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyLineShape_ClearArrowsAtPosition",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_ClearArrowsAtPosition. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_ClearArrowsAtPosition(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_DrawArrow(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->DrawArrow(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_DrawArrow(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    wxArrowHead * _arg2;
+    double  _arg3;
+    bool  _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    int tempbool4;
+    char *_kwnames[] = { "self","dc","arrow","xOffset","proportionalOffset", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOdi:wxPyLineShape_DrawArrow",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3,&tempbool4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_DrawArrow. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_DrawArrow. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxArrowHead_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyLineShape_DrawArrow. Expected _wxArrowHead_p.");
+        return NULL;
+        }
+    }
+    _arg4 = (bool ) tempbool4;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_DrawArrow(_arg0,*_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_DeleteArrowHeadId(_swigobj,_swigarg0)  (_swigobj->DeleteArrowHead(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_DeleteArrowHeadId(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    long  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","arrowId", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxPyLineShape_DeleteArrowHeadId",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_DeleteArrowHeadId. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_DeleteArrowHeadId(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_DeleteArrowHead(_swigobj,_swigarg0,_swigarg1)  (_swigobj->DeleteArrowHead(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_DeleteArrowHead(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    wxString * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","position","name", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiO:wxPyLineShape_DeleteArrowHead",_kwnames,&_argo0,&_arg1,&_obj2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_DeleteArrowHead. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj2)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_DeleteArrowHead(_arg0,_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    if (_obj2)
+        delete _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_DeleteLineControlPoint(_swigobj)  (_swigobj->DeleteLineControlPoint())
+static PyObject *_wrap_wxPyLineShape_DeleteLineControlPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_DeleteLineControlPoint",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_DeleteLineControlPoint. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_DeleteLineControlPoint(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_DrawArrows(_swigobj,_swigarg0)  (_swigobj->DrawArrows(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_DrawArrows(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_DrawArrows",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_DrawArrows. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_DrawArrows. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_DrawArrows(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_DrawRegion(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->DrawRegion(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_DrawRegion(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    wxShapeRegion * _arg2;
+    double  _arg3;
+    double  _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","dc","region","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOdd:wxPyLineShape_DrawRegion",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_DrawRegion. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_DrawRegion. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyLineShape_DrawRegion. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_DrawRegion(_arg0,*_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_EraseRegion(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->EraseRegion(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_EraseRegion(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    wxShapeRegion * _arg2;
+    double  _arg3;
+    double  _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","dc","region","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOOdd:wxPyLineShape_EraseRegion",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_EraseRegion. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_EraseRegion. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxShapeRegion_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPyLineShape_EraseRegion. Expected _wxShapeRegion_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_EraseRegion(_arg0,*_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_FindArrowHeadId(_swigobj,_swigarg0)  (_swigobj->FindArrowHead(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_FindArrowHeadId(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _result;
+    wxPyLineShape * _arg0;
+    long  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","arrowId", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxPyLineShape_FindArrowHeadId",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_FindArrowHeadId. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxArrowHead *)wxPyLineShape_FindArrowHeadId(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxArrowHead_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyLineShape_FindArrowHead(_swigobj,_swigarg0,_swigarg1)  (_swigobj->FindArrowHead(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_FindArrowHead(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxArrowHead * _result;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    wxString * _arg2;
+    PyObject * _argo0 = 0;
+    PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","position","name", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiO:wxPyLineShape_FindArrowHead",_kwnames,&_argo0,&_arg1,&_obj2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_FindArrowHead. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    if (!PyString_Check(_obj2)) {
+        PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
+        return NULL;
+    }
+    _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2));
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxArrowHead *)wxPyLineShape_FindArrowHead(_arg0,_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxArrowHead_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+{
+    if (_obj2)
+        delete _arg2;
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_FindLineEndPoints(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->FindLineEndPoints(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_FindLineEndPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double * _arg1;
+    double  temp;
+    double * _arg2;
+    double  temp0;
+    double * _arg3;
+    double  temp1;
+    double * _arg4;
+    double  temp2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+{
+  _arg1 = &temp;
+}
+{
+  _arg2 = &temp0;
+}
+{
+  _arg3 = &temp1;
+}
+{
+  _arg4 = &temp2;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_FindLineEndPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_FindLineEndPoints. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_FindLineEndPoints(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg1));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg2));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg3));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg4));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_FindLinePosition(_swigobj,_swigarg0,_swigarg1)  (_swigobj->FindLinePosition(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_FindLinePosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyLineShape_FindLinePosition",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_FindLinePosition. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyLineShape_FindLinePosition(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_FindMinimumWidth(_swigobj)  (_swigobj->FindMinimumWidth())
+static PyObject *_wrap_wxPyLineShape_FindMinimumWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    double  _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_FindMinimumWidth",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_FindMinimumWidth. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (double )wxPyLineShape_FindMinimumWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("d",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_FindNth(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->FindNth(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_FindNth(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxPyShape * _arg1;
+    int * _arg2;
+    int  temp;
+    int * _arg3;
+    int  temp0;
+    bool  _arg4;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool4;
+    char *_kwnames[] = { "self","image","incoming", NULL };
+
+    self = self;
+{
+  _arg2 = &temp;
+}
+{
+  _arg3 = &temp0;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOi:wxPyLineShape_FindNth",_kwnames,&_argo0,&_argo1,&tempbool4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_FindNth. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_FindNth. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+    _arg4 = (bool ) tempbool4;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_FindNth(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    PyObject *o;
+    o = PyInt_FromLong((long) (*_arg2));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyInt_FromLong((long) (*_arg3));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetAttachmentFrom(_swigobj)  (_swigobj->GetAttachmentFrom())
+static PyObject *_wrap_wxPyLineShape_GetAttachmentFrom(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_GetAttachmentFrom",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetAttachmentFrom. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyLineShape_GetAttachmentFrom(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetAttachmentTo(_swigobj)  (_swigobj->GetAttachmentTo())
+static PyObject *_wrap_wxPyLineShape_GetAttachmentTo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_GetAttachmentTo",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetAttachmentTo. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPyLineShape_GetAttachmentTo(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetEnds(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->GetEnds(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_GetEnds(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double * _arg1;
+    double  temp;
+    double * _arg2;
+    double  temp0;
+    double * _arg3;
+    double  temp1;
+    double * _arg4;
+    double  temp2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+{
+  _arg1 = &temp;
+}
+{
+  _arg2 = &temp0;
+}
+{
+  _arg3 = &temp1;
+}
+{
+  _arg4 = &temp2;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_GetEnds",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetEnds. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_GetEnds(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg1));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg2));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg3));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg4));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetFrom(_swigobj)  (_swigobj->GetFrom())
+static PyObject *_wrap_wxPyLineShape_GetFrom(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_GetFrom",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetFrom. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyLineShape_GetFrom(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetLabelPosition(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->GetLabelPosition(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxPyLineShape_GetLabelPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    double * _arg2;
+    double  temp;
+    double * _arg3;
+    double  temp0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","position", NULL };
+
+    self = self;
+{
+  _arg2 = &temp;
+}
+{
+  _arg3 = &temp0;
+}
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyLineShape_GetLabelPosition",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetLabelPosition. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_GetLabelPosition(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg2));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+{
+    PyObject *o;
+    o = PyFloat_FromDouble((double) (*_arg3));
+    _resultobj = t_output_helper(_resultobj, o);
+}
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetNextControlPoint(_swigobj,_swigarg0)  (_swigobj->GetNextControlPoint(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_GetNextControlPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPoint * _result;
+    wxPyLineShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_GetNextControlPoint",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetNextControlPoint. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_GetNextControlPoint. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPoint *)wxPyLineShape_GetNextControlPoint(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyLineShape_GetTo(_swigobj)  (_swigobj->GetTo())
+static PyObject *_wrap_wxPyLineShape_GetTo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyShape * _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_GetTo",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_GetTo. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyShape *)wxPyLineShape_GetTo(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyLineShape_Initialise(_swigobj)  (_swigobj->Initialise())
+static PyObject *_wrap_wxPyLineShape_Initialise(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_Initialise",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_Initialise. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_Initialise(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_InsertLineControlPoint(_swigobj,_swigarg0)  (_swigobj->InsertLineControlPoint(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_InsertLineControlPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_InsertLineControlPoint",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_InsertLineControlPoint. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_InsertLineControlPoint. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_InsertLineControlPoint(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_IsEnd(_swigobj,_swigarg0)  (_swigobj->IsEnd(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_IsEnd(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","shape", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_IsEnd",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_IsEnd. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_IsEnd. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_IsEnd(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_IsSpline(_swigobj)  (_swigobj->IsSpline())
+static PyObject *_wrap_wxPyLineShape_IsSpline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_IsSpline",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_IsSpline. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_IsSpline(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_MakeLineControlPoints(_swigobj,_swigarg0)  (_swigobj->MakeLineControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_MakeLineControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","n", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyLineShape_MakeLineControlPoints",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_MakeLineControlPoints. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_MakeLineControlPoints(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetAttachmentFrom(_swigobj,_swigarg0)  (_swigobj->SetAttachmentFrom(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_SetAttachmentFrom(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","fromAttach", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyLineShape_SetAttachmentFrom",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetAttachmentFrom. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetAttachmentFrom(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetAttachments(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetAttachments(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_SetAttachments(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    int  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","fromAttach","toAttach", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxPyLineShape_SetAttachments",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetAttachments. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetAttachments(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetAttachmentTo(_swigobj,_swigarg0)  (_swigobj->SetAttachmentTo(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_SetAttachmentTo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","toAttach", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyLineShape_SetAttachmentTo",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetAttachmentTo. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetAttachmentTo(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetEnds(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->SetEnds(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_SetEnds(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x1","y1","x2","y2", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odddd:wxPyLineShape_SetEnds",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetEnds. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetEnds(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetFrom(_swigobj,_swigarg0)  (_swigobj->SetFrom(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_SetFrom(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","object", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_SetFrom",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetFrom. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_SetFrom. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetFrom(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetIgnoreOffsets(_swigobj,_swigarg0)  (_swigobj->SetIgnoreOffsets(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_SetIgnoreOffsets(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","ignore", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyLineShape_SetIgnoreOffsets",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetIgnoreOffsets. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetIgnoreOffsets(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetSpline(_swigobj,_swigarg0)  (_swigobj->SetSpline(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_SetSpline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","spline", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxPyLineShape_SetSpline",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetSpline. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetSpline(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_SetTo(_swigobj,_swigarg0)  (_swigobj->SetTo(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_SetTo(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxPyShape * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","object", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_SetTo",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_SetTo. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPyShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_SetTo. Expected _wxPyShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_SetTo(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_Straighten(_swigobj,_swigarg0)  (_swigobj->Straighten(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_Straighten(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1 = (wxDC *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|O:wxPyLineShape_Straighten",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_Straighten. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_Straighten. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_Straighten(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_Unlink(_swigobj)  (_swigobj->Unlink())
+static PyObject *_wrap_wxPyLineShape_Unlink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyLineShape_Unlink",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_Unlink. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_Unlink(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDraw. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDrawContents. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyLineShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDrawBranches. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnMoveLinks. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnErase. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnEraseContents. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnHighlight. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnLeftClick. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnLeftDoubleClick. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnRightClick. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyLineShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnSize. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyLineShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyLineShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnMovePre. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyLineShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyLineShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyLineShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnMovePost. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyLineShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyLineShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDragLeft. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnBeginDragLeft. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnEndDragLeft. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyLineShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyLineShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDragRight. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnBeginDragRight. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyLineShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyLineShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnEndDragRight. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyLineShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyLineShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDrawOutline. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnDrawControlPoints. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyLineShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyLineShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnEraseControlPoints. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyLineShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnMoveLink. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyLineShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyLineShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnSizingDragLeft. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyLineShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyLineShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnSizingBeginDragLeft. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyLineShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyLineShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnSizingEndDragLeft. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyLineShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyLineShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnBeginSize. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyLineShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyLineShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyLineShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyLineShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyLineShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyLineShape_base_OnEndSize. Expected _wxPyLineShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyLineShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyPolygonShapeTowxPyShape(void *ptr) {
+    wxPyPolygonShape *src;
+    wxPyShape *dest;
+    src = (wxPyPolygonShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyPolygonShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyPolygonShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyPolygonShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyPolygonShape() (new wxPyPolygonShape())
+static PyObject *_wrap_new_wxPyPolygonShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPyPolygonShape",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyPolygonShape *)new_wxPyPolygonShape();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyPolygonShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyPolygonShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape__setSelf. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyObject * wxPyPolygonShape_Create(wxPyPolygonShape *self,PyObject * points) {
+            wxList* list = wxPy_wxRealPoint_ListHelper(points);
+            if (list) {
+                self->Create(list);
+                Py_INCREF(Py_None);
+                return Py_None;
+            }
+            else return NULL;
+        }
+static PyObject *_wrap_wxPyPolygonShape_Create(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyPolygonShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","points", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_Create",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_Create. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyPolygonShape_Create(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_AddPolygonPoint(_swigobj,_swigarg0)  (_swigobj->AddPolygonPoint(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_AddPolygonPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    int  _arg1 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","pos", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyPolygonShape_AddPolygonPoint",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_AddPolygonPoint. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_AddPolygonPoint(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_CalculatePolygonCentre(_swigobj)  (_swigobj->CalculatePolygonCentre())
+static PyObject *_wrap_wxPyPolygonShape_CalculatePolygonCentre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyPolygonShape_CalculatePolygonCentre",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_CalculatePolygonCentre. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_CalculatePolygonCentre(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_DeletePolygonPoint(_swigobj,_swigarg0)  (_swigobj->DeletePolygonPoint(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_DeletePolygonPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    int  _arg1 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","pos", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxPyPolygonShape_DeletePolygonPoint",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_DeletePolygonPoint. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_DeletePolygonPoint(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyObject * wxPyPolygonShape_GetPoints(wxPyPolygonShape *self) {
+            wxList* list = self->GetPoints();
+            return wxPy_ConvertList(list, "wxRealPoint");
+        }
+static PyObject *_wrap_wxPyPolygonShape_GetPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxPyPolygonShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyPolygonShape_GetPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_GetPoints. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxPyPolygonShape_GetPoints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_UpdateOriginalPoints(_swigobj)  (_swigobj->UpdateOriginalPoints())
+static PyObject *_wrap_wxPyPolygonShape_UpdateOriginalPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyPolygonShape_UpdateOriginalPoints",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_UpdateOriginalPoints. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_UpdateOriginalPoints(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDraw. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDrawContents. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyPolygonShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDrawBranches. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnMoveLinks. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnErase. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnEraseContents. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnHighlight. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnLeftClick. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnLeftDoubleClick. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnRightClick. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyPolygonShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyPolygonShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnSize. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyPolygonShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyPolygonShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnMovePre. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyPolygonShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyPolygonShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyPolygonShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnMovePost. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyPolygonShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDragLeft. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnBeginDragLeft. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnEndDragLeft. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyPolygonShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDragRight. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnBeginDragRight. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyPolygonShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyPolygonShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnEndDragRight. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyPolygonShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDrawOutline. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnDrawControlPoints. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyPolygonShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyPolygonShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnEraseControlPoints. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyPolygonShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyPolygonShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnMoveLink. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyPolygonShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyPolygonShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnSizingDragLeft. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyPolygonShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyPolygonShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnSizingBeginDragLeft. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyPolygonShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyPolygonShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnSizingEndDragLeft. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyPolygonShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyPolygonShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyPolygonShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnBeginSize. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyPolygonShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyPolygonShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyPolygonShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyPolygonShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyPolygonShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyPolygonShape_base_OnEndSize. Expected _wxPyPolygonShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyPolygonShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxPyTextShapeTowxPyRectangleShape(void *ptr) {
+    wxPyTextShape *src;
+    wxPyRectangleShape *dest;
+    src = (wxPyTextShape *) ptr;
+    dest = (wxPyRectangleShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyTextShapeTowxPyShape(void *ptr) {
+    wxPyTextShape *src;
+    wxPyShape *dest;
+    src = (wxPyTextShape *) ptr;
+    dest = (wxPyShape *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxPyTextShapeTowxPyShapeEvtHandler(void *ptr) {
+    wxPyTextShape *src;
+    wxPyShapeEvtHandler *dest;
+    src = (wxPyTextShape *) ptr;
+    dest = (wxPyShapeEvtHandler *) src;
+    return (void *) dest;
+}
+
+#define new_wxPyTextShape(_swigarg0,_swigarg1) (new wxPyTextShape(_swigarg0,_swigarg1))
+static PyObject *_wrap_new_wxPyTextShape(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _result;
+    double  _arg0 = (double ) 0.0;
+    double  _arg1 = (double ) 0.0;
+    char *_kwnames[] = { "width","height", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|dd:new_wxPyTextShape",_kwnames,&_arg0,&_arg1)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPyTextShape *)new_wxPyTextShape(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTextShape_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxPyTextShape__setSelf(_swigobj,_swigarg0)  (_swigobj->_setSelf(_swigarg0))
+static PyObject *_wrap_wxPyTextShape__setSelf(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    PyObject * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape__setSelf",_kwnames,&_argo0,&_obj1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape__setSelf. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+  _arg1 = _obj1;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape__setSelf(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDelete(_swigobj)  (_swigobj->base_OnDelete())
+static PyObject *_wrap_wxPyTextShape_base_OnDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxPyTextShape_base_OnDelete",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDelete. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDelete(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDraw(_swigobj,_swigarg0)  (_swigobj->base_OnDraw(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnDraw(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnDraw",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDraw. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnDraw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDraw(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDrawContents(_swigobj,_swigarg0)  (_swigobj->base_OnDrawContents(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnDrawContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnDrawContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDrawContents. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnDrawContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDrawContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDrawBranches(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnDrawBranches(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyTextShape_base_OnDrawBranches(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) FALSE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) FALSE;
+    char *_kwnames[] = { "self","dc","erase", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyTextShape_base_OnDrawBranches",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDrawBranches. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnDrawBranches. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDrawBranches(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnMoveLinks(_swigobj,_swigarg0)  (_swigobj->base_OnMoveLinks(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnMoveLinks(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnMoveLinks",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnMoveLinks. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnMoveLinks. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnMoveLinks(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnErase(_swigobj,_swigarg0)  (_swigobj->base_OnErase(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnErase(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnErase",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnErase. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnErase. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnErase(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnEraseContents(_swigobj,_swigarg0)  (_swigobj->base_OnEraseContents(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnEraseContents(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnEraseContents",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnEraseContents. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnEraseContents. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnEraseContents(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnHighlight(_swigobj,_swigarg0)  (_swigobj->base_OnHighlight(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnHighlight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnHighlight",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnHighlight. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnHighlight. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnHighlight(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnLeftClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnLeftClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnLeftClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnLeftClick. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnLeftDoubleClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnLeftDoubleClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnLeftDoubleClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnLeftDoubleClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnLeftDoubleClick. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnLeftDoubleClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnRightClick(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnRightClick(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnRightClick(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnRightClick",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnRightClick. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnRightClick(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyTextShape_base_OnSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyTextShape_base_OnSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnSize. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnMovePre(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePre(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyTextShape_base_OnMovePre(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyTextShape_base_OnMovePre",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnMovePre. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnMovePre. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPyTextShape_base_OnMovePre(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnMovePost(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnMovePost(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyTextShape_base_OnMovePost(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    bool  _arg6 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool6 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","x","y","old_x","old_y","display", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd|i:wxPyTextShape_base_OnMovePost",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnMovePost. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnMovePost. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnMovePost(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyTextShape_base_OnDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyTextShape_base_OnDragLeft",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDragLeft. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnBeginDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnBeginDragLeft. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnEndDragLeft",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnEndDragLeft. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyTextShape_base_OnDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    bool  _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oidd|ii:wxPyTextShape_base_OnDragRight",_kwnames,&_argo0,&tempbool1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDragRight. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnBeginDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnBeginDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnBeginDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnBeginDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnBeginDragRight. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnEndDragRight(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->base_OnEndDragRight(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
+static PyObject *_wrap_wxPyTextShape_base_OnEndDragRight(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    int  _arg3 = (int ) 0;
+    int  _arg4 = (int ) 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|ii:wxPyTextShape_base_OnEndDragRight",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnEndDragRight. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDrawOutline(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnDrawOutline(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyTextShape_base_OnDrawOutline(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    double  _arg2;
+    double  _arg3;
+    double  _arg4;
+    double  _arg5;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc","x","y","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdddd:wxPyTextShape_base_OnDrawOutline",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDrawOutline. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnDrawOutline. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnDrawControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnDrawControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnDrawControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnDrawControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnDrawControlPoints. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnDrawControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnDrawControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnEraseControlPoints(_swigobj,_swigarg0)  (_swigobj->base_OnEraseControlPoints(_swigarg0))
+static PyObject *_wrap_wxPyTextShape_base_OnEraseControlPoints(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","dc", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxPyTextShape_base_OnEraseControlPoints",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnEraseControlPoints. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnEraseControlPoints. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnEraseControlPoints(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnMoveLink(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnMoveLink(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyTextShape_base_OnMoveLink(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxDC * _arg1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","dc","moveControlPoints", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|i:wxPyTextShape_base_OnMoveLink",_kwnames,&_argo0,&_argo1,&tempbool2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnMoveLink. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnMoveLink. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnMoveLink(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnSizingDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->base_OnSizingDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxPyTextShape_base_OnSizingDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxControlPoint * _arg1;
+    bool  _arg2;
+    double  _arg3;
+    double  _arg4;
+    int  _arg5 = (int ) 0;
+    int  _arg6 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    int tempbool2;
+    char *_kwnames[] = { "self","pt","draw","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOidd|ii:wxPyTextShape_base_OnSizingDragLeft",_kwnames,&_argo0,&_argo1,&tempbool2,&_arg3,&_arg4,&_arg5,&_arg6)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnSizingDragLeft. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnSizingDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+    _arg2 = (bool ) tempbool2;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnSizingDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnSizingBeginDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingBeginDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyTextShape_base_OnSizingBeginDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyTextShape_base_OnSizingBeginDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnSizingBeginDragLeft. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnSizingBeginDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnSizingBeginDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnSizingEndDragLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->base_OnSizingEndDragLeft(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
+static PyObject *_wrap_wxPyTextShape_base_OnSizingEndDragLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    wxControlPoint * _arg1;
+    double  _arg2;
+    double  _arg3;
+    int  _arg4 = (int ) 0;
+    int  _arg5 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pt","x","y","keys","attachment", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOdd|ii:wxPyTextShape_base_OnSizingEndDragLeft",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnSizingEndDragLeft. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxControlPoint_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyTextShape_base_OnSizingEndDragLeft. Expected _wxControlPoint_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnSizingEndDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnBeginSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnBeginSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyTextShape_base_OnBeginSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyTextShape_base_OnBeginSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnBeginSize. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnBeginSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxPyTextShape_base_OnEndSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->base_OnEndSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxPyTextShape_base_OnEndSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPyTextShape * _arg0;
+    double  _arg1;
+    double  _arg2;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","w","h", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd:wxPyTextShape_base_OnEndSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTextShape_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTextShape_base_OnEndSize. Expected _wxPyTextShape_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPyTextShape_base_OnEndSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static PyMethodDef oglshapes2cMethods[] = {
+	 { "wxPyTextShape_base_OnEndSize", (PyCFunction) _wrap_wxPyTextShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyTextShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyTextShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyTextShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyTextShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyTextShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyTextShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyTextShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyTextShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyTextShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyTextShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDragRight", (PyCFunction) _wrap_wxPyTextShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyTextShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyTextShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyTextShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnMovePost", (PyCFunction) _wrap_wxPyTextShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnMovePre", (PyCFunction) _wrap_wxPyTextShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnSize", (PyCFunction) _wrap_wxPyTextShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnRightClick", (PyCFunction) _wrap_wxPyTextShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyTextShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyTextShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnHighlight", (PyCFunction) _wrap_wxPyTextShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyTextShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnErase", (PyCFunction) _wrap_wxPyTextShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyTextShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyTextShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyTextShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDraw", (PyCFunction) _wrap_wxPyTextShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape_base_OnDelete", (PyCFunction) _wrap_wxPyTextShape_base_OnDelete, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyTextShape__setSelf", (PyCFunction) _wrap_wxPyTextShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyTextShape", (PyCFunction) _wrap_new_wxPyTextShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnEndSize", (PyCFunction) _wrap_wxPyPolygonShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyPolygonShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyPolygonShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyPolygonShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyPolygonShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyPolygonShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyPolygonShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyPolygonShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyPolygonShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDragRight", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyPolygonShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyPolygonShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnMovePost", (PyCFunction) _wrap_wxPyPolygonShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnMovePre", (PyCFunction) _wrap_wxPyPolygonShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnSize", (PyCFunction) _wrap_wxPyPolygonShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnRightClick", (PyCFunction) _wrap_wxPyPolygonShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyPolygonShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyPolygonShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnHighlight", (PyCFunction) _wrap_wxPyPolygonShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyPolygonShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnErase", (PyCFunction) _wrap_wxPyPolygonShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyPolygonShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_base_OnDraw", (PyCFunction) _wrap_wxPyPolygonShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_UpdateOriginalPoints", (PyCFunction) _wrap_wxPyPolygonShape_UpdateOriginalPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_GetPoints", (PyCFunction) _wrap_wxPyPolygonShape_GetPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_DeletePolygonPoint", (PyCFunction) _wrap_wxPyPolygonShape_DeletePolygonPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_CalculatePolygonCentre", (PyCFunction) _wrap_wxPyPolygonShape_CalculatePolygonCentre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_AddPolygonPoint", (PyCFunction) _wrap_wxPyPolygonShape_AddPolygonPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape_Create", (PyCFunction) _wrap_wxPyPolygonShape_Create, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyPolygonShape__setSelf", (PyCFunction) _wrap_wxPyPolygonShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyPolygonShape", (PyCFunction) _wrap_new_wxPyPolygonShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnEndSize", (PyCFunction) _wrap_wxPyLineShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyLineShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyLineShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyLineShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyLineShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyLineShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyLineShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyLineShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyLineShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyLineShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyLineShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDragRight", (PyCFunction) _wrap_wxPyLineShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyLineShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyLineShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyLineShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnMovePost", (PyCFunction) _wrap_wxPyLineShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnMovePre", (PyCFunction) _wrap_wxPyLineShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnSize", (PyCFunction) _wrap_wxPyLineShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnRightClick", (PyCFunction) _wrap_wxPyLineShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyLineShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyLineShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnHighlight", (PyCFunction) _wrap_wxPyLineShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyLineShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnErase", (PyCFunction) _wrap_wxPyLineShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyLineShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyLineShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyLineShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_base_OnDraw", (PyCFunction) _wrap_wxPyLineShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_Unlink", (PyCFunction) _wrap_wxPyLineShape_Unlink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_Straighten", (PyCFunction) _wrap_wxPyLineShape_Straighten, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetTo", (PyCFunction) _wrap_wxPyLineShape_SetTo, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetSpline", (PyCFunction) _wrap_wxPyLineShape_SetSpline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetIgnoreOffsets", (PyCFunction) _wrap_wxPyLineShape_SetIgnoreOffsets, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetFrom", (PyCFunction) _wrap_wxPyLineShape_SetFrom, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetEnds", (PyCFunction) _wrap_wxPyLineShape_SetEnds, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetAttachmentTo", (PyCFunction) _wrap_wxPyLineShape_SetAttachmentTo, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetAttachments", (PyCFunction) _wrap_wxPyLineShape_SetAttachments, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_SetAttachmentFrom", (PyCFunction) _wrap_wxPyLineShape_SetAttachmentFrom, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_MakeLineControlPoints", (PyCFunction) _wrap_wxPyLineShape_MakeLineControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_IsSpline", (PyCFunction) _wrap_wxPyLineShape_IsSpline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_IsEnd", (PyCFunction) _wrap_wxPyLineShape_IsEnd, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_InsertLineControlPoint", (PyCFunction) _wrap_wxPyLineShape_InsertLineControlPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_Initialise", (PyCFunction) _wrap_wxPyLineShape_Initialise, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetTo", (PyCFunction) _wrap_wxPyLineShape_GetTo, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetNextControlPoint", (PyCFunction) _wrap_wxPyLineShape_GetNextControlPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetLabelPosition", (PyCFunction) _wrap_wxPyLineShape_GetLabelPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetFrom", (PyCFunction) _wrap_wxPyLineShape_GetFrom, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetEnds", (PyCFunction) _wrap_wxPyLineShape_GetEnds, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetAttachmentTo", (PyCFunction) _wrap_wxPyLineShape_GetAttachmentTo, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_GetAttachmentFrom", (PyCFunction) _wrap_wxPyLineShape_GetAttachmentFrom, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_FindNth", (PyCFunction) _wrap_wxPyLineShape_FindNth, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_FindMinimumWidth", (PyCFunction) _wrap_wxPyLineShape_FindMinimumWidth, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_FindLinePosition", (PyCFunction) _wrap_wxPyLineShape_FindLinePosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_FindLineEndPoints", (PyCFunction) _wrap_wxPyLineShape_FindLineEndPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_FindArrowHead", (PyCFunction) _wrap_wxPyLineShape_FindArrowHead, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_FindArrowHeadId", (PyCFunction) _wrap_wxPyLineShape_FindArrowHeadId, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_EraseRegion", (PyCFunction) _wrap_wxPyLineShape_EraseRegion, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_DrawRegion", (PyCFunction) _wrap_wxPyLineShape_DrawRegion, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_DrawArrows", (PyCFunction) _wrap_wxPyLineShape_DrawArrows, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_DeleteLineControlPoint", (PyCFunction) _wrap_wxPyLineShape_DeleteLineControlPoint, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_DeleteArrowHead", (PyCFunction) _wrap_wxPyLineShape_DeleteArrowHead, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_DeleteArrowHeadId", (PyCFunction) _wrap_wxPyLineShape_DeleteArrowHeadId, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_DrawArrow", (PyCFunction) _wrap_wxPyLineShape_DrawArrow, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_ClearArrowsAtPosition", (PyCFunction) _wrap_wxPyLineShape_ClearArrowsAtPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_ClearArrow", (PyCFunction) _wrap_wxPyLineShape_ClearArrow, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_AddArrowOrdered", (PyCFunction) _wrap_wxPyLineShape_AddArrowOrdered, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape_AddArrow", (PyCFunction) _wrap_wxPyLineShape_AddArrow, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyLineShape__setSelf", (PyCFunction) _wrap_wxPyLineShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyLineShape", (PyCFunction) _wrap_new_wxPyLineShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_SetSpacing", (PyCFunction) _wrap_wxArrowHead_SetSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_SetSize", (PyCFunction) _wrap_wxArrowHead_SetSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetArrowSize", (PyCFunction) _wrap_wxArrowHead_GetArrowSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetArrowEnd", (PyCFunction) _wrap_wxArrowHead_GetArrowEnd, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetId", (PyCFunction) _wrap_wxArrowHead_GetId, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetMetaFile", (PyCFunction) _wrap_wxArrowHead_GetMetaFile, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_SetYOffset", (PyCFunction) _wrap_wxArrowHead_SetYOffset, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_SetXOffset", (PyCFunction) _wrap_wxArrowHead_SetXOffset, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetName", (PyCFunction) _wrap_wxArrowHead_GetName, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetSize", (PyCFunction) _wrap_wxArrowHead_GetSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetSpacing", (PyCFunction) _wrap_wxArrowHead_GetSpacing, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetYOffset", (PyCFunction) _wrap_wxArrowHead_GetYOffset, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetXOffset", (PyCFunction) _wrap_wxArrowHead_GetXOffset, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_SetPosition", (PyCFunction) _wrap_wxArrowHead_SetPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead_GetPosition", (PyCFunction) _wrap_wxArrowHead_GetPosition, METH_VARARGS | METH_KEYWORDS },
+	 { "wxArrowHead__GetType", (PyCFunction) _wrap_wxArrowHead__GetType, METH_VARARGS | METH_KEYWORDS },
+	 { "delete_wxArrowHead", (PyCFunction) _wrap_delete_wxArrowHead, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxArrowHead", (PyCFunction) _wrap_new_wxArrowHead, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnEndSize", (PyCFunction) _wrap_wxPyCircleShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyCircleShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyCircleShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyCircleShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyCircleShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyCircleShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyCircleShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyCircleShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyCircleShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyCircleShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyCircleShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDragRight", (PyCFunction) _wrap_wxPyCircleShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyCircleShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyCircleShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyCircleShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnMovePost", (PyCFunction) _wrap_wxPyCircleShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnMovePre", (PyCFunction) _wrap_wxPyCircleShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnSize", (PyCFunction) _wrap_wxPyCircleShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnRightClick", (PyCFunction) _wrap_wxPyCircleShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyCircleShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyCircleShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnHighlight", (PyCFunction) _wrap_wxPyCircleShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyCircleShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnErase", (PyCFunction) _wrap_wxPyCircleShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyCircleShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyCircleShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyCircleShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape_base_OnDraw", (PyCFunction) _wrap_wxPyCircleShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyCircleShape__setSelf", (PyCFunction) _wrap_wxPyCircleShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyCircleShape", (PyCFunction) _wrap_new_wxPyCircleShape, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnEndSize", (PyCFunction) _wrap_wxPyEllipseShape_base_OnEndSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnBeginSize", (PyCFunction) _wrap_wxPyEllipseShape_base_OnBeginSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnSizingEndDragLeft", (PyCFunction) _wrap_wxPyEllipseShape_base_OnSizingEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnSizingBeginDragLeft", (PyCFunction) _wrap_wxPyEllipseShape_base_OnSizingBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnSizingDragLeft", (PyCFunction) _wrap_wxPyEllipseShape_base_OnSizingDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnMoveLink", (PyCFunction) _wrap_wxPyEllipseShape_base_OnMoveLink, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnEraseControlPoints", (PyCFunction) _wrap_wxPyEllipseShape_base_OnEraseControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDrawControlPoints", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDrawControlPoints, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDrawOutline", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDrawOutline, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnEndDragRight", (PyCFunction) _wrap_wxPyEllipseShape_base_OnEndDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnBeginDragRight", (PyCFunction) _wrap_wxPyEllipseShape_base_OnBeginDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDragRight", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDragRight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnEndDragLeft", (PyCFunction) _wrap_wxPyEllipseShape_base_OnEndDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnBeginDragLeft", (PyCFunction) _wrap_wxPyEllipseShape_base_OnBeginDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDragLeft", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDragLeft, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnMovePost", (PyCFunction) _wrap_wxPyEllipseShape_base_OnMovePost, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnMovePre", (PyCFunction) _wrap_wxPyEllipseShape_base_OnMovePre, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnSize", (PyCFunction) _wrap_wxPyEllipseShape_base_OnSize, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnRightClick", (PyCFunction) _wrap_wxPyEllipseShape_base_OnRightClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnLeftDoubleClick", (PyCFunction) _wrap_wxPyEllipseShape_base_OnLeftDoubleClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnLeftClick", (PyCFunction) _wrap_wxPyEllipseShape_base_OnLeftClick, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnHighlight", (PyCFunction) _wrap_wxPyEllipseShape_base_OnHighlight, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnEraseContents", (PyCFunction) _wrap_wxPyEllipseShape_base_OnEraseContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnErase", (PyCFunction) _wrap_wxPyEllipseShape_base_OnErase, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnMoveLinks", (PyCFunction) _wrap_wxPyEllipseShape_base_OnMoveLinks, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDrawBranches", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDrawBranches, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDrawContents", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDrawContents, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape_base_OnDraw", (PyCFunction) _wrap_wxPyEllipseShape_base_OnDraw, METH_VARARGS | METH_KEYWORDS },
+	 { "wxPyEllipseShape__setSelf", (PyCFunction) _wrap_wxPyEllipseShape__setSelf, METH_VARARGS | METH_KEYWORDS },
+	 { "new_wxPyEllipseShape", (PyCFunction) _wrap_new_wxPyEllipseShape, METH_VARARGS | METH_KEYWORDS },
+	 { NULL, NULL }
+};
+#ifdef __cplusplus
+}
+#endif
+/*
+ * This table is used by the pointer type-checker
+ */
+static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
+    { "_wxAcceleratorTable","_class_wxAcceleratorTable",0},
+    { "_wxEvent","_class_wxEvent",0},
+    { "_class_wxActivateEvent","_wxActivateEvent",0},
+    { "_signed_long","_long",0},
+    { "_wxMenuEvent","_class_wxMenuEvent",0},
+    { "_class_wxJPEGHandler","_wxJPEGHandler",0},
+    { "_wxBMPHandler","_class_wxBMPHandler",0},
+    { "_wxImage","_class_wxImage",0},
+    { "_wxPrintQuality","_int",0},
+    { "_wxPrintQuality","_signed_int",0},
+    { "_wxPrintQuality","_unsigned_int",0},
+    { "_wxPrintQuality","_wxWindowID",0},
+    { "_wxPrintQuality","_uint",0},
+    { "_wxPrintQuality","_EBool",0},
+    { "_wxPrintQuality","_size_t",0},
+    { "_wxFontData","_class_wxFontData",0},
+    { "___wxPyCleanup","_class___wxPyCleanup",0},
+    { "_class_wxRegionIterator","_wxRegionIterator",0},
+    { "_class_wxMenuBar","_wxMenuBar",0},
+    { "_class_wxPyTreeItemData","_wxPyTreeItemData",0},
+    { "_class_wxEvtHandler","_wxEvtHandler",0},
+    { "_wxPaintEvent","_class_wxPaintEvent",0},
+    { "_wxGIFHandler","_class_wxGIFHandler",0},
+    { "_wxPyCompositeShape","_class_wxPyCompositeShape",0},
+    { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
+    { "_wxCursor","_class_wxCursor",0},
+    { "_wxNotifyEvent","_class_wxNotifyEvent",0},
+    { "_wxImageHandler","_class_wxImageHandler",0},
+    { "_class_wxPyRectangleShape","_class_wxPyTextShape",SwigwxPyTextShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyTextShape",SwigwxPyTextShapeTowxPyRectangleShape},
+    { "_class_wxPyRectangleShape","_wxPyRectangleShape",0},
+    { "_class_wxTreeCtrl","_wxTreeCtrl",0},
+    { "_wxMask","_class_wxMask",0},
+    { "_wxToolTip","_class_wxToolTip",0},
+    { "_wxGrid","_class_wxGrid",0},
+    { "_wxPNGHandler","_class_wxPNGHandler",0},
+    { "_class_wxOGLConstraint","_wxOGLConstraint",0},
+    { "_class_wxColourData","_wxColourData",0},
+    { "_class_wxPageSetupDialogData","_wxPageSetupDialogData",0},
+    { "_wxPrinter","_class_wxPrinter",0},
+    { "_wxPseudoMetaFile","_class_wxPseudoMetaFile",0},
+    { "_class_wxArrowHead","_wxArrowHead",0},
+    { "_wxPen","_class_wxPen",0},
+    { "_wxUpdateUIEvent","_class_wxUpdateUIEvent",0},
+    { "_byte","_unsigned_char",0},
+    { "_wxStaticBox","_class_wxStaticBox",0},
+    { "_wxChoice","_class_wxChoice",0},
+    { "_wxSlider","_class_wxSlider",0},
+    { "_wxNotebookEvent","_class_wxNotebookEvent",0},
+    { "_wxPyPrintout","_class_wxPyPrintout",0},
+    { "_wxShapeRegion","_class_wxShapeRegion",0},
+    { "_long","_wxDash",0},
+    { "_long","_unsigned_long",0},
+    { "_long","_signed_long",0},
+    { "_wxImageList","_class_wxImageList",0},
+    { "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
+    { "_wxBitmapButton","_class_wxBitmapButton",0},
+    { "_wxSashWindow","_class_wxSashWindow",0},
+    { "_class_wxPrintDialogData","_wxPrintDialogData",0},
+    { "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
+    { "_class_wxGauge","_wxGauge",0},
+    { "_class_wxSashEvent","_wxSashEvent",0},
+    { "_wxDC","_class_wxDC",0},
+    { "_wxListEvent","_class_wxListEvent",0},
+    { "_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0},
+    { "_wxProgressDialog","_class_wxProgressDialog",0},
+    { "_class_wxBMPHandler","_wxBMPHandler",0},
+    { "_wxPrintPreview","_class_wxPrintPreview",0},
+    { "_wxSpinEvent","_class_wxSpinEvent",0},
+    { "_wxSashLayoutWindow","_class_wxSashLayoutWindow",0},
+    { "_wxPyBitmapShape","_class_wxPyBitmapShape",0},
+    { "_class_wxPyEllipseShape","_class_wxPyCircleShape",SwigwxPyCircleShapeTowxPyEllipseShape},
+    { "_class_wxPyEllipseShape","_wxPyCircleShape",SwigwxPyCircleShapeTowxPyEllipseShape},
+    { "_class_wxPyEllipseShape","_wxPyEllipseShape",0},
+    { "_size_t","_wxPrintQuality",0},
+    { "_size_t","_unsigned_int",0},
+    { "_size_t","_int",0},
+    { "_size_t","_wxWindowID",0},
+    { "_size_t","_uint",0},
+    { "_class_wxRealPoint","_wxRealPoint",0},
+    { "_wxPrinterDC","_class_wxPrinterDC",0},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyTextShape",SwigwxPyTextShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyTextShape",SwigwxPyTextShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyLineShape",SwigwxPyLineShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyLineShape",SwigwxPyLineShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_class_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShapeEvtHandler},
+    { "_class_wxPyShapeEvtHandler","_wxPyShapeEvtHandler",0},
+    { "_class_wxMenuItem","_wxMenuItem",0},
+    { "_class_wxPaintEvent","_wxPaintEvent",0},
+    { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
+    { "_class_wxStatusBar","_wxStatusBar",0},
+    { "_class_wxGIFHandler","_wxGIFHandler",0},
+    { "_class_wxPyCompositeShape","_wxPyCompositeShape",0},
+    { "_wxPyPolygonShape","_class_wxPyPolygonShape",0},
+    { "_wxPanel","_class_wxPanel",0},
+    { "_wxInitDialogEvent","_class_wxInitDialogEvent",0},
+    { "_wxCheckBox","_class_wxCheckBox",0},
+    { "_wxPyEvent","_class_wxPyEvent",0},
+    { "_wxTextCtrl","_class_wxTextCtrl",0},
+    { "_class_wxMask","_wxMask",0},
+    { "_class_wxToolTip","_wxToolTip",0},
+    { "_class_wxKeyEvent","_wxKeyEvent",0},
+    { "_class_wxGrid","_wxGrid",0},
+    { "_class_wxPNGHandler","_wxPNGHandler",0},
+    { "_wxColour","_class_wxColour",0},
+    { "_class_wxDialog","_wxDialog",0},
+    { "_wxPageSetupDialog","_class_wxPageSetupDialog",0},
+    { "_class_wxPrinter","_wxPrinter",0},
+    { "_wxIdleEvent","_class_wxIdleEvent",0},
+    { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
+    { "_wxToolBar","_class_wxToolBar",0},
+    { "_wxStaticLine","_class_wxStaticLine",0},
+    { "_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0},
+    { "_wxBrush","_class_wxBrush",0},
+    { "_wxMiniFrame","_class_wxMiniFrame",0},
+    { "_class_wxNotebookEvent","_wxNotebookEvent",0},
+    { "_class_wxPyPrintout","_wxPyPrintout",0},
+    { "_class_wxSashWindow","_wxSashWindow",0},
+    { "_wxShowEvent","_class_wxShowEvent",0},
+    { "_class_wxPyDivisionShape","_wxPyDivisionShape",0},
+    { "_uint","_wxPrintQuality",0},
+    { "_uint","_size_t",0},
+    { "_uint","_unsigned_int",0},
+    { "_uint","_int",0},
+    { "_uint","_wxWindowID",0},
+    { "_class_wxEvent","_wxEvent",0},
+    { "_wxCheckListBox","_class_wxCheckListBox",0},
+    { "_wxSplitterEvent","_class_wxSplitterEvent",0},
+    { "_wxGridEvent","_class_wxGridEvent",0},
+    { "_wxRect","_class_wxRect",0},
+    { "_wxCommandEvent","_class_wxCommandEvent",0},
+    { "_wxSizeEvent","_class_wxSizeEvent",0},
+    { "_class_wxImage","_wxImage",0},
+    { "_wxPoint","_class_wxPoint",0},
+    { "_class_wxSashLayoutWindow","_wxSashLayoutWindow",0},
+    { "_class_wxPyBitmapShape","_wxPyBitmapShape",0},
+    { "_class_wxButton","_wxButton",0},
+    { "_wxRadioBox","_class_wxRadioBox",0},
+    { "_class_wxFontData","_wxFontData",0},
+    { "_class___wxPyCleanup","___wxPyCleanup",0},
+    { "_wxBitmap","_class_wxBitmap",0},
+    { "_wxTaskBarIcon","_class_wxTaskBarIcon",0},
+    { "_wxPrintDialog","_class_wxPrintDialog",0},
+    { "_wxPyTimer","_class_wxPyTimer",0},
+    { "_wxWindowDC","_class_wxWindowDC",0},
+    { "_wxScrollBar","_class_wxScrollBar",0},
+    { "_wxSpinButton","_class_wxSpinButton",0},
+    { "_wxToolBarTool","_class_wxToolBarTool",0},
+    { "_wxColourDialog","_class_wxColourDialog",0},
+    { "_wxPrintData","_class_wxPrintData",0},
+    { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
+    { "_class_wxNotifyEvent","_wxNotifyEvent",0},
+    { "_wxMessageDialog","_class_wxMessageDialog",0},
+    { "_class_wxPyEvent","_wxPyEvent",0},
+    { "_wxTextEntryDialog","_class_wxTextEntryDialog",0},
+    { "_class_wxIconizeEvent","_wxIconizeEvent",0},
+    { "_class_wxStaticBitmap","_wxStaticBitmap",0},
+    { "_class_wxPyDrawnShape","_wxPyDrawnShape",0},
+    { "_wxMDIChildFrame","_class_wxMDIChildFrame",0},
+    { "_wxListItem","_class_wxListItem",0},
+    { "_class_wxPseudoMetaFile","_wxPseudoMetaFile",0},
+    { "_class_wxToolBar","_wxToolBar",0},
+    { "_class_wxStaticLine","_wxStaticLine",0},
+    { "_wxScrollEvent","_class_wxScrollEvent",0},
+    { "_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0},
+    { "_class_wxShapeRegion","_wxShapeRegion",0},
+    { "_EBool","_wxPrintQuality",0},
+    { "_EBool","_signed_int",0},
+    { "_EBool","_int",0},
+    { "_EBool","_wxWindowID",0},
+    { "_class_wxRegion","_wxRegion",0},
+    { "_class_wxDropFilesEvent","_wxDropFilesEvent",0},
+    { "_class_wxPreviewFrame","_wxPreviewFrame",0},
+    { "_wxStaticText","_class_wxStaticText",0},
+    { "_wxFont","_class_wxFont",0},
+    { "_wxCloseEvent","_class_wxCloseEvent",0},
+    { "_class_wxSplitterEvent","_wxSplitterEvent",0},
+    { "_wxNotebook","_class_wxNotebook",0},
+    { "_unsigned_long","_wxDash",0},
+    { "_unsigned_long","_long",0},
+    { "_class_wxRect","_wxRect",0},
+    { "_class_wxDC","_wxDC",0},
+    { "_wxPyCircleShape","_class_wxPyCircleShape",0},
+    { "_class_wxProgressDialog","_wxProgressDialog",0},
+    { "_wxPyApp","_class_wxPyApp",0},
+    { "_wxMDIParentFrame","_class_wxMDIParentFrame",0},
+    { "_class_wxTreeEvent","_wxTreeEvent",0},
+    { "_class_wxDirDialog","_wxDirDialog",0},
+    { "_wxPyLineShape","_class_wxPyLineShape",0},
+    { "_class_wxPyTimer","_wxPyTimer",0},
+    { "_wxFocusEvent","_class_wxFocusEvent",0},
+    { "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
+    { "_class_wxSpinButton","_wxSpinButton",0},
+    { "_class_wxPyPolygonShape","_wxPyPolygonShape",0},
+    { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
+    { "_class_wxPanel","_wxPanel",0},
+    { "_class_wxCheckBox","_wxCheckBox",0},
+    { "_wxComboBox","_class_wxComboBox",0},
+    { "_wxRadioButton","_class_wxRadioButton",0},
+    { "_class_wxMessageDialog","_wxMessageDialog",0},
+    { "_signed_int","_wxPrintQuality",0},
+    { "_signed_int","_EBool",0},
+    { "_signed_int","_wxWindowID",0},
+    { "_signed_int","_int",0},
+    { "_class_wxTextCtrl","_wxTextCtrl",0},
+    { "_wxLayoutConstraints","_class_wxLayoutConstraints",0},
+    { "_wxMetaFileDC","_class_wxMetaFileDC",0},
+    { "_wxMenu","_class_wxMenu",0},
+    { "_class_wxMoveEvent","_wxMoveEvent",0},
+    { "_wxListBox","_class_wxListBox",0},
+    { "_wxScreenDC","_class_wxScreenDC",0},
+    { "_class_wxMDIChildFrame","_wxMDIChildFrame",0},
+    { "_wxArrowHead","_class_wxArrowHead",0},
+    { "_WXTYPE","_short",0},
+    { "_WXTYPE","_signed_short",0},
+    { "_WXTYPE","_unsigned_short",0},
+    { "_wxFileDialog","_class_wxFileDialog",0},
+    { "_class_wxMDIClientWindow","_wxMDIClientWindow",0},
+    { "_class_wxBrush","_wxBrush",0},
+    { "_unsigned_short","_WXTYPE",0},
+    { "_unsigned_short","_short",0},
+    { "_class_wxWindow","_wxWindow",0},
+    { "_wxSplitterWindow","_class_wxSplitterWindow",0},
+    { "_class_wxStaticText","_wxStaticText",0},
+    { "_wxPrintDialogData","_class_wxPrintDialogData",0},
+    { "_class_wxFont","_wxFont",0},
+    { "_class_wxCloseEvent","_wxCloseEvent",0},
+    { "_wxSashEvent","_class_wxSashEvent",0},
+    { "_class_wxMenuEvent","_wxMenuEvent",0},
+    { "_class_wxPyCircleShape","_wxPyCircleShape",0},
+    { "_wxClientDC","_class_wxClientDC",0},
+    { "_wxMouseEvent","_class_wxMouseEvent",0},
+    { "_wxListCtrl","_class_wxListCtrl",0},
+    { "_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0},
+    { "_wxPyDividedShape","_class_wxPyDividedShape",0},
+    { "_class_wxPoint","_wxPoint",0},
+    { "_wxRealPoint","_class_wxRealPoint",0},
+    { "_class_wxRadioBox","_wxRadioBox",0},
+    { "_wxGridCell","_class_wxGridCell",0},
+    { "_signed_short","_WXTYPE",0},
+    { "_signed_short","_short",0},
+    { "_wxMemoryDC","_class_wxMemoryDC",0},
+    { "_class_wxTaskBarIcon","_wxTaskBarIcon",0},
+    { "_class_wxPrintDialog","_wxPrintDialog",0},
+    { "_wxPaintDC","_class_wxPaintDC",0},
+    { "_class_wxWindowDC","_wxWindowDC",0},
+    { "_class_wxFocusEvent","_wxFocusEvent",0},
+    { "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
+    { "_wxStatusBar","_class_wxStatusBar",0},
+    { "_class_wxToolBarTool","_wxToolBarTool",0},
+    { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
+    { "_class_wxCursor","_wxCursor",0},
+    { "_class_wxImageHandler","_wxImageHandler",0},
+    { "_wxPyShape","_class_wxPyTextShape",SwigwxPyTextShapeTowxPyShape},
+    { "_wxPyShape","_wxPyTextShape",SwigwxPyTextShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShape},
+    { "_wxPyShape","_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyLineShape",SwigwxPyLineShapeTowxPyShape},
+    { "_wxPyShape","_wxPyLineShape",SwigwxPyLineShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShape},
+    { "_wxPyShape","_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShape},
+    { "_wxPyShape","_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShape},
+    { "_wxPyShape","_class_wxPyShape",0},
+    { "_wxScrolledWindow","_class_wxScrolledWindow",0},
+    { "_wxTreeItemId","_class_wxTreeItemId",0},
+    { "_unsigned_char","_byte",0},
+    { "_class_wxMetaFileDC","_wxMetaFileDC",0},
+    { "_class_wxMenu","_wxMenu",0},
+    { "_wxControl","_class_wxControl",0},
+    { "_class_wxListBox","_wxListBox",0},
+    { "_unsigned_int","_wxPrintQuality",0},
+    { "_unsigned_int","_size_t",0},
+    { "_unsigned_int","_uint",0},
+    { "_unsigned_int","_wxWindowID",0},
+    { "_unsigned_int","_int",0},
+    { "_wxIcon","_class_wxIcon",0},
+    { "_wxDialog","_class_wxDialog",0},
+    { "_class_wxListItem","_wxListItem",0},
+    { "_class_wxPen","_wxPen",0},
+    { "_class_wxFileDialog","_wxFileDialog",0},
+    { "_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0},
+    { "_short","_WXTYPE",0},
+    { "_short","_unsigned_short",0},
+    { "_short","_signed_short",0},
+    { "_class_wxStaticBox","_wxStaticBox",0},
+    { "_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0},
+    { "_wxPyTextShape","_class_wxPyTextShape",0},
+    { "_class_wxScrollEvent","_wxScrollEvent",0},
+    { "_wxJoystickEvent","_class_wxJoystickEvent",0},
+    { "_class_wxChoice","_wxChoice",0},
+    { "_class_wxSlider","_wxSlider",0},
+    { "_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0},
+    { "_class_wxImageList","_wxImageList",0},
+    { "_class_wxBitmapButton","_wxBitmapButton",0},
+    { "_wxFrame","_class_wxFrame",0},
+    { "_wxPyDivisionShape","_class_wxPyDivisionShape",0},
+    { "_class_wxNotebook","_wxNotebook",0},
+    { "_wxJPEGHandler","_class_wxJPEGHandler",0},
+    { "_wxWindowID","_wxPrintQuality",0},
+    { "_wxWindowID","_size_t",0},
+    { "_wxWindowID","_EBool",0},
+    { "_wxWindowID","_uint",0},
+    { "_wxWindowID","_int",0},
+    { "_wxWindowID","_signed_int",0},
+    { "_wxWindowID","_unsigned_int",0},
+    { "_int","_wxPrintQuality",0},
+    { "_int","_size_t",0},
+    { "_int","_EBool",0},
+    { "_int","_uint",0},
+    { "_int","_wxWindowID",0},
+    { "_int","_unsigned_int",0},
+    { "_int","_signed_int",0},
+    { "_class_wxMouseEvent","_wxMouseEvent",0},
+    { "_class_wxListEvent","_wxListEvent",0},
+    { "_class_wxPrintPreview","_wxPrintPreview",0},
+    { "_class_wxSpinEvent","_wxSpinEvent",0},
+    { "_wxButton","_class_wxButton",0},
+    { "_class_wxPyApp","_wxPyApp",0},
+    { "_wxSize","_class_wxSize",0},
+    { "_wxRegionIterator","_class_wxRegionIterator",0},
+    { "_class_wxPrinterDC","_wxPrinterDC",0},
+    { "_class_wxMDIParentFrame","_wxMDIParentFrame",0},
+    { "_wxPyTreeItemData","_class_wxPyTreeItemData",0},
+    { "_class_wxPyLineShape","_wxPyLineShape",0},
+    { "_class_wxPaintDC","_wxPaintDC",0},
+    { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
+    { "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
+    { "_class_wxComboBox","_wxComboBox",0},
+    { "_class_wxRadioButton","_wxRadioButton",0},
+    { "_class_wxPyShape","_class_wxPyTextShape",SwigwxPyTextShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyTextShape",SwigwxPyTextShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyLineShape",SwigwxPyLineShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyLineShape",SwigwxPyLineShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShape},
+    { "_class_wxPyShape","_class_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShape},
+    { "_class_wxPyShape","_wxPyShape",0},
+    { "_class_wxTreeItemId","_wxTreeItemId",0},
+    { "_wxTreeCtrl","_class_wxTreeCtrl",0},
+    { "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
+    { "_wxIconizeEvent","_class_wxIconizeEvent",0},
+    { "_class_wxControl","_wxControl",0},
+    { "_wxStaticBitmap","_class_wxStaticBitmap",0},
+    { "_wxPyDrawnShape","_class_wxPyDrawnShape",0},
+    { "_class_wxIcon","_wxIcon",0},
+    { "_class_wxColour","_wxColour",0},
+    { "_class_wxScreenDC","_wxScreenDC",0},
+    { "_class_wxPageSetupDialog","_wxPageSetupDialog",0},
+    { "_wxPalette","_class_wxPalette",0},
+    { "_class_wxIdleEvent","_wxIdleEvent",0},
+    { "_wxEraseEvent","_class_wxEraseEvent",0},
+    { "_class_wxJoystickEvent","_wxJoystickEvent",0},
+    { "_class_wxMiniFrame","_wxMiniFrame",0},
+    { "_wxFontDialog","_class_wxFontDialog",0},
+    { "_wxRegion","_class_wxRegion",0},
+    { "_class_wxSplitterWindow","_wxSplitterWindow",0},
+    { "_wxPreviewFrame","_class_wxPreviewFrame",0},
+    { "_class_wxShowEvent","_wxShowEvent",0},
+    { "_wxActivateEvent","_class_wxActivateEvent",0},
+    { "_wxGauge","_class_wxGauge",0},
+    { "_class_wxCheckListBox","_wxCheckListBox",0},
+    { "_class_wxGridEvent","_wxGridEvent",0},
+    { "_class_wxCommandEvent","_wxCommandEvent",0},
+    { "_class_wxClientDC","_wxClientDC",0},
+    { "_class_wxSizeEvent","_wxSizeEvent",0},
+    { "_class_wxListCtrl","_wxListCtrl",0},
+    { "_class_wxPyDividedShape","_wxPyDividedShape",0},
+    { "_wxPyEllipseShape","_class_wxPyCircleShape",SwigwxPyCircleShapeTowxPyEllipseShape},
+    { "_wxPyEllipseShape","_wxPyCircleShape",SwigwxPyCircleShapeTowxPyEllipseShape},
+    { "_wxPyEllipseShape","_class_wxPyEllipseShape",0},
+    { "_class_wxGridCell","_wxGridCell",0},
+    { "_class_wxSize","_wxSize",0},
+    { "_class_wxBitmap","_wxBitmap",0},
+    { "_class_wxMemoryDC","_wxMemoryDC",0},
+    { "_wxMenuBar","_class_wxMenuBar",0},
+    { "_wxTreeEvent","_class_wxTreeEvent",0},
+    { "_wxDirDialog","_class_wxDirDialog",0},
+    { "_wxPyShapeEvtHandler","_class_wxPyTextShape",SwigwxPyTextShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyTextShape",SwigwxPyTextShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyPolygonShape",SwigwxPyPolygonShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyLineShape",SwigwxPyLineShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyLineShape",SwigwxPyLineShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyCircleShape",SwigwxPyCircleShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_wxPyEllipseShape",SwigwxPyEllipseShapeTowxPyShapeEvtHandler},
+    { "_wxPyShapeEvtHandler","_class_wxPyShapeEvtHandler",0},
+    { "_wxEvtHandler","_class_wxEvtHandler",0},
+    { "_wxMenuItem","_class_wxMenuItem",0},
+    { "_class_wxScrollBar","_wxScrollBar",0},
+    { "_class_wxColourDialog","_wxColourDialog",0},
+    { "_class_wxPrintData","_wxPrintData",0},
+    { "_wxDash","_unsigned_long",0},
+    { "_wxDash","_long",0},
+    { "_wxPyRectangleShape","_class_wxPyTextShape",SwigwxPyTextShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_wxPyTextShape",SwigwxPyTextShapeTowxPyRectangleShape},
+    { "_wxPyRectangleShape","_class_wxPyRectangleShape",0},
+    { "_class_wxScrolledWindow","_wxScrolledWindow",0},
+    { "_class_wxTextEntryDialog","_wxTextEntryDialog",0},
+    { "_wxKeyEvent","_class_wxKeyEvent",0},
+    { "_wxMoveEvent","_class_wxMoveEvent",0},
+    { "_wxOGLConstraint","_class_wxOGLConstraint",0},
+    { "_wxColourData","_class_wxColourData",0},
+    { "_wxPageSetupDialogData","_class_wxPageSetupDialogData",0},
+    { "_class_wxPalette","_wxPalette",0},
+    { "_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0},
+    { "_class_wxEraseEvent","_wxEraseEvent",0},
+    { "_wxMDIClientWindow","_class_wxMDIClientWindow",0},
+    { "_class_wxPyTextShape","_wxPyTextShape",0},
+    { "_class_wxFontDialog","_wxFontDialog",0},
+    { "_wxWindow","_class_wxWindow",0},
+    { "_class_wxFrame","_wxFrame",0},
+{0,0,0}};
+
+static PyObject *SWIG_globals;
+#ifdef __cplusplus
+extern "C" 
+#endif
+SWIGEXPORT(void) initoglshapes2c() {
+	 PyObject *m, *d;
+	 SWIG_globals = SWIG_newvarlink();
+	 m = Py_InitModule("oglshapes2c", oglshapes2cMethods);
+	 d = PyModule_GetDict(m);
+{
+   int i;
+   for (i = 0; _swig_mapping[i].n1; i++)
+        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
+}
+}
diff --git a/utils/wxPython/modules/ogl/oglshapes2.i b/utils/wxPython/modules/ogl/oglshapes2.i
new file mode 100644
index 0000000000..e247d1286b
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglshapes2.i
@@ -0,0 +1,369 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        oglshapes2.i
+// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
+//
+// Author:      Robin Dunn
+//
+// Created:     3-Sept-1999
+// RCS-ID:      $Id$
+// Copyright:   (c) 1998 by Total Control Software
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+
+%module oglshapes2
+
+%{
+#include "helpers.h"
+#include "oglhelpers.h"
+%}
+
+//---------------------------------------------------------------------------
+
+%include typemaps.i
+%include my_typemaps.i
+
+%extern wx.i
+%import windows.i
+%extern _defs.i
+%extern misc.i
+%extern gdi.i
+
+%include _ogldefs.i
+
+%import oglbasic.i
+%import oglshapes.i
+
+
+%pragma(python) code = "import wx"
+
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyEllipseShape, wxEllipseShape);
+%}
+
+class wxPyEllipseShape : public wxPyShape {
+public:
+    wxPyEllipseShape(double width = 0.0, double height = 0.0);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyCircleShape, wxCircleShape);
+%}
+
+class wxPyCircleShape : public wxPyEllipseShape {
+public:
+    wxPyCircleShape(double width = 0.0);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+//---------------------------------------------------------------------------
+//---------------------------------------------------------------------------
+class wxArrowHead {
+public:
+    wxArrowHead(int type = 0,
+                int end = 0,
+                double size = 0.0,
+                double dist = 0.0,
+                const char * name = "",
+                wxPseudoMetaFile *mf = NULL,
+                long arrowId = -1);
+    ~wxArrowHead();
+
+    int _GetType();
+    int GetPosition();
+    void SetPosition(int pos);
+    double GetXOffset();
+    double GetYOffset();
+    double GetSpacing();
+    double GetSize();
+    wxString GetName();
+    void SetXOffset(double x);
+    void SetYOffset(double y);
+    wxPseudoMetaFile *GetMetaFile();
+    long GetId();
+    int GetArrowEnd();
+    double GetArrowSize();
+    void SetSize(double size);
+    void SetSpacing(double sp);
+};
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyLineShape, wxLineShape);
+%}
+
+class wxPyLineShape : public wxPyShape {
+public:
+    wxPyLineShape();
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+    void AddArrow(int type, int end = ARROW_POSITION_END,
+                  double arrowSize = 10.0, double xOffset = 0.0,
+                  char* name = "", wxPseudoMetaFile *mf = NULL,
+                  long arrowId = -1);
+
+    //void AddArrowOrdered(wxArrowHead *arrow, wxList& referenceList, int end);
+    %addmethods {
+        void AddArrowOrdered(wxArrowHead *arrow, PyObject* referenceList, int end) {
+            wxList* list = wxPy_wxListHelper(referenceList, "wxArrowHead");
+            self->AddArrowOrdered(arrow, *list, end);
+            delete list;
+        }
+    }
+    bool ClearArrow(const wxString& name);
+    void ClearArrowsAtPosition(int position = -1);
+    void DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool proportionalOffset);
+    %name(DeleteArrowHeadId)bool DeleteArrowHead(long arrowId);
+    bool DeleteArrowHead(int position, const wxString& name);
+    bool DeleteLineControlPoint();
+    void DrawArrows(wxDC& dc);
+    void DrawRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
+    void EraseRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
+    %name(FindArrowHeadId)wxArrowHead * FindArrowHead(long arrowId);
+    wxArrowHead * FindArrowHead(int position, const wxString& name);
+    void FindLineEndPoints(double *OUTPUT, double *OUTPUT,
+                           double *OUTPUT, double *OUTPUT);
+    int FindLinePosition(double x, double y);
+    double FindMinimumWidth();
+    void FindNth(wxPyShape *image, int *OUTPUT, int *OUTPUT, bool incoming);
+    int GetAttachmentFrom();
+    int GetAttachmentTo();
+    void GetEnds(double *OUTPUT, double *OUTPUT, double *OUTPUT, double *OUTPUT);
+    wxPyShape * GetFrom();
+    void GetLabelPosition(int position, double *OUTPUT, double *OUTPUT);
+    wxPoint * GetNextControlPoint(wxPyShape *shape);
+    wxPyShape * GetTo();
+    void Initialise();
+    void InsertLineControlPoint(wxDC* dc);
+    bool IsEnd(wxPyShape *shape);
+    bool IsSpline();
+    void MakeLineControlPoints(int n);
+
+    void SetAttachmentFrom(int fromAttach);
+    void SetAttachments(int fromAttach, int toAttach);
+    void SetAttachmentTo(int toAttach);
+    void SetEnds(double x1, double y1, double x2, double y2);
+    void SetFrom(wxPyShape *object);
+    void SetIgnoreOffsets(bool ignore);
+    void SetSpline(bool spline);
+    void SetTo(wxPyShape *object);
+    void Straighten(wxDC* dc = NULL);
+    void Unlink();
+
+
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyPolygonShape, wxPolygonShape);
+%}
+
+class wxPyPolygonShape : public wxPyShape {
+public:
+    wxPyPolygonShape();
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+
+    // void Create(wxList* points);
+    %addmethods {
+        PyObject* Create(PyObject* points) {
+            wxList* list = wxPy_wxRealPoint_ListHelper(points);
+            if (list) {
+                self->Create(list);
+                Py_INCREF(Py_None);
+                return Py_None;
+            }
+            else return NULL;
+        }
+    }
+
+    void AddPolygonPoint(int pos = 0);
+    void CalculatePolygonCentre();
+    void DeletePolygonPoint(int pos = 0);
+
+    // wxList* GetPoints();
+    %addmethods {
+        PyObject* GetPoints() {
+            wxList* list = self->GetPoints();
+            return wxPy_ConvertList(list, "wxRealPoint");
+        }
+    }
+
+    void UpdateOriginalPoints();
+
+
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+};
+//---------------------------------------------------------------------------
+%{
+    WXSHAPE_IMP_CALLBACKS(wxPyTextShape, wxTextShape);
+%}
+
+class wxPyTextShape : public wxPyRectangleShape {
+public:
+    wxPyTextShape(double width = 0.0, double height = 0.0);
+
+    void _setSelf(PyObject* self);
+    %pragma(python) addtomethod = "__init__:self._setSelf(self)"
+
+
+    void base_OnDelete();
+    void base_OnDraw(wxDC& dc);
+    void base_OnDrawContents(wxDC& dc);
+    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnMoveLinks(wxDC& dc);
+    void base_OnErase(wxDC& dc);
+    void base_OnEraseContents(wxDC& dc);
+    void base_OnHighlight(wxDC& dc);
+    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
+    void base_OnSize(double x, double y);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
+    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
+    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
+    void base_OnDrawControlPoints(wxDC& dc);
+    void base_OnEraseControlPoints(wxDC& dc);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE);
+    void base_OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
+    void base_OnBeginSize(double w, double h);
+    void base_OnEndSize(double w, double h);
+//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
+
+};
+//---------------------------------------------------------------------------
diff --git a/utils/wxPython/modules/ogl/oglshapes2.py b/utils/wxPython/modules/ogl/oglshapes2.py
new file mode 100644
index 0000000000..8a60203ab3
--- /dev/null
+++ b/utils/wxPython/modules/ogl/oglshapes2.py
@@ -0,0 +1,764 @@
+# This file was created automatically by SWIG.
+import oglshapes2c
+
+from misc import *
+
+from misc2 import *
+
+from windows import *
+
+from gdi import *
+
+from events import *
+
+from mdi import *
+
+from frames import *
+
+from stattool import *
+
+from controls import *
+
+from controls2 import *
+
+from windows2 import *
+
+from cmndlgs import *
+
+from windows3 import *
+
+from image import *
+
+from printfw import *
+
+from oglbasic import *
+
+from oglshapes import *
+import wx
+class wxPyEllipseShapePtr(wxPyShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyEllipseShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyEllipseShape instance at %s>" % (self.this,)
+class wxPyEllipseShape(wxPyEllipseShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapes2c.new_wxPyEllipseShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyCircleShapePtr(wxPyEllipseShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyCircleShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyCircleShape instance at %s>" % (self.this,)
+class wxPyCircleShape(wxPyCircleShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapes2c.new_wxPyCircleShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxArrowHeadPtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __del__(self,oglshapes2c=oglshapes2c):
+        if self.thisown == 1 :
+            oglshapes2c.delete_wxArrowHead(self)
+    def _GetType(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead__GetType,(self,) + _args, _kwargs)
+        return val
+    def GetPosition(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetPosition,(self,) + _args, _kwargs)
+        return val
+    def SetPosition(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_SetPosition,(self,) + _args, _kwargs)
+        return val
+    def GetXOffset(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetXOffset,(self,) + _args, _kwargs)
+        return val
+    def GetYOffset(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetYOffset,(self,) + _args, _kwargs)
+        return val
+    def GetSpacing(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetSpacing,(self,) + _args, _kwargs)
+        return val
+    def GetSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetSize,(self,) + _args, _kwargs)
+        return val
+    def GetName(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetName,(self,) + _args, _kwargs)
+        return val
+    def SetXOffset(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_SetXOffset,(self,) + _args, _kwargs)
+        return val
+    def SetYOffset(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_SetYOffset,(self,) + _args, _kwargs)
+        return val
+    def GetMetaFile(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetMetaFile,(self,) + _args, _kwargs)
+        if val: val = wxPseudoMetaFilePtr(val) 
+        return val
+    def GetId(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetId,(self,) + _args, _kwargs)
+        return val
+    def GetArrowEnd(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetArrowEnd,(self,) + _args, _kwargs)
+        return val
+    def GetArrowSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_GetArrowSize,(self,) + _args, _kwargs)
+        return val
+    def SetSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_SetSize,(self,) + _args, _kwargs)
+        return val
+    def SetSpacing(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxArrowHead_SetSpacing,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxArrowHead instance at %s>" % (self.this,)
+class wxArrowHead(wxArrowHeadPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapes2c.new_wxArrowHead,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
+class wxPyLineShapePtr(wxPyShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def AddArrow(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_AddArrow,(self,) + _args, _kwargs)
+        return val
+    def AddArrowOrdered(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_AddArrowOrdered,(self,) + _args, _kwargs)
+        return val
+    def ClearArrow(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_ClearArrow,(self,) + _args, _kwargs)
+        return val
+    def ClearArrowsAtPosition(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_ClearArrowsAtPosition,(self,) + _args, _kwargs)
+        return val
+    def DrawArrow(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_DrawArrow,(self,) + _args, _kwargs)
+        return val
+    def DeleteArrowHeadId(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_DeleteArrowHeadId,(self,) + _args, _kwargs)
+        return val
+    def DeleteArrowHead(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_DeleteArrowHead,(self,) + _args, _kwargs)
+        return val
+    def DeleteLineControlPoint(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_DeleteLineControlPoint,(self,) + _args, _kwargs)
+        return val
+    def DrawArrows(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_DrawArrows,(self,) + _args, _kwargs)
+        return val
+    def DrawRegion(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_DrawRegion,(self,) + _args, _kwargs)
+        return val
+    def EraseRegion(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_EraseRegion,(self,) + _args, _kwargs)
+        return val
+    def FindArrowHeadId(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_FindArrowHeadId,(self,) + _args, _kwargs)
+        if val: val = wxArrowHeadPtr(val) 
+        return val
+    def FindArrowHead(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_FindArrowHead,(self,) + _args, _kwargs)
+        if val: val = wxArrowHeadPtr(val) 
+        return val
+    def FindLineEndPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_FindLineEndPoints,(self,) + _args, _kwargs)
+        return val
+    def FindLinePosition(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_FindLinePosition,(self,) + _args, _kwargs)
+        return val
+    def FindMinimumWidth(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_FindMinimumWidth,(self,) + _args, _kwargs)
+        return val
+    def FindNth(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_FindNth,(self,) + _args, _kwargs)
+        return val
+    def GetAttachmentFrom(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetAttachmentFrom,(self,) + _args, _kwargs)
+        return val
+    def GetAttachmentTo(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetAttachmentTo,(self,) + _args, _kwargs)
+        return val
+    def GetEnds(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetEnds,(self,) + _args, _kwargs)
+        return val
+    def GetFrom(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetFrom,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def GetLabelPosition(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetLabelPosition,(self,) + _args, _kwargs)
+        return val
+    def GetNextControlPoint(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetNextControlPoint,(self,) + _args, _kwargs)
+        if val: val = wxPointPtr(val) 
+        return val
+    def GetTo(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_GetTo,(self,) + _args, _kwargs)
+        if val: val = wxPyShapePtr(val) 
+        return val
+    def Initialise(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_Initialise,(self,) + _args, _kwargs)
+        return val
+    def InsertLineControlPoint(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_InsertLineControlPoint,(self,) + _args, _kwargs)
+        return val
+    def IsEnd(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_IsEnd,(self,) + _args, _kwargs)
+        return val
+    def IsSpline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_IsSpline,(self,) + _args, _kwargs)
+        return val
+    def MakeLineControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_MakeLineControlPoints,(self,) + _args, _kwargs)
+        return val
+    def SetAttachmentFrom(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetAttachmentFrom,(self,) + _args, _kwargs)
+        return val
+    def SetAttachments(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetAttachments,(self,) + _args, _kwargs)
+        return val
+    def SetAttachmentTo(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetAttachmentTo,(self,) + _args, _kwargs)
+        return val
+    def SetEnds(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetEnds,(self,) + _args, _kwargs)
+        return val
+    def SetFrom(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetFrom,(self,) + _args, _kwargs)
+        return val
+    def SetIgnoreOffsets(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetIgnoreOffsets,(self,) + _args, _kwargs)
+        return val
+    def SetSpline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetSpline,(self,) + _args, _kwargs)
+        return val
+    def SetTo(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_SetTo,(self,) + _args, _kwargs)
+        return val
+    def Straighten(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_Straighten,(self,) + _args, _kwargs)
+        return val
+    def Unlink(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_Unlink,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyLineShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyLineShape instance at %s>" % (self.this,)
+class wxPyLineShape(wxPyLineShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapes2c.new_wxPyLineShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyPolygonShapePtr(wxPyShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def Create(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_Create,(self,) + _args, _kwargs)
+        return val
+    def AddPolygonPoint(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_AddPolygonPoint,(self,) + _args, _kwargs)
+        return val
+    def CalculatePolygonCentre(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_CalculatePolygonCentre,(self,) + _args, _kwargs)
+        return val
+    def DeletePolygonPoint(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_DeletePolygonPoint,(self,) + _args, _kwargs)
+        return val
+    def GetPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_GetPoints,(self,) + _args, _kwargs)
+        return val
+    def UpdateOriginalPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_UpdateOriginalPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyPolygonShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyPolygonShape instance at %s>" % (self.this,)
+class wxPyPolygonShape(wxPyPolygonShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapes2c.new_wxPyPolygonShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+class wxPyTextShapePtr(wxPyRectangleShapePtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setSelf(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape__setSelf,(self,) + _args, _kwargs)
+        return val
+    def base_OnDelete(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDelete,(self,) + _args, _kwargs)
+        return val
+    def base_OnDraw(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDraw,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDrawContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawBranches(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDrawBranches,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLinks(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnMoveLinks,(self,) + _args, _kwargs)
+        return val
+    def base_OnErase(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnErase,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseContents(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnEraseContents,(self,) + _args, _kwargs)
+        return val
+    def base_OnHighlight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnHighlight,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnLeftClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnLeftDoubleClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnLeftDoubleClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnRightClick(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnRightClick,(self,) + _args, _kwargs)
+        return val
+    def base_OnSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePre(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnMovePre,(self,) + _args, _kwargs)
+        return val
+    def base_OnMovePost(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnMovePost,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnBeginDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndDragRight(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnEndDragRight,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawOutline(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDrawOutline,(self,) + _args, _kwargs)
+        return val
+    def base_OnDrawControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnDrawControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnEraseControlPoints(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnEraseControlPoints,(self,) + _args, _kwargs)
+        return val
+    def base_OnMoveLink(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnMoveLink,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnSizingDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingBeginDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnSizingBeginDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnSizingEndDragLeft(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnSizingEndDragLeft,(self,) + _args, _kwargs)
+        return val
+    def base_OnBeginSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnBeginSize,(self,) + _args, _kwargs)
+        return val
+    def base_OnEndSize(self, *_args, **_kwargs):
+        val = apply(oglshapes2c.wxPyTextShape_base_OnEndSize,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxPyTextShape instance at %s>" % (self.this,)
+class wxPyTextShape(wxPyTextShapePtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(oglshapes2c.new_wxPyTextShape,_args,_kwargs)
+        self.thisown = 1
+        self._setSelf(self)
+
+
+
+
+
+
+#-------------- FUNCTION WRAPPERS ------------------
+
+
+
+#-------------- VARIABLE WRAPPERS ------------------
+
-- 
2.50.0

