/*
 * FILE : contrib/ogl/oglcanvas.cpp
 * 
 * This file was automatically generated by :
 * Simplified Wrapper and Interface Generator (SWIG)
 * Version 1.1 (Build 883)
 * 
 * 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 "Python.h"

#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
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 "wxPython.h"
#include "oglhelpers.h"


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;
}

    // Put some wx default wxChar* values into wxStrings.
    DECLARE_DEF_STRING(ShapeCanvasNameStr);

    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
static void *SwigwxDiagramTowxObject(void *ptr) {
    wxDiagram *src;
    wxObject *dest;
    src = (wxDiagram *) ptr;
    dest = (wxObject *) src;
    return (void *) dest;
}

#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;
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxDiagram *)new_wxDiagram();

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_AddShape(_arg0,_arg1,_arg2);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_Clear. Expected _wxDC_p.");
        return NULL;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_Clear(_arg0,*_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_DeleteAllShapes(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_DrawOutline. Expected _wxDC_p.");
        return NULL;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_DrawOutline(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 };

    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxPyShape *)wxDiagram_FindShape(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}{ _resultobj = wxPyMake_wxShapeEvtHandler(_result); }
    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 };

    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxPyShapeCanvas *)wxDiagram_GetCanvas(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}{ _resultobj = wxPyMake_wxObject(_result); }
    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (int )wxDiagram_GetCount(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    _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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (double )wxDiagram_GetGridSpacing(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    _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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (int )wxDiagram_GetMouseTolerance(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

static PyObject * wxDiagram_GetShapeList(wxDiagram *self) {
            wxList* list = self->GetShapeList();
            return wxPy_ConvertShapeList(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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (PyObject *)wxDiagram_GetShapeList(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}{
  _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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (bool )wxDiagram_GetQuickEditMode(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    _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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (bool )wxDiagram_GetSnapToGrid(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    _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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_InsertShape(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_RecentreAll. Expected _wxDC_p.");
        return NULL;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_RecentreAll(_arg0,*_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDiagram_Redraw. Expected _wxDC_p.");
        return NULL;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_Redraw(_arg0,*_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_RemoveAllShapes(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_RemoveShape(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_SetCanvas(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_SetGridSpacing(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_SetMouseTolerance(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_SetQuickEditMode(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_SetSnapToGrid(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_ShowAll(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
    double  temp;
    PyObject * _obj1 = 0;
    double  temp0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "self","INOUT","INOUT", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxDiagram_Snap",_kwnames,&_argo0,&_obj1,&_obj2)) 
        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;
        }
    }
{
  temp = PyFloat_AsDouble(_obj1);
  _arg1 = &temp;
}
{
  temp0 = PyFloat_AsDouble(_obj2);
  _arg2 = &temp0;
}
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxDiagram_Snap(_arg0,_arg1,_arg2);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
}

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;
}

static void *SwigwxPyShapeCanvasTowxObject(void *ptr) {
    wxPyShapeCanvas *src;
    wxObject *dest;
    src = (wxPyShapeCanvas *) ptr;
    dest = (wxObject *) src;
    return (void *) dest;
}

#define new_wxPyShapeCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxPyShapeCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
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 *) &wxDefaultPosition;
    wxSize * _arg3 = (wxSize *) &wxDefaultSize;
    long  _arg4 = (long ) wxBORDER;
    wxString * _arg5 = (wxString *) &wxPyShapeCanvasNameStr;
    PyObject * _argo0 = 0;
    wxPoint  temp;
    PyObject * _obj2 = 0;
    wxSize  temp0;
    PyObject * _obj3 = 0;
    PyObject * _obj5 = 0;
    char *_kwnames[] = { "parent","id","pos","size","style","name", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|OiOOlO:new_wxPyShapeCanvas",_kwnames,&_argo0,&_arg1,&_obj2,&_obj3,&_arg4,&_obj5)) 
        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 (_obj2)
{
    _arg2 = &temp;
    if (! wxPoint_helper(_obj2, &_arg2))
        return NULL;
}
    if (_obj3)
{
    _arg3 = &temp0;
    if (! wxSize_helper(_obj3, &_arg3))
        return NULL;
}
    if (_obj5)
{
    _arg5 = wxString_in_helper(_obj5);
    if (_arg5 == NULL)
        return NULL;
}
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxPyShapeCanvas *)new_wxPyShapeCanvas(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyShapeCanvas_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
{
    if (_obj5)
        delete _arg5;
}
    return _resultobj;
}

#define wxPyShapeCanvas__setCallbackInfo(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_setCallbackInfo(_swigarg0,_swigarg1))
static PyObject *_wrap_wxPyShapeCanvas__setCallbackInfo(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    wxPyShapeCanvas * _arg0;
    PyObject * _arg1;
    PyObject * _arg2;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "self","self","_class", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyShapeCanvas__setCallbackInfo",_kwnames,&_argo0,&_obj1,&_obj2)) 
        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__setCallbackInfo. Expected _wxPyShapeCanvas_p.");
        return NULL;
        }
    }
{
  _arg1 = _obj1;
}
{
  _arg2 = _obj2;
}
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas__setCallbackInfo(_arg0,_arg1,_arg2);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_AddShape(_arg0,_arg1,_arg2);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
    int  temp;
    wxClassInfo * _arg4 = (wxClassInfo *) NULL;
    wxPyShape * _arg5 = (wxPyShape *) NULL;
    PyObject * _argo0 = 0;
    PyObject * _argo4 = 0;
    PyObject * _argo5 = 0;
    char *_kwnames[] = { "self","x1","y","info","notImage", NULL };

    self = self;
{
  _arg3 = &temp;
}
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Odd|OO:wxPyShapeCanvas_FindShape",_kwnames,&_argo0,&_arg1,&_arg2,&_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 (_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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxPyShape *)wxPyShapeCanvas_FindShape(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}{ _resultobj = wxPyMake_wxShapeEvtHandler(_result); }
{
    PyObject *o;
    o = PyInt_FromLong((long) (*_arg3));
    _resultobj = t_output_helper(_resultobj, o);
}
    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  temp;
    int  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x1","y","op", NULL };

    self = self;
{
  _arg3 = &temp;
}
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oddi:wxPyShapeCanvas_FindFirstSensitiveShape",_kwnames,&_argo0,&_arg1,&_arg2,&_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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxPyShape *)wxPyShapeCanvas_FindFirstSensitiveShape(_arg0,_arg1,_arg2,_arg3,_arg4);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}{ _resultobj = wxPyMake_wxShapeEvtHandler(_result); }
{
    PyObject *o;
    o = PyInt_FromLong((long) (*_arg3));
    _resultobj = t_output_helper(_resultobj, o);
}
    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 };

    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (wxDiagram *)wxPyShapeCanvas_GetDiagram(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}{ _resultobj = wxPyMake_wxObject(_result); }
    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    _result = (bool )wxPyShapeCanvas_GetQuickEditMode(_arg0);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    _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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_InsertShape(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnBeginDragLeft(_arg0,_arg1,_arg2,_arg3);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnBeginDragRight(_arg0,_arg1,_arg2,_arg3);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnEndDragLeft(_arg0,_arg1,_arg2,_arg3);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnEndDragRight(_arg0,_arg1,_arg2,_arg3);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnDragLeft(_arg0,_arg1,_arg2,_arg3,_arg4);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnDragRight(_arg0,_arg1,_arg2,_arg3,_arg4);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnLeftClick(_arg0,_arg1,_arg2,_arg3);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_base_OnRightClick(_arg0,_arg1,_arg2,_arg3);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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 (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxDC_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyShapeCanvas_Redraw. Expected _wxDC_p.");
        return NULL;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_Redraw(_arg0,*_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_RemoveShape(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
        }
    }
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_SetDiagram(_arg0,_arg1);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
    double  temp;
    PyObject * _obj1 = 0;
    double  temp0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "self","INOUT","INOUT", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyShapeCanvas_Snap",_kwnames,&_argo0,&_obj1,&_obj2)) 
        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;
        }
    }
{
  temp = PyFloat_AsDouble(_obj1);
  _arg1 = &temp;
}
{
  temp0 = PyFloat_AsDouble(_obj2);
  _arg2 = &temp0;
}
{
    PyThreadState* __tstate = wxPyBeginAllowThreads();
    wxPyShapeCanvas_Snap(_arg0,_arg1,_arg2);

    wxPyEndAllowThreads(__tstate);
    if (PyErr_Occurred()) return NULL;
}    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;
}

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__setCallbackInfo", (PyCFunction) _wrap_wxPyShapeCanvas__setCallbackInfo, 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_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_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 },
	 { "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[] = {
    { "_signed_long","_long",0},
    { "_wxPrintQuality","_wxCoord",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},
    { "_wxPrintQuality","_time_t",0},
    { "_byte","_unsigned_char",0},
    { "_long","_unsigned_long",0},
    { "_long","_signed_long",0},
    { "_size_t","_wxCoord",0},
    { "_size_t","_wxPrintQuality",0},
    { "_size_t","_time_t",0},
    { "_size_t","_unsigned_int",0},
    { "_size_t","_int",0},
    { "_size_t","_wxWindowID",0},
    { "_size_t","_uint",0},
    { "_wxPanel","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxPanel},
    { "_uint","_wxCoord",0},
    { "_uint","_wxPrintQuality",0},
    { "_uint","_time_t",0},
    { "_uint","_size_t",0},
    { "_uint","_unsigned_int",0},
    { "_uint","_int",0},
    { "_uint","_wxWindowID",0},
    { "_wxChar","_char",0},
    { "_char","_wxChar",0},
    { "_struct_wxNativeFontInfo","_wxNativeFontInfo",0},
    { "_EBool","_wxCoord",0},
    { "_EBool","_wxPrintQuality",0},
    { "_EBool","_signed_int",0},
    { "_EBool","_int",0},
    { "_EBool","_wxWindowID",0},
    { "_unsigned_long","_long",0},
    { "_wxNativeFontInfo","_struct_wxNativeFontInfo",0},
    { "_signed_int","_wxCoord",0},
    { "_signed_int","_wxPrintQuality",0},
    { "_signed_int","_EBool",0},
    { "_signed_int","_wxWindowID",0},
    { "_signed_int","_int",0},
    { "_WXTYPE","_wxDateTime_t",0},
    { "_WXTYPE","_short",0},
    { "_WXTYPE","_signed_short",0},
    { "_WXTYPE","_unsigned_short",0},
    { "_unsigned_short","_wxDateTime_t",0},
    { "_unsigned_short","_WXTYPE",0},
    { "_unsigned_short","_short",0},
    { "_wxObject","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxObject},
    { "_wxObject","_wxDiagram",SwigwxDiagramTowxObject},
    { "_signed_short","_WXTYPE",0},
    { "_signed_short","_short",0},
    { "_wxScrolledWindow","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxScrolledWindow},
    { "_unsigned_char","_byte",0},
    { "_unsigned_int","_wxCoord",0},
    { "_unsigned_int","_wxPrintQuality",0},
    { "_unsigned_int","_time_t",0},
    { "_unsigned_int","_size_t",0},
    { "_unsigned_int","_uint",0},
    { "_unsigned_int","_wxWindowID",0},
    { "_unsigned_int","_int",0},
    { "_short","_wxDateTime_t",0},
    { "_short","_WXTYPE",0},
    { "_short","_unsigned_short",0},
    { "_short","_signed_short",0},
    { "_wxWindowID","_wxCoord",0},
    { "_wxWindowID","_wxPrintQuality",0},
    { "_wxWindowID","_time_t",0},
    { "_wxWindowID","_size_t",0},
    { "_wxWindowID","_EBool",0},
    { "_wxWindowID","_uint",0},
    { "_wxWindowID","_int",0},
    { "_wxWindowID","_signed_int",0},
    { "_wxWindowID","_unsigned_int",0},
    { "_int","_wxCoord",0},
    { "_int","_wxPrintQuality",0},
    { "_int","_time_t",0},
    { "_int","_size_t",0},
    { "_int","_EBool",0},
    { "_int","_uint",0},
    { "_int","_wxWindowID",0},
    { "_int","_unsigned_int",0},
    { "_int","_signed_int",0},
    { "_wxDateTime_t","_unsigned_short",0},
    { "_wxDateTime_t","_short",0},
    { "_wxDateTime_t","_WXTYPE",0},
    { "_time_t","_wxCoord",0},
    { "_time_t","_wxPrintQuality",0},
    { "_time_t","_unsigned_int",0},
    { "_time_t","_int",0},
    { "_time_t","_wxWindowID",0},
    { "_time_t","_uint",0},
    { "_time_t","_size_t",0},
    { "_wxCoord","_int",0},
    { "_wxCoord","_signed_int",0},
    { "_wxCoord","_unsigned_int",0},
    { "_wxCoord","_wxWindowID",0},
    { "_wxCoord","_uint",0},
    { "_wxCoord","_EBool",0},
    { "_wxCoord","_size_t",0},
    { "_wxCoord","_time_t",0},
    { "_wxCoord","_wxPrintQuality",0},
    { "_wxEvtHandler","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxEvtHandler},
    { "_wxWindow","_wxPyShapeCanvas",SwigwxPyShapeCanvasTowxWindow},
{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);
}
}
