]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/gtk/windows2.cpp
added font encoding support
[wxWidgets.git] / utils / wxPython / src / gtk / windows2.cpp
index f34822f8eae6f37e48732ec06cf8831c30eed83d..f2cf7af9056c7d93b1882d0abf9e6fda2f5e109d 100644 (file)
@@ -3,7 +3,7 @@
  * 
  * This file was automatically generated by :
  * Simplified Wrapper and Interface Generator (SWIG)
- * Version 1.1 (Patch 5)
+ * Version 1.1 (Build 810)
  * 
  * Portions Copyright (c) 1995-1998
  * The University of Utah and The Regents of the University of California.
 /* Definitions for Windows/Unix exporting */
 #if defined(__WIN32__)
 #   if defined(_MSC_VER)
-#      define SWIGEXPORT(a,b) __declspec(dllexport) a b
+#      define SWIGEXPORT(a) __declspec(dllexport) a
 #   else
 #      if defined(__BORLANDC__)
-#          define SWIGEXPORT(a,b) a _export b
+#          define SWIGEXPORT(a) a _export 
 #      else
-#          define SWIGEXPORT(a,b) a b
+#          define SWIGEXPORT(a) a 
 #      endif
 #   endif
 #else
-#   define SWIGEXPORT(a,b) a b
+#   define SWIGEXPORT(a) a 
 #endif
 
 #ifdef __cplusplus
@@ -43,12 +43,12 @@ extern "C" {
 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    initwindows2c
 
 #define SWIG_name    "windows2c"
@@ -57,6 +57,9 @@ extern PyObject *SWIG_newvarlink(void);
 #include <wx/grid.h>
 #include <wx/notebook.h>
 #include <wx/splitter.h>
+#ifdef __WXMSW__
+#include <wx/msw/taskbar.h>
+#endif
 
 static PyObject* l_output_helper(PyObject* target, PyObject* o) {
     PyObject*   o2;
@@ -105,56 +108,107 @@ static PyObject* t_output_helper(PyObject* target, PyObject* o) {
     return target;
 }
 
-
-extern int* int_LIST_helper(PyObject* source);
-extern long* long_LIST_helper(PyObject* source);
-extern char** string_LIST_helper(PyObject* source);
-extern wxPoint* wxPoint_LIST_helper(PyObject* source);
-extern wxBitmap** wxBitmap_LIST_helper(PyObject* source);
-extern wxString* wxString_LIST_helper(PyObject* source);
-#ifdef __WXMSW__
-extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
+static char* wxStringErrorMsg = "string type is required for parameter";
+#ifdef __cplusplus
+extern "C" {
 #endif
+#define new_wxGridCell() (new wxGridCell())
+static PyObject *_wrap_new_wxGridCell(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCell * _result;
+    char *_kwnames[] = {  NULL };
+    char _ptemp[128];
 
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxGridCell",_kwnames)) 
+        return NULL;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxGridCell *)new_wxGridCell();
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define delete_wxGridCell(_swigobj) (delete _swigobj)
+static PyObject *_wrap_delete_wxGridCell(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCell * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:delete_wxGridCell",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxGridCell. Expected _wxGridCell_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxGridCell(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
 
-static char* wxStringErrorMsg = "string type is required for parameter";
 #define wxGridCell_GetTextValue(_swigobj)  (_swigobj->GetTextValue())
-static PyObject *_wrap_wxGridCell_GetTextValue(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetTextValue(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxString * _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetTextValue",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetTextValue",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetTextValue. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    wxString & _result_ref = wxGridCell_GetTextValue(_arg0);
-    _result = (wxString *) &_result_ref;
 {
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxString & _result_ref = wxGridCell_GetTextValue(_arg0);
+    _result = (wxString *) &_result_ref;
+
+    wxPy_END_ALLOW_THREADS;
+}{
     _resultobj = PyString_FromString(WXSTRINGCAST (*_result));
 }
     return _resultobj;
 }
 
 #define wxGridCell_SetTextValue(_swigobj,_swigarg0)  (_swigobj->SetTextValue(_swigarg0))
-static PyObject *_wrap_wxGridCell_SetTextValue(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_SetTextValue(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _arg0;
     wxString * _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
     PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","str", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sO:wxGridCell_SetTextValue",&_argc0,&_obj1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCell_SetTextValue",_kwnames,&_argo0,&_obj1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextValue. Expected _wxGridCell_p.");
         return NULL;
         }
@@ -164,10 +218,14 @@ static PyObject *_wrap_wxGridCell_SetTextValue(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg1 = new wxString(PyString_AsString(_obj1));
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
 }
-    wxGridCell_SetTextValue(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGridCell_SetTextValue(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     if (_obj1)
@@ -177,277 +235,374 @@ static PyObject *_wrap_wxGridCell_SetTextValue(PyObject *self, PyObject *args) {
 }
 
 #define wxGridCell_GetFont(_swigobj)  (_swigobj->GetFont())
-static PyObject *_wrap_wxGridCell_GetFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxFont * _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetFont",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetFont",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetFont. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    _result = (wxFont *)wxGridCell_GetFont(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont & _result_ref = wxGridCell_GetFont(_arg0);
+    _result = (wxFont *) &_result_ref;
+
+    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 wxGridCell_SetFont(_swigobj,_swigarg0)  (_swigobj->SetFont(_swigarg0))
-static PyObject *_wrap_wxGridCell_SetFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_SetFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _arg0;
     wxFont * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","f", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetFont",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCell_SetFont",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetFont. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) {
+    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 wxGridCell_SetFont. Expected _wxFont_p.");
         return NULL;
         }
     }
-    wxGridCell_SetFont(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGridCell_SetFont(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGridCell_GetTextColour(_swigobj)  (_swigobj->GetTextColour())
-static PyObject *_wrap_wxGridCell_GetTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetTextColour",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetTextColour",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetTextColour. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGridCell_GetTextColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGridCell_GetTextColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGridCell_SetTextColour(_swigobj,_swigarg0)  (_swigobj->SetTextColour(_swigarg0))
-static PyObject *_wrap_wxGridCell_SetTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_SetTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _arg0;
     wxColour * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetTextColour",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCell_SetTextColour",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextColour. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGridCell_SetTextColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGridCell_SetTextColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGridCell_SetTextColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGridCell_GetBackgroundColour(_swigobj)  (_swigobj->GetBackgroundColour())
-static PyObject *_wrap_wxGridCell_GetBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetBackgroundColour",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetBackgroundColour",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetBackgroundColour. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGridCell_GetBackgroundColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGridCell_GetBackgroundColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGridCell_SetBackgroundColour(_swigobj,_swigarg0)  (_swigobj->SetBackgroundColour(_swigarg0))
-static PyObject *_wrap_wxGridCell_SetBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_SetBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _arg0;
     wxColour * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetBackgroundColour",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCell_SetBackgroundColour",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetBackgroundColour. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGridCell_SetBackgroundColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGridCell_SetBackgroundColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGridCell_SetBackgroundColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGridCell_GetBackgroundBrush(_swigobj)  (_swigobj->GetBackgroundBrush())
-static PyObject *_wrap_wxGridCell_GetBackgroundBrush(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetBackgroundBrush(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxBrush * _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetBackgroundBrush",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetBackgroundBrush",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetBackgroundBrush. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    _result = (wxBrush *)wxGridCell_GetBackgroundBrush(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBrush & _result_ref = wxGridCell_GetBackgroundBrush(_arg0);
+    _result = (wxBrush *) &_result_ref;
+
+    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 wxGridCell_GetAlignment(_swigobj)  (_swigobj->GetAlignment())
-static PyObject *_wrap_wxGridCell_GetAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetAlignment",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetAlignment",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetAlignment. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    _result = (int )wxGridCell_GetAlignment(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridCell_GetAlignment(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGridCell_SetAlignment(_swigobj,_swigarg0)  (_swigobj->SetAlignment(_swigarg0))
-static PyObject *_wrap_wxGridCell_SetAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_SetAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","align", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGridCell_SetAlignment",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridCell_SetAlignment",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetAlignment. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    wxGridCell_SetAlignment(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGridCell_SetAlignment(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGridCell_GetCellBitmap(_swigobj)  (_swigobj->GetCellBitmap())
-static PyObject *_wrap_wxGridCell_GetCellBitmap(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_GetCellBitmap(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxBitmap * _result;
     wxGridCell * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGridCell_GetCellBitmap",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridCell_GetCellBitmap",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetCellBitmap. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    _result = (wxBitmap *)wxGridCell_GetCellBitmap(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBitmap *)wxGridCell_GetCellBitmap(_arg0);
+
+    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 wxGridCell_SetCellBitmap(_swigobj,_swigarg0)  (_swigobj->SetCellBitmap(_swigarg0))
-static PyObject *_wrap_wxGridCell_SetCellBitmap(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGridCell_SetCellBitmap(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _arg0;
     wxBitmap * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","bitmap", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetCellBitmap",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridCell_SetCellBitmap",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridCell_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetCellBitmap. Expected _wxGridCell_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) {
+    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 wxGridCell_SetCellBitmap. Expected _wxBitmap_p.");
         return NULL;
         }
     }
-    wxGridCell_SetCellBitmap(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGridCell_SetCellBitmap(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -477,141 +632,178 @@ static void *SwigwxGridTowxEvtHandler(void *ptr) {
 }
 
 #define new_wxGrid(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxGrid(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
-static PyObject *_wrap_new_wxGrid(PyObject *self, PyObject *args) {
+static PyObject *_wrap_new_wxGrid(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _result;
     wxWindow * _arg0;
     wxWindowID  _arg1;
-    wxPoint * _arg2 = &wxPyDefaultPosition;
-    wxSize * _arg3 = &wxPyDefaultSize;
-    long  _arg4 = 0;
-    char * _arg5 = "grid";
-    char * _argc0 = 0;
-    char * _argc2 = 0;
-    char * _argc3 = 0;
+    wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition;
+    wxSize * _arg3 = (wxSize *) &wxPyDefaultSize;
+    long  _arg4 = (long ) 0;
+    char * _arg5 = (char *) "grid";
+    PyObject * _argo0 = 0;
+    wxPoint  temp;
+    PyObject * _obj2 = 0;
+    wxSize  temp0;
+    PyObject * _obj3 = 0;
+    char *_kwnames[] = { "parent","id","pos","size","style","name", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si|ssls:new_wxGrid",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|OOls:new_wxGrid",_kwnames,&_argo0,&_arg1,&_obj2,&_obj3,&_arg4,&_arg5)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) {
+    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_wxGrid. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGrid. Expected _wxPoint_p.");
+    if (_obj2)
+{
+    _arg2 = &temp;
+    if (! wxPoint_helper(_obj2, &_arg2))
         return NULL;
-        }
-    }
-    if (_argc3) {
-        if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGrid. Expected _wxSize_p.");
+}
+    if (_obj3)
+{
+    _arg3 = &temp0;
+    if (! wxSize_helper(_obj3, &_arg3))
         return NULL;
-        }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxGrid *)new_wxGrid(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGrid_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
     }
-    _result = (wxGrid *)new_wxGrid(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxGrid_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
 
 #define wxGrid_AdjustScrollbars(_swigobj)  (_swigobj->AdjustScrollbars())
-static PyObject *_wrap_wxGrid_AdjustScrollbars(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_AdjustScrollbars(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_AdjustScrollbars",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_AdjustScrollbars",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AdjustScrollbars. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_AdjustScrollbars(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_AdjustScrollbars(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_AppendCols(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AppendCols(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_AppendCols(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_AppendCols(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    int  _arg1 = 1;
-    bool  _arg2 = (1);
-    char * _argc0 = 0;
-    int tempbool2;
+    int  _arg1 = (int ) 1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","n","updateLabels", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|ii:wxGrid_AppendCols",&_argc0,&_arg1,&tempbool2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|ii:wxGrid_AppendCols",_kwnames,&_argo0,&_arg1,&tempbool2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AppendCols. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg2 = (bool ) tempbool2;
-    _result = (bool )wxGrid_AppendCols(_arg0,_arg1,_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_AppendCols(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_AppendRows(_swigobj,_swigarg0,_swigarg1)  (_swigobj->AppendRows(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_AppendRows(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_AppendRows(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    int  _arg1 = 1;
-    bool  _arg2 = (1);
-    char * _argc0 = 0;
-    int tempbool2;
+    int  _arg1 = (int ) 1;
+    bool  _arg2 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool2 = (int) TRUE;
+    char *_kwnames[] = { "self","n","updateLabels", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|ii:wxGrid_AppendRows",&_argc0,&_arg1,&tempbool2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|ii:wxGrid_AppendRows",_kwnames,&_argo0,&_arg1,&tempbool2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AppendRows. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg2 = (bool ) tempbool2;
-    _result = (bool )wxGrid_AppendRows(_arg0,_arg1,_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_AppendRows(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_BeginBatch(_swigobj)  (_swigobj->BeginBatch())
-static PyObject *_wrap_wxGrid_BeginBatch(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_BeginBatch(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_BeginBatch",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_BeginBatch",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_BeginBatch. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_BeginBatch(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_BeginBatch(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_CellHitTest(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->CellHitTest(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
-static PyObject *_wrap_wxGrid_CellHitTest(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_CellHitTest(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
@@ -621,7 +813,8 @@ static PyObject *_wrap_wxGrid_CellHitTest(PyObject *self, PyObject *args) {
     int  temp;
     int * _arg4;
     int  temp0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y", NULL };
 
     self = self;
 {
@@ -630,16 +823,21 @@ static PyObject *_wrap_wxGrid_CellHitTest(PyObject *self, PyObject *args) {
 {
   _arg4 = &temp0;
 }
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_CellHitTest",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_CellHitTest",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CellHitTest. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (bool )wxGrid_CellHitTest(_arg0,_arg1,_arg2,_arg3,_arg4);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_CellHitTest(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     PyObject *o;
     o = PyInt_FromLong((long) (*_arg3));
@@ -657,1106 +855,1529 @@ static bool  wxGrid_CreateGrid(wxGrid *self,int  rows,int  cols,short  defaultWi
             return self->CreateGrid(rows, cols, NULL, NULL,
                                     defaultWidth, defaultHeight);
         }
-static PyObject *_wrap_wxGrid_CreateGrid(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_CreateGrid(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    short  _arg3 = wxGRID_DEFAULT_CELL_WIDTH;
-    short  _arg4 = wxGRID_DEFAULT_CELL_HEIGHT;
-    char * _argc0 = 0;
+    short  _arg3 = (short ) wxGRID_DEFAULT_CELL_WIDTH;
+    short  _arg4 = (short ) wxGRID_DEFAULT_CELL_HEIGHT;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","rows","cols","defaultWidth","defaultHeight", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii|hh:wxGrid_CreateGrid",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii|hh:wxGrid_CreateGrid",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CreateGrid. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (bool )wxGrid_CreateGrid(_arg0,_arg1,_arg2,_arg3,_arg4);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_CreateGrid(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_CurrentCellVisible(_swigobj)  (_swigobj->CurrentCellVisible())
-static PyObject *_wrap_wxGrid_CurrentCellVisible(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_CurrentCellVisible(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_CurrentCellVisible",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_CurrentCellVisible",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CurrentCellVisible. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (bool )wxGrid_CurrentCellVisible(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_CurrentCellVisible(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_DeleteCols(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DeleteCols(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_DeleteCols(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_DeleteCols(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    int  _arg1 = 0;
-    int  _arg2 = 1;
-    bool  _arg3 = (1);
-    char * _argc0 = 0;
-    int tempbool3;
+    int  _arg1 = (int ) 0;
+    int  _arg2 = (int ) 1;
+    bool  _arg3 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool3 = (int) TRUE;
+    char *_kwnames[] = { "self","pos","n","updateLabels", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|iii:wxGrid_DeleteCols",&_argc0,&_arg1,&_arg2,&tempbool3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|iii:wxGrid_DeleteCols",_kwnames,&_argo0,&_arg1,&_arg2,&tempbool3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_DeleteCols. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg3 = (bool ) tempbool3;
-    _result = (bool )wxGrid_DeleteCols(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_DeleteCols(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_DeleteRows(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DeleteRows(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_DeleteRows(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_DeleteRows(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    int  _arg1 = 0;
-    int  _arg2 = 1;
-    bool  _arg3 = (1);
-    char * _argc0 = 0;
-    int tempbool3;
+    int  _arg1 = (int ) 0;
+    int  _arg2 = (int ) 1;
+    bool  _arg3 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool3 = (int) TRUE;
+    char *_kwnames[] = { "self","pos","n","updateLabels", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|iii:wxGrid_DeleteRows",&_argc0,&_arg1,&_arg2,&tempbool3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|iii:wxGrid_DeleteRows",_kwnames,&_argo0,&_arg1,&_arg2,&tempbool3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_DeleteRows. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg3 = (bool ) tempbool3;
-    _result = (bool )wxGrid_DeleteRows(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_DeleteRows(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_EndBatch(_swigobj)  (_swigobj->EndBatch())
-static PyObject *_wrap_wxGrid_EndBatch(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_EndBatch(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_EndBatch",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_EndBatch",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_EndBatch. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_EndBatch(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_EndBatch(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_GetBatchCount(_swigobj)  (_swigobj->GetBatchCount())
-static PyObject *_wrap_wxGrid_GetBatchCount(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetBatchCount(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetBatchCount",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetBatchCount",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetBatchCount. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetBatchCount(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetBatchCount(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetCell(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetCell(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetCell(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCell(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGridCell * _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCell",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCell",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCell. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxGridCell *)wxGrid_GetCell(_arg0,_arg1,_arg2);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxGridCell *)wxGrid_GetCell(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxGrid_GetCellAlignment(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetCellAlignment(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetCellAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCellAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellAlignment",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellAlignment",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellAlignment. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetCellAlignment(_arg0,_arg1,_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetCellAlignment(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetDefCellAlignment(_swigobj)  (_swigobj->GetCellAlignment())
-static PyObject *_wrap_wxGrid_GetDefCellAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetDefCellAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellAlignment",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetDefCellAlignment",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellAlignment. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetDefCellAlignment(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetDefCellAlignment(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetCellBackgroundColour(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetCellBackgroundColour(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetCellBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCellBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellBackgroundColour",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellBackgroundColour",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellBackgroundColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGrid_GetCellBackgroundColour(_arg0,_arg1,_arg2);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGrid_GetCellBackgroundColour(_arg0,_arg1,_arg2);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGrid_GetDefCellBackgroundColour(_swigobj)  (_swigobj->GetCellBackgroundColour())
-static PyObject *_wrap_wxGrid_GetDefCellBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetDefCellBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellBackgroundColour",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetDefCellBackgroundColour",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellBackgroundColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGrid_GetDefCellBackgroundColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGrid_GetDefCellBackgroundColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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;
+}
+
+static PyObject * wxGrid_GetCells(wxGrid *self) {
+            int row, col;
+            PyObject* rows = PyList_New(0);
+            for (row=0; row < self->GetRows(); row++) {
+                PyObject* rowList = PyList_New(0);
+                for (col=0; col < self->GetCols(); col++) {
+                    wxGridCell* cell = self->GetCell(row, col);
+
+                    bool doSave = wxPyRestoreThread();
+                    PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell");
+                    wxPySaveThread(doSave);
+
+                    if (PyList_Append(rowList, pyCell) == -1)
+                        return NULL;
+                }
+                if (PyList_Append(rows, rowList) == -1)
+                    return NULL;
+            }
+            return rows;
+        }
+static PyObject *_wrap_wxGrid_GetCells(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    PyObject * _result;
+    wxGrid * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetCells",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCells. Expected _wxGrid_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxGrid_GetCells(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
+  _resultobj = _result;
+}
     return _resultobj;
 }
 
 #define wxGrid_GetCellTextColour(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetCellTextColour(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetCellTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCellTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellTextColour",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellTextColour",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellTextColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGrid_GetCellTextColour(_arg0,_arg1,_arg2);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGrid_GetCellTextColour(_arg0,_arg1,_arg2);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGrid_GetDefCellTextColour(_swigobj)  (_swigobj->GetCellTextColour())
-static PyObject *_wrap_wxGrid_GetDefCellTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetDefCellTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellTextColour",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetDefCellTextColour",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellTextColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGrid_GetDefCellTextColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGrid_GetDefCellTextColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGrid_GetCellTextFont(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetCellTextFont(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetCellTextFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCellTextFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxFont * _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellTextFont",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellTextFont",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellTextFont. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxFont *)wxGrid_GetCellTextFont(_arg0,_arg1,_arg2);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont & _result_ref = wxGrid_GetCellTextFont(_arg0,_arg1,_arg2);
+    _result = (wxFont *) &_result_ref;
+
+    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 wxGrid_GetDefCellTextFont(_swigobj)  (_swigobj->GetCellTextFont())
-static PyObject *_wrap_wxGrid_GetDefCellTextFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetDefCellTextFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxFont * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellTextFont",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetDefCellTextFont",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellTextFont. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxFont *)wxGrid_GetDefCellTextFont(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont & _result_ref = wxGrid_GetDefCellTextFont(_arg0);
+    _result = (wxFont *) &_result_ref;
+
+    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 wxGrid_GetCellValue(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetCellValue(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetCellValue(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCellValue(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxString * _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellValue",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetCellValue",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellValue. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxString & _result_ref = wxGrid_GetCellValue(_arg0,_arg1,_arg2);
-    _result = (wxString *) &_result_ref;
 {
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxString & _result_ref = wxGrid_GetCellValue(_arg0,_arg1,_arg2);
+    _result = (wxString *) &_result_ref;
+
+    wxPy_END_ALLOW_THREADS;
+}{
     _resultobj = PyString_FromString(WXSTRINGCAST (*_result));
 }
     return _resultobj;
 }
 
 #define wxGrid_GetCols(_swigobj)  (_swigobj->GetCols())
-static PyObject *_wrap_wxGrid_GetCols(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCols(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetCols",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetCols",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCols. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetCols(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetCols(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetColumnWidth(_swigobj,_swigarg0)  (_swigobj->GetColumnWidth(_swigarg0))
-static PyObject *_wrap_wxGrid_GetColumnWidth(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetColumnWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGrid_GetColumnWidth",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_GetColumnWidth",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetColumnWidth. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetColumnWidth(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetColumnWidth(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetCurrentRect(_swigobj)  (_swigobj->GetCurrentRect())
-static PyObject *_wrap_wxGrid_GetCurrentRect(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCurrentRect(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxRect * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetCurrentRect",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetCurrentRect",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCurrentRect. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxRect & _result_ref = wxGrid_GetCurrentRect(_arg0);
-    _result = (wxRect *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxRect (wxGrid_GetCurrentRect(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
 
 #define wxGrid_GetCursorColumn(_swigobj)  (_swigobj->GetCursorColumn())
-static PyObject *_wrap_wxGrid_GetCursorColumn(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCursorColumn(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetCursorColumn",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetCursorColumn",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCursorColumn. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetCursorColumn(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetCursorColumn(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetCursorRow(_swigobj)  (_swigobj->GetCursorRow())
-static PyObject *_wrap_wxGrid_GetCursorRow(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetCursorRow(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetCursorRow",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetCursorRow",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCursorRow. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetCursorRow(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetCursorRow(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetEditable(_swigobj)  (_swigobj->GetEditable())
-static PyObject *_wrap_wxGrid_GetEditable(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetEditable(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetEditable",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetEditable",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetEditable. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (bool )wxGrid_GetEditable(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_GetEditable(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetHorizScrollBar(_swigobj)  (_swigobj->GetHorizScrollBar())
-static PyObject *_wrap_wxGrid_GetHorizScrollBar(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetHorizScrollBar(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxScrollBar * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetHorizScrollBar",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetHorizScrollBar",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetHorizScrollBar. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxScrollBar *)wxGrid_GetHorizScrollBar(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxScrollBar *)wxGrid_GetHorizScrollBar(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxGrid_GetLabelAlignment(_swigobj,_swigarg0)  (_swigobj->GetLabelAlignment(_swigarg0))
-static PyObject *_wrap_wxGrid_GetLabelAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetLabelAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","orientation", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGrid_GetLabelAlignment",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_GetLabelAlignment",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelAlignment. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetLabelAlignment(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetLabelAlignment(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetLabelBackgroundColour(_swigobj)  (_swigobj->GetLabelBackgroundColour())
-static PyObject *_wrap_wxGrid_GetLabelBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetLabelBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelBackgroundColour",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetLabelBackgroundColour",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelBackgroundColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGrid_GetLabelBackgroundColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGrid_GetLabelBackgroundColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGrid_GetLabelSize(_swigobj,_swigarg0)  (_swigobj->GetLabelSize(_swigarg0))
-static PyObject *_wrap_wxGrid_GetLabelSize(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetLabelSize(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","orientation", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGrid_GetLabelSize",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_GetLabelSize",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelSize. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetLabelSize(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetLabelSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetLabelTextColour(_swigobj)  (_swigobj->GetLabelTextColour())
-static PyObject *_wrap_wxGrid_GetLabelTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetLabelTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxColour * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelTextColour",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetLabelTextColour",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelTextColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxColour & _result_ref = wxGrid_GetLabelTextColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxGrid_GetLabelTextColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+
+    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 wxGrid_GetLabelTextFont(_swigobj)  (_swigobj->GetLabelTextFont())
-static PyObject *_wrap_wxGrid_GetLabelTextFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetLabelTextFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxFont * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelTextFont",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetLabelTextFont",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelTextFont. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxFont *)wxGrid_GetLabelTextFont(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont & _result_ref = wxGrid_GetLabelTextFont(_arg0);
+    _result = (wxFont *) &_result_ref;
+
+    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 wxGrid_GetLabelValue(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetLabelValue(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_GetLabelValue(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetLabelValue(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxString * _result;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","orientation","pos", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_GetLabelValue",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_GetLabelValue",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelValue. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxString & _result_ref = wxGrid_GetLabelValue(_arg0,_arg1,_arg2);
-    _result = (wxString *) &_result_ref;
 {
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxString & _result_ref = wxGrid_GetLabelValue(_arg0,_arg1,_arg2);
+    _result = (wxString *) &_result_ref;
+
+    wxPy_END_ALLOW_THREADS;
+}{
     _resultobj = PyString_FromString(WXSTRINGCAST (*_result));
 }
     return _resultobj;
 }
 
 #define wxGrid_GetRowHeight(_swigobj,_swigarg0)  (_swigobj->GetRowHeight(_swigarg0))
-static PyObject *_wrap_wxGrid_GetRowHeight(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetRowHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGrid_GetRowHeight",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_GetRowHeight",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetRowHeight. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetRowHeight(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetRowHeight(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetRows(_swigobj)  (_swigobj->GetRows())
-static PyObject *_wrap_wxGrid_GetRows(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetRows(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetRows",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetRows",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetRows. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetRows(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetRows(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetScrollPosX(_swigobj)  (_swigobj->GetScrollPosX())
-static PyObject *_wrap_wxGrid_GetScrollPosX(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetScrollPosX(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetScrollPosX",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetScrollPosX",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetScrollPosX. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetScrollPosX(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetScrollPosX(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetScrollPosY(_swigobj)  (_swigobj->GetScrollPosY())
-static PyObject *_wrap_wxGrid_GetScrollPosY(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetScrollPosY(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetScrollPosY",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetScrollPosY",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetScrollPosY. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (int )wxGrid_GetScrollPosY(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGrid_GetScrollPosY(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_GetTextItem(_swigobj)  (_swigobj->GetTextItem())
-static PyObject *_wrap_wxGrid_GetTextItem(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetTextItem(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxTextCtrl * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetTextItem",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetTextItem",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetTextItem. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxTextCtrl *)wxGrid_GetTextItem(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxTextCtrl *)wxGrid_GetTextItem(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxGrid_GetVertScrollBar(_swigobj)  (_swigobj->GetVertScrollBar())
-static PyObject *_wrap_wxGrid_GetVertScrollBar(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_GetVertScrollBar(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxScrollBar * _result;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_GetVertScrollBar",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetVertScrollBar",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetVertScrollBar. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    _result = (wxScrollBar *)wxGrid_GetVertScrollBar(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxScrollBar *)wxGrid_GetVertScrollBar(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxGrid_InsertCols(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->InsertCols(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_InsertCols(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_InsertCols(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    int  _arg1 = 0;
-    int  _arg2 = 1;
-    bool  _arg3 = (1);
-    char * _argc0 = 0;
-    int tempbool3;
+    int  _arg1 = (int ) 0;
+    int  _arg2 = (int ) 1;
+    bool  _arg3 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool3 = (int) TRUE;
+    char *_kwnames[] = { "self","pos","n","updateLabels", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|iii:wxGrid_InsertCols",&_argc0,&_arg1,&_arg2,&tempbool3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|iii:wxGrid_InsertCols",_kwnames,&_argo0,&_arg1,&_arg2,&tempbool3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_InsertCols. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg3 = (bool ) tempbool3;
-    _result = (bool )wxGrid_InsertCols(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_InsertCols(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxGrid_InsertRows(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->InsertRows(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_InsertRows(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_InsertRows(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxGrid * _arg0;
-    int  _arg1 = 0;
-    int  _arg2 = 1;
-    bool  _arg3 = (1);
-    char * _argc0 = 0;
-    int tempbool3;
+    int  _arg1 = (int ) 0;
+    int  _arg2 = (int ) 1;
+    bool  _arg3 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool3 = (int) TRUE;
+    char *_kwnames[] = { "self","pos","n","updateLabels", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|iii:wxGrid_InsertRows",&_argc0,&_arg1,&_arg2,&tempbool3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|iii:wxGrid_InsertRows",_kwnames,&_argo0,&_arg1,&_arg2,&tempbool3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_InsertRows. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg3 = (bool ) tempbool3;
-    _result = (bool )wxGrid_InsertRows(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_InsertRows(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGrid_OnActivate(_swigobj,_swigarg0)  (_swigobj->OnActivate(_swigarg0))
+static PyObject *_wrap_wxGrid_OnActivate(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGrid * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","active", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_OnActivate",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_OnActivate. Expected _wxGrid_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_OnActivate(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetCellAlignment(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetCellAlignment(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_SetCellAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetCellAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
     int  _arg3;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","alignment","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"siii:wxGrid_SetCellAlignment",&_argc0,&_arg1,&_arg2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiii:wxGrid_SetCellAlignment",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellAlignment. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetCellAlignment(_arg0,_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetCellAlignment(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetDefCellAlignment(_swigobj,_swigarg0)  (_swigobj->SetCellAlignment(_swigarg0))
-static PyObject *_wrap_wxGrid_SetDefCellAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetDefCellAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","alignment", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGrid_SetDefCellAlignment",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_SetDefCellAlignment",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellAlignment. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetDefCellAlignment(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetDefCellAlignment(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetCellBackgroundColour(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetCellBackgroundColour(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_SetCellBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetCellBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxColour * _arg1;
     int  _arg2;
     int  _arg3;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellBackgroundColour",&_argc0,&_argc1,&_arg2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOii:wxGrid_SetCellBackgroundColour",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellBackgroundColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGrid_SetCellBackgroundColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGrid_SetCellBackgroundColour(_arg0,*_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetCellBackgroundColour(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetDefCellBackgroundColour(_swigobj,_swigarg0)  (_swigobj->SetCellBackgroundColour(_swigarg0))
-static PyObject *_wrap_wxGrid_SetDefCellBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetDefCellBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxColour * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellBackgroundColour",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetDefCellBackgroundColour",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellBackgroundColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGrid_SetDefCellBackgroundColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGrid_SetDefCellBackgroundColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetDefCellBackgroundColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetCellTextColour(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetCellTextColour(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_SetCellTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetCellTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxColour * _arg1;
     int  _arg2;
     int  _arg3;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellTextColour",&_argc0,&_argc1,&_arg2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOii:wxGrid_SetCellTextColour",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGrid_SetCellTextColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGrid_SetCellTextColour(_arg0,*_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetCellTextColour(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetDefCellTextColour(_swigobj,_swigarg0)  (_swigobj->SetCellTextColour(_swigarg0))
-static PyObject *_wrap_wxGrid_SetDefCellTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetDefCellTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxColour * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","colour", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellTextColour",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetDefCellTextColour",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGrid_SetDefCellTextColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGrid_SetDefCellTextColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetDefCellTextColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetCellTextFont(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetCellTextFont(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_SetCellTextFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetCellTextFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxFont * _arg1;
     int  _arg2;
     int  _arg3;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","font","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellTextFont",&_argc0,&_argc1,&_arg2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOii:wxGrid_SetCellTextFont",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextFont. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) {
+    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 wxGrid_SetCellTextFont. Expected _wxFont_p.");
         return NULL;
         }
     }
-    wxGrid_SetCellTextFont(_arg0,_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetCellTextFont(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetDefCellTextFont(_swigobj,_swigarg0)  (_swigobj->SetCellTextFont(_swigarg0))
-static PyObject *_wrap_wxGrid_SetDefCellTextFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetDefCellTextFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxFont * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","font", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellTextFont",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetDefCellTextFont",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextFont. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) {
+    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 wxGrid_SetDefCellTextFont. Expected _wxFont_p.");
         return NULL;
         }
     }
-    wxGrid_SetDefCellTextFont(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetDefCellTextFont(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetCellValue(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetCellValue(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_SetCellValue(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetCellValue(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxString * _arg1;
     int  _arg2;
     int  _arg3;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
     PyObject * _obj1 = 0;
+    char *_kwnames[] = { "self","val","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sOii:wxGrid_SetCellValue",&_argc0,&_obj1,&_arg2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOii:wxGrid_SetCellValue",_kwnames,&_argo0,&_obj1,&_arg2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellValue. Expected _wxGrid_p.");
         return NULL;
         }
@@ -1766,10 +2387,14 @@ static PyObject *_wrap_wxGrid_SetCellValue(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg1 = new wxString(PyString_AsString(_obj1));
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
 }
-    wxGrid_SetCellValue(_arg0,*_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetCellValue(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     if (_obj1)
@@ -1779,252 +2404,312 @@ static PyObject *_wrap_wxGrid_SetCellValue(PyObject *self, PyObject *args) {
 }
 
 #define wxGrid_SetColumnWidth(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetColumnWidth(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_SetColumnWidth(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetColumnWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","col","width", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_SetColumnWidth",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_SetColumnWidth",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetColumnWidth. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetColumnWidth(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetColumnWidth(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetDividerPen(_swigobj,_swigarg0)  (_swigobj->SetDividerPen(_swigarg0))
-static PyObject *_wrap_wxGrid_SetDividerPen(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetDividerPen(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxPen * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","pen", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDividerPen",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetDividerPen",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDividerPen. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPen_p")) {
+    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 wxGrid_SetDividerPen. Expected _wxPen_p.");
         return NULL;
         }
     }
-    wxGrid_SetDividerPen(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetDividerPen(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetEditable(_swigobj,_swigarg0)  (_swigobj->SetEditable(_swigarg0))
-static PyObject *_wrap_wxGrid_SetEditable(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetEditable(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     bool  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
     int tempbool1;
+    char *_kwnames[] = { "self","editable", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxGrid_SetEditable",&_argc0,&tempbool1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGrid_SetEditable",_kwnames,&_argo0,&tempbool1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetEditable. Expected _wxGrid_p.");
         return NULL;
         }
     }
     _arg1 = (bool ) tempbool1;
-    wxGrid_SetEditable(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetEditable(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetGridCursor(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetGridCursor(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_SetGridCursor(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetGridCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","col", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_SetGridCursor",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_SetGridCursor",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetGridCursor. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetGridCursor(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetGridCursor(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetLabelAlignment(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetLabelAlignment(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_SetLabelAlignment(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetLabelAlignment(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","orientation","alignment", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_SetLabelAlignment",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_SetLabelAlignment",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelAlignment. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetLabelAlignment(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetLabelAlignment(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetLabelBackgroundColour(_swigobj,_swigarg0)  (_swigobj->SetLabelBackgroundColour(_swigarg0))
-static PyObject *_wrap_wxGrid_SetLabelBackgroundColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetLabelBackgroundColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxColour * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","value", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelBackgroundColour",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetLabelBackgroundColour",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelBackgroundColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGrid_SetLabelBackgroundColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGrid_SetLabelBackgroundColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetLabelBackgroundColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetLabelSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetLabelSize(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_SetLabelSize(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetLabelSize(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","orientation","size", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_SetLabelSize",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_SetLabelSize",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelSize. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetLabelSize(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetLabelSize(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetLabelTextColour(_swigobj,_swigarg0)  (_swigobj->SetLabelTextColour(_swigarg0))
-static PyObject *_wrap_wxGrid_SetLabelTextColour(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetLabelTextColour(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxColour * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","value", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelTextColour",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetLabelTextColour",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextColour. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) {
+    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 wxGrid_SetLabelTextColour. Expected _wxColour_p.");
         return NULL;
         }
     }
-    wxGrid_SetLabelTextColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
-    _resultobj = Py_None;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetLabelTextColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetLabelTextFont(_swigobj,_swigarg0)  (_swigobj->SetLabelTextFont(_swigarg0))
-static PyObject *_wrap_wxGrid_SetLabelTextFont(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetLabelTextFont(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     wxFont * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","font", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelTextFont",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGrid_SetLabelTextFont",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextFont. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) {
+    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 wxGrid_SetLabelTextFont. Expected _wxFont_p.");
         return NULL;
         }
     }
-    wxGrid_SetLabelTextFont(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetLabelTextFont(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_SetLabelValue(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SetLabelValue(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxGrid_SetLabelValue(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetLabelValue(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     wxString * _arg2;
     int  _arg3;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
     PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","orientation","value","pos", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"siOi:wxGrid_SetLabelValue",&_argc0,&_arg1,&_obj2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiOi:wxGrid_SetLabelValue",_kwnames,&_argo0,&_arg1,&_obj2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelValue. Expected _wxGrid_p.");
         return NULL;
         }
@@ -2034,10 +2719,14 @@ static PyObject *_wrap_wxGrid_SetLabelValue(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg2 = new wxString(PyString_AsString(_obj2));
+    _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2));
 }
-    wxGrid_SetLabelValue(_arg0,_arg1,*_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetLabelValue(_arg0,_arg1,*_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     if (_obj2)
@@ -2047,49 +2736,714 @@ static PyObject *_wrap_wxGrid_SetLabelValue(PyObject *self, PyObject *args) {
 }
 
 #define wxGrid_SetRowHeight(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetRowHeight(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxGrid_SetRowHeight(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_SetRowHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","row","height", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxGrid_SetRowHeight",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxGrid_SetRowHeight",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetRowHeight. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_SetRowHeight(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetRowHeight(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxGrid_UpdateDimensions(_swigobj)  (_swigobj->UpdateDimensions())
-static PyObject *_wrap_wxGrid_UpdateDimensions(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxGrid_UpdateDimensions(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxGrid * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxGrid_UpdateDimensions",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_UpdateDimensions",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_UpdateDimensions. Expected _wxGrid_p.");
         return NULL;
         }
     }
-    wxGrid_UpdateDimensions(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_UpdateDimensions(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
+#define wxGrid_GetEditInPlace(_swigobj)  (_swigobj->GetEditInPlace())
+static PyObject *_wrap_wxGrid_GetEditInPlace(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGrid * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGrid_GetEditInPlace",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetEditInPlace. Expected _wxGrid_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGrid_GetEditInPlace(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGrid_SetEditInPlace(_swigobj,_swigarg0)  (_swigobj->SetEditInPlace(_swigarg0))
+static PyObject *_wrap_wxGrid_SetEditInPlace(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGrid * _arg0;
+    int  _arg1 = (int ) TRUE;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","edit", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxGrid_SetEditInPlace",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGrid_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetEditInPlace. Expected _wxGrid_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxGrid_SetEditInPlace(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxGridEventTowxEvent(void *ptr) {
+    wxGridEvent *src;
+    wxEvent *dest;
+    src = (wxGridEvent *) ptr;
+    dest = (wxEvent *) src;
+    return (void *) dest;
+}
+
+#define wxGridEvent_m_row_set(_swigobj,_swigval) (_swigobj->m_row = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_row_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","m_row", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridEvent_m_row_set",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_row_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_row_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_row_get(_swigobj) ((int ) _swigobj->m_row)
+static PyObject *_wrap_wxGridEvent_m_row_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_row_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_row_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_row_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_col_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","m_col", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridEvent_m_col_set",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_col_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_col_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_col_get(_swigobj) ((int ) _swigobj->m_col)
+static PyObject *_wrap_wxGridEvent_m_col_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_col_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_col_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_col_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_x_set(_swigobj,_swigval) (_swigobj->m_x = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_x_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","m_x", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridEvent_m_x_set",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_x_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_x_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_x_get(_swigobj) ((int ) _swigobj->m_x)
+static PyObject *_wrap_wxGridEvent_m_x_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_x_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_x_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_x_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_y_set(_swigobj,_swigval) (_swigobj->m_y = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_y_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","m_y", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridEvent_m_y_set",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_y_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_y_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_y_get(_swigobj) ((int ) _swigobj->m_y)
+static PyObject *_wrap_wxGridEvent_m_y_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_y_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_y_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_m_y_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_control_set(_swigobj,_swigval) (_swigobj->m_control = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_control_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGridEvent * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","m_control", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridEvent_m_control_set",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_control_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGridEvent_m_control_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_control_get(_swigobj) ((bool ) _swigobj->m_control)
+static PyObject *_wrap_wxGridEvent_m_control_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_control_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_control_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGridEvent_m_control_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_shift_set(_swigobj,_swigval) (_swigobj->m_shift = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_shift_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGridEvent * _arg0;
+    bool  _arg1;
+    PyObject * _argo0 = 0;
+    int tempbool1;
+    char *_kwnames[] = { "self","m_shift", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxGridEvent_m_shift_set",_kwnames,&_argo0,&tempbool1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_shift_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+    _arg1 = (bool ) tempbool1;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGridEvent_m_shift_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_shift_get(_swigobj) ((bool ) _swigobj->m_shift)
+static PyObject *_wrap_wxGridEvent_m_shift_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_shift_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_shift_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGridEvent_m_shift_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_m_cell_set(_swigobj,_swigval) (_swigobj->m_cell = _swigval,_swigval)
+static PyObject *_wrap_wxGridEvent_m_cell_set(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCell * _result;
+    wxGridEvent * _arg0;
+    wxGridCell * _arg1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","m_cell", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxGridEvent_m_cell_set",_kwnames,&_argo0,&_argo1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_set. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxGridCell_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridEvent_m_cell_set. Expected _wxGridCell_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxGridCell *)wxGridEvent_m_cell_set(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxGridEvent_m_cell_get(_swigobj) ((wxGridCell *) _swigobj->m_cell)
+static PyObject *_wrap_wxGridEvent_m_cell_get(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCell * _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_m_cell_get",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_get. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxGridCell *)wxGridEvent_m_cell_get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxGridEvent_GetRow(_swigobj)  (_swigobj->GetRow())
+static PyObject *_wrap_wxGridEvent_GetRow(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_GetRow",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetRow. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_GetRow(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_GetCol(_swigobj)  (_swigobj->GetCol())
+static PyObject *_wrap_wxGridEvent_GetCol(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_GetCol",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetCol. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxGridEvent_GetCol(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_GetPosition(_swigobj)  (_swigobj->GetPosition())
+static PyObject *_wrap_wxGridEvent_GetPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxPoint * _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_GetPosition",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetPosition. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxPoint (wxGridEvent_GetPosition(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p");
+    _resultobj = Py_BuildValue("s",_ptemp);
+    return _resultobj;
+}
+
+#define wxGridEvent_ControlDown(_swigobj)  (_swigobj->ControlDown())
+static PyObject *_wrap_wxGridEvent_ControlDown(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_ControlDown",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_ControlDown. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGridEvent_ControlDown(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_ShiftDown(_swigobj)  (_swigobj->ShiftDown())
+static PyObject *_wrap_wxGridEvent_ShiftDown(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_ShiftDown",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_ShiftDown. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxGridEvent_ShiftDown(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxGridEvent_GetCell(_swigobj)  (_swigobj->GetCell())
+static PyObject *_wrap_wxGridEvent_GetCell(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxGridCell * _result;
+    wxGridEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxGridEvent_GetCell",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxGridEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_GetCell. Expected _wxGridEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxGridCell *)wxGridEvent_GetCell(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+static void *SwigwxNotebookEventTowxNotifyEvent(void *ptr) {
+    wxNotebookEvent *src;
+    wxNotifyEvent *dest;
+    src = (wxNotebookEvent *) ptr;
+    dest = (wxNotifyEvent *) src;
+    return (void *) dest;
+}
+
 static void *SwigwxNotebookEventTowxCommandEvent(void *ptr) {
     wxNotebookEvent *src;
     wxCommandEvent *dest;
@@ -2107,44 +3461,112 @@ static void *SwigwxNotebookEventTowxEvent(void *ptr) {
 }
 
 #define wxNotebookEvent_GetSelection(_swigobj)  (_swigobj->GetSelection())
-static PyObject *_wrap_wxNotebookEvent_GetSelection(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebookEvent_GetSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebookEvent * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebookEvent_GetSelection",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebookEvent_GetSelection",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebookEvent_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_GetSelection. Expected _wxNotebookEvent_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebookEvent_GetSelection(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebookEvent_GetSelection(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebookEvent_GetOldSelection(_swigobj)  (_swigobj->GetOldSelection())
-static PyObject *_wrap_wxNotebookEvent_GetOldSelection(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebookEvent_GetOldSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebookEvent * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebookEvent_GetOldSelection",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebookEvent_GetOldSelection",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebookEvent_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_GetOldSelection. Expected _wxNotebookEvent_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebookEvent_GetOldSelection(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebookEvent_GetOldSelection(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxNotebookEvent_SetOldSelection(_swigobj,_swigarg0)  (_swigobj->SetOldSelection(_swigarg0))
+static PyObject *_wrap_wxNotebookEvent_SetOldSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxNotebookEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","page", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebookEvent_SetOldSelection",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_SetOldSelection. Expected _wxNotebookEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxNotebookEvent_SetOldSelection(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxNotebookEvent_SetSelection(_swigobj,_swigarg0)  (_swigobj->SetSelection(_swigarg0))
+static PyObject *_wrap_wxNotebookEvent_SetSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxNotebookEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","page", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebookEvent_SetSelection",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebookEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_SetSelection. Expected _wxNotebookEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxNotebookEvent_SetSelection(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
     return _resultobj;
 }
 
@@ -2173,150 +3595,189 @@ static void *SwigwxNotebookTowxEvtHandler(void *ptr) {
 }
 
 #define new_wxNotebook(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxNotebook(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
-static PyObject *_wrap_new_wxNotebook(PyObject *self, PyObject *args) {
+static PyObject *_wrap_new_wxNotebook(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxNotebook * _result;
     wxWindow * _arg0;
     wxWindowID  _arg1;
-    wxPoint * _arg2 = &wxPyDefaultPosition;
-    wxSize * _arg3 = &wxPyDefaultSize;
-    long  _arg4 = 0;
-    char * _arg5 = "notebook";
-    char * _argc0 = 0;
-    char * _argc2 = 0;
-    char * _argc3 = 0;
+    wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition;
+    wxSize * _arg3 = (wxSize *) &wxPyDefaultSize;
+    long  _arg4 = (long ) 0;
+    char * _arg5 = (char *) "notebook";
+    PyObject * _argo0 = 0;
+    wxPoint  temp;
+    PyObject * _obj2 = 0;
+    wxSize  temp0;
+    PyObject * _obj3 = 0;
+    char *_kwnames[] = { "parent","id","pos","size","style","name", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si|ssls:new_wxNotebook",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|OOls:new_wxNotebook",_kwnames,&_argo0,&_arg1,&_obj2,&_obj3,&_arg4,&_arg5)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) {
+    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_wxNotebook. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxNotebook. Expected _wxPoint_p.");
+    if (_obj2)
+{
+    _arg2 = &temp;
+    if (! wxPoint_helper(_obj2, &_arg2))
         return NULL;
-        }
-    }
-    if (_argc3) {
-        if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxNotebook. Expected _wxSize_p.");
+}
+    if (_obj3)
+{
+    _arg3 = &temp0;
+    if (! wxSize_helper(_obj3, &_arg3))
         return NULL;
-        }
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxNotebook *)new_wxNotebook(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebook_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
     }
-    _result = (wxNotebook *)new_wxNotebook(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebook_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
 
 #define wxNotebook_GetPageCount(_swigobj)  (_swigobj->GetPageCount())
-static PyObject *_wrap_wxNotebook_GetPageCount(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetPageCount(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebook * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebook_GetPageCount",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebook_GetPageCount",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageCount. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebook_GetPageCount(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebook_GetPageCount(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_SetSelection(_swigobj,_swigarg0)  (_swigobj->SetSelection(_swigarg0))
-static PyObject *_wrap_wxNotebook_SetSelection(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_SetSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebook * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxNotebook_SetSelection",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebook_SetSelection",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetSelection. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebook_SetSelection(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebook_SetSelection(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_AdvanceSelection(_swigobj,_swigarg0)  (_swigobj->AdvanceSelection(_swigarg0))
-static PyObject *_wrap_wxNotebook_AdvanceSelection(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_AdvanceSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxNotebook * _arg0;
-    bool  _arg1 = (1);
-    char * _argc0 = 0;
-    int tempbool1;
+    bool  _arg1 = (bool ) TRUE;
+    PyObject * _argo0 = 0;
+    int tempbool1 = (int) TRUE;
+    char *_kwnames[] = { "self","bForward", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|i:wxNotebook_AdvanceSelection",&_argc0,&tempbool1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:wxNotebook_AdvanceSelection",_kwnames,&_argo0,&tempbool1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AdvanceSelection. Expected _wxNotebook_p.");
         return NULL;
         }
     }
     _arg1 = (bool ) tempbool1;
-    wxNotebook_AdvanceSelection(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxNotebook_AdvanceSelection(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxNotebook_GetSelection(_swigobj)  (_swigobj->GetSelection())
-static PyObject *_wrap_wxNotebook_GetSelection(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebook * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebook_GetSelection",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebook_GetSelection",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetSelection. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebook_GetSelection(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebook_GetSelection(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_SetPageText(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetPageText(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxNotebook_SetPageText(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_SetPageText(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxNotebook * _arg0;
     int  _arg1;
     wxString * _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
     PyObject * _obj2 = 0;
+    char *_kwnames[] = { "self","nPage","strText", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"siO:wxNotebook_SetPageText",&_argc0,&_arg1,&_obj2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiO:wxNotebook_SetPageText",_kwnames,&_argo0,&_arg1,&_obj2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetPageText. Expected _wxNotebook_p.");
         return NULL;
         }
@@ -2326,10 +3787,14 @@ static PyObject *_wrap_wxNotebook_SetPageText(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg2 = new wxString(PyString_AsString(_obj2));
+    _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2));
 }
-    _result = (bool )wxNotebook_SetPageText(_arg0,_arg1,*_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxNotebook_SetPageText(_arg0,_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     if (_obj2)
         delete _arg2;
@@ -2338,24 +3803,30 @@ static PyObject *_wrap_wxNotebook_SetPageText(PyObject *self, PyObject *args) {
 }
 
 #define wxNotebook_GetPageText(_swigobj,_swigarg0)  (_swigobj->GetPageText(_swigarg0))
-static PyObject *_wrap_wxNotebook_GetPageText(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetPageText(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxString * _result;
     wxNotebook * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPageText",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebook_GetPageText",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageText. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = new wxString (wxNotebook_GetPageText(_arg0,_arg1));
 {
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxNotebook_GetPageText(_arg0,_arg1));
+
+    wxPy_END_ALLOW_THREADS;
+}{
     _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
 }
 {
@@ -2365,191 +3836,269 @@ static PyObject *_wrap_wxNotebook_GetPageText(PyObject *self, PyObject *args) {
 }
 
 #define wxNotebook_SetImageList(_swigobj,_swigarg0)  (_swigobj->SetImageList(_swigarg0))
-static PyObject *_wrap_wxNotebook_SetImageList(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_SetImageList(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxNotebook * _arg0;
     wxImageList * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","imageList", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxNotebook_SetImageList",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxNotebook_SetImageList",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetImageList. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) {
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxImageList_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxNotebook_SetImageList. Expected _wxImageList_p.");
         return NULL;
         }
     }
-    wxNotebook_SetImageList(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxNotebook_SetImageList(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxNotebook_GetImageList(_swigobj)  (_swigobj->GetImageList())
-static PyObject *_wrap_wxNotebook_GetImageList(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetImageList(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxImageList * _result;
     wxNotebook * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebook_GetImageList",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebook_GetImageList",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetImageList. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (wxImageList *)wxNotebook_GetImageList(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxImageList *)wxNotebook_GetImageList(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxNotebook_GetPageImage(_swigobj,_swigarg0)  (_swigobj->GetPageImage(_swigarg0))
-static PyObject *_wrap_wxNotebook_GetPageImage(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetPageImage(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebook * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPageImage",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebook_GetPageImage",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageImage. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebook_GetPageImage(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebook_GetPageImage(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_SetPageImage(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetPageImage(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxNotebook_SetPageImage(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_SetPageImage(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxNotebook * _arg0;
     int  _arg1;
     int  _arg2;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage","nImage", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sii:wxNotebook_SetPageImage",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxNotebook_SetPageImage",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetPageImage. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (bool )wxNotebook_SetPageImage(_arg0,_arg1,_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxNotebook_SetPageImage(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_GetRowCount(_swigobj)  (_swigobj->GetRowCount())
-static PyObject *_wrap_wxNotebook_GetRowCount(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetRowCount(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxNotebook * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebook_GetRowCount",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebook_GetRowCount",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetRowCount. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (int )wxNotebook_GetRowCount(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxNotebook_GetRowCount(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_DeletePage(_swigobj,_swigarg0)  (_swigobj->DeletePage(_swigarg0))
-static PyObject *_wrap_wxNotebook_DeletePage(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_DeletePage(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxNotebook * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxNotebook_DeletePage",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebook_DeletePage",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_DeletePage. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (bool )wxNotebook_DeletePage(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxNotebook_DeletePage(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxNotebook_RemovePage(_swigobj,_swigarg0)  (_swigobj->RemovePage(_swigarg0))
+static PyObject *_wrap_wxNotebook_RemovePage(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxNotebook * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebook_RemovePage",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_RemovePage. Expected _wxNotebook_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxNotebook_RemovePage(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_DeleteAllPages(_swigobj)  (_swigobj->DeleteAllPages())
-static PyObject *_wrap_wxNotebook_DeleteAllPages(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_DeleteAllPages(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxNotebook * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxNotebook_DeleteAllPages",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebook_DeleteAllPages",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_DeleteAllPages. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (bool )wxNotebook_DeleteAllPages(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxNotebook_DeleteAllPages(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxNotebook_AddPage(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->AddPage(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
-static PyObject *_wrap_wxNotebook_AddPage(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_AddPage(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxNotebook * _arg0;
     wxWindow * _arg1;
     wxString * _arg2;
-    bool  _arg3 = (0);
-    int  _arg4 = -1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    int  _arg3 = (int ) FALSE;
+    int  _arg4 = (int ) -1;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
     PyObject * _obj2 = 0;
-    int tempbool3;
+    char *_kwnames[] = { "self","pPage","strText","bSelect","imageId", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ssO|ii:wxNotebook_AddPage",&_argc0,&_argc1,&_obj2,&tempbool3,&_arg4)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|ii:wxNotebook_AddPage",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3,&_arg4)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AddPage. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) {
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxNotebook_AddPage. Expected _wxWindow_p.");
         return NULL;
         }
@@ -2559,11 +4108,14 @@ static PyObject *_wrap_wxNotebook_AddPage(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg2 = new wxString(PyString_AsString(_obj2));
+    _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2));
 }
-    _arg3 = (bool ) tempbool3;
-    _result = (bool )wxNotebook_AddPage(_arg0,_arg1,*_arg2,_arg3,_arg4);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxNotebook_AddPage(_arg0,_arg1,*_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     if (_obj2)
         delete _arg2;
@@ -2572,26 +4124,226 @@ static PyObject *_wrap_wxNotebook_AddPage(PyObject *self, PyObject *args) {
 }
 
 #define wxNotebook_GetPage(_swigobj,_swigarg0)  (_swigobj->GetPage(_swigarg0))
-static PyObject *_wrap_wxNotebook_GetPage(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxNotebook_GetPage(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
-    wxNotebookPage * _result;
+    wxWindow * _result;
     wxNotebook * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","nPage", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPage",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxNotebook_GetPage",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPage. Expected _wxNotebook_p.");
         return NULL;
         }
     }
-    _result = (wxNotebookPage *)wxNotebook_GetPage(_arg0,_arg1);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebookPage_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxWindow *)wxNotebook_GetPage(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+static void  wxNotebook_ResizeChildren(wxNotebook *self) {
+            wxSizeEvent evt(self->GetClientSize());
+            self->GetEventHandler()->ProcessEvent(evt);
+        }
+static PyObject *_wrap_wxNotebook_ResizeChildren(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxNotebook * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxNotebook_ResizeChildren",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxNotebook_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_ResizeChildren. Expected _wxNotebook_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxNotebook_ResizeChildren(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+static void *SwigwxSplitterEventTowxCommandEvent(void *ptr) {
+    wxSplitterEvent *src;
+    wxCommandEvent *dest;
+    src = (wxSplitterEvent *) ptr;
+    dest = (wxCommandEvent *) src;
+    return (void *) dest;
+}
+
+static void *SwigwxSplitterEventTowxEvent(void *ptr) {
+    wxSplitterEvent *src;
+    wxEvent *dest;
+    src = (wxSplitterEvent *) ptr;
+    dest = (wxEvent *) src;
+    return (void *) dest;
+}
+
+#define wxSplitterEvent_GetSashPosition(_swigobj)  (_swigobj->GetSashPosition())
+static PyObject *_wrap_wxSplitterEvent_GetSashPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxSplitterEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterEvent_GetSashPosition",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetSashPosition. Expected _wxSplitterEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterEvent_GetSashPosition(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxSplitterEvent_GetX(_swigobj)  (_swigobj->GetX())
+static PyObject *_wrap_wxSplitterEvent_GetX(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxSplitterEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterEvent_GetX",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetX. Expected _wxSplitterEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterEvent_GetX(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxSplitterEvent_GetY(_swigobj)  (_swigobj->GetY())
+static PyObject *_wrap_wxSplitterEvent_GetY(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxSplitterEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterEvent_GetY",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetY. Expected _wxSplitterEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterEvent_GetY(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxSplitterEvent_GetWindowBeingRemoved(_swigobj)  (_swigobj->GetWindowBeingRemoved())
+static PyObject *_wrap_wxSplitterEvent_GetWindowBeingRemoved(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxWindow * _result;
+    wxSplitterEvent * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterEvent_GetWindowBeingRemoved",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_GetWindowBeingRemoved. Expected _wxSplitterEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxWindow *)wxSplitterEvent_GetWindowBeingRemoved(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
+    return _resultobj;
+}
+
+#define wxSplitterEvent_SetSashPosition(_swigobj,_swigarg0)  (_swigobj->SetSashPosition(_swigarg0))
+static PyObject *_wrap_wxSplitterEvent_SetSashPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxSplitterEvent * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","pos", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxSplitterEvent_SetSashPosition",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterEvent_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterEvent_SetSashPosition. Expected _wxSplitterEvent_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterEvent_SetSashPosition(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
     return _resultobj;
 }
 
@@ -2612,495 +4364,1062 @@ static void *SwigwxSplitterWindowTowxEvtHandler(void *ptr) {
 }
 
 #define new_wxSplitterWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSplitterWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
-static PyObject *_wrap_new_wxSplitterWindow(PyObject *self, PyObject *args) {
+static PyObject *_wrap_new_wxSplitterWindow(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxSplitterWindow * _result;
     wxWindow * _arg0;
     wxWindowID  _arg1;
-    wxPoint * _arg2 = &wxPyDefaultPosition;
-    wxSize * _arg3 = &wxPyDefaultSize;
-    long  _arg4 = (wxSP_3D);
-    char * _arg5 = "splitterWindow";
-    char * _argc0 = 0;
-    char * _argc2 = 0;
-    char * _argc3 = 0;
+    wxPoint * _arg2 = (wxPoint *) &wxPyDefaultPosition;
+    wxSize * _arg3 = (wxSize *) &wxPyDefaultSize;
+    long  _arg4 = (long ) wxSP_3D|wxCLIP_CHILDREN;
+    char * _arg5 = (char *) "splitterWindow";
+    PyObject * _argo0 = 0;
+    wxPoint  temp;
+    PyObject * _obj2 = 0;
+    wxSize  temp0;
+    PyObject * _obj3 = 0;
+    char *_kwnames[] = { "parent","id","point","size","style","name", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si|ssls:new_wxSplitterWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|OOls:new_wxSplitterWindow",_kwnames,&_argo0,&_arg1,&_obj2,&_obj3,&_arg4,&_arg5)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) {
+    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_wxSplitterWindow. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSplitterWindow. Expected _wxPoint_p.");
+    if (_obj2)
+{
+    _arg2 = &temp;
+    if (! wxPoint_helper(_obj2, &_arg2))
         return NULL;
-        }
+}
+    if (_obj3)
+{
+    _arg3 = &temp0;
+    if (! wxSize_helper(_obj3, &_arg3))
+        return NULL;
+}
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxSplitterWindow *)new_wxSplitterWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxSplitterWindow_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
     }
-    if (_argc3) {
-        if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSplitterWindow. Expected _wxSize_p.");
+    return _resultobj;
+}
+
+#define wxSplitterWindow_GetBorderSize(_swigobj)  (_swigobj->GetBorderSize())
+static PyObject *_wrap_wxSplitterWindow_GetBorderSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxSplitterWindow * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetBorderSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetBorderSize. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (wxSplitterWindow *)new_wxSplitterWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxSplitterWindow_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterWindow_GetBorderSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxSplitterWindow_GetMinimumPaneSize(_swigobj)  (_swigobj->GetMinimumPaneSize())
-static PyObject *_wrap_wxSplitterWindow_GetMinimumPaneSize(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_GetMinimumPaneSize(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxSplitterWindow * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetMinimumPaneSize",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetMinimumPaneSize",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetMinimumPaneSize. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (int )wxSplitterWindow_GetMinimumPaneSize(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterWindow_GetMinimumPaneSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxSplitterWindow_GetSashPosition(_swigobj)  (_swigobj->GetSashPosition())
-static PyObject *_wrap_wxSplitterWindow_GetSashPosition(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_GetSashPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxSplitterWindow * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSashPosition",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetSashPosition",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSashPosition. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (int )wxSplitterWindow_GetSashPosition(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterWindow_GetSashPosition(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxSplitterWindow_GetSashSize(_swigobj)  (_swigobj->GetSashSize())
+static PyObject *_wrap_wxSplitterWindow_GetSashSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    int  _result;
+    wxSplitterWindow * _arg0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetSashSize",_kwnames,&_argo0)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSashSize. Expected _wxSplitterWindow_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterWindow_GetSashSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxSplitterWindow_GetSplitMode(_swigobj)  (_swigobj->GetSplitMode())
-static PyObject *_wrap_wxSplitterWindow_GetSplitMode(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_GetSplitMode(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxSplitterWindow * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSplitMode",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetSplitMode",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSplitMode. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (int )wxSplitterWindow_GetSplitMode(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxSplitterWindow_GetSplitMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxSplitterWindow_GetWindow1(_swigobj)  (_swigobj->GetWindow1())
-static PyObject *_wrap_wxSplitterWindow_GetWindow1(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_GetWindow1(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxWindow * _result;
     wxSplitterWindow * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetWindow1",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetWindow1",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetWindow1. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (wxWindow *)wxSplitterWindow_GetWindow1(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxWindow *)wxSplitterWindow_GetWindow1(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxSplitterWindow_GetWindow2(_swigobj)  (_swigobj->GetWindow2())
-static PyObject *_wrap_wxSplitterWindow_GetWindow2(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_GetWindow2(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxWindow * _result;
     wxSplitterWindow * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
     char _ptemp[128];
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetWindow2",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_GetWindow2",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetWindow2. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (wxWindow *)wxSplitterWindow_GetWindow2(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p");
-    _resultobj = Py_BuildValue("s",_ptemp);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxWindow *)wxSplitterWindow_GetWindow2(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    if (_result) {
+        SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p");
+        _resultobj = Py_BuildValue("s",_ptemp);
+    } else {
+        Py_INCREF(Py_None);
+        _resultobj = Py_None;
+    }
     return _resultobj;
 }
 
 #define wxSplitterWindow_Initialize(_swigobj,_swigarg0)  (_swigobj->Initialize(_swigarg0))
-static PyObject *_wrap_wxSplitterWindow_Initialize(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_Initialize(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxSplitterWindow * _arg0;
     wxWindow * _arg1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","window", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"ss:wxSplitterWindow_Initialize",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxSplitterWindow_Initialize",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Initialize. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) {
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_Initialize. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    wxSplitterWindow_Initialize(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterWindow_Initialize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxSplitterWindow_IsSplit(_swigobj)  (_swigobj->IsSplit())
-static PyObject *_wrap_wxSplitterWindow_IsSplit(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_IsSplit(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxSplitterWindow * _arg0;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_IsSplit",&_argc0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxSplitterWindow_IsSplit",_kwnames,&_argo0)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_IsSplit. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    _result = (bool )wxSplitterWindow_IsSplit(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxSplitterWindow_IsSplit(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxSplitterWindow_SetBorderSize(_swigobj,_swigarg0)  (_swigobj->SetBorderSize(_swigarg0))
+static PyObject *_wrap_wxSplitterWindow_SetBorderSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxSplitterWindow * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","width", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxSplitterWindow_SetBorderSize",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetBorderSize. Expected _wxSplitterWindow_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterWindow_SetBorderSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxSplitterWindow_SetSashPosition(_swigobj,_swigarg0,_swigarg1)  (_swigobj->SetSashPosition(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxSplitterWindow_SetSashPosition(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_SetSashPosition(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxSplitterWindow * _arg0;
     int  _arg1;
-    int  _arg2 = (1);
-    char * _argc0 = 0;
+    int  _arg2 = (int ) TRUE;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","position","redraw", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si|i:wxSplitterWindow_SetSashPosition",&_argc0,&_arg1,&_arg2)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi|i:wxSplitterWindow_SetSashPosition",_kwnames,&_argo0,&_arg1,&_arg2)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSashPosition. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    wxSplitterWindow_SetSashPosition(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterWindow_SetSashPosition(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxSplitterWindow_SetSashSize(_swigobj,_swigarg0)  (_swigobj->SetSashSize(_swigarg0))
+static PyObject *_wrap_wxSplitterWindow_SetSashSize(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxSplitterWindow * _arg0;
+    int  _arg1;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","width", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxSplitterWindow_SetSashSize",_kwnames,&_argo0,&_arg1)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSashSize. Expected _wxSplitterWindow_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterWindow_SetSashSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxSplitterWindow_SetMinimumPaneSize(_swigobj,_swigarg0)  (_swigobj->SetMinimumPaneSize(_swigarg0))
-static PyObject *_wrap_wxSplitterWindow_SetMinimumPaneSize(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_SetMinimumPaneSize(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxSplitterWindow * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","paneSize", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetMinimumPaneSize",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxSplitterWindow_SetMinimumPaneSize",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetMinimumPaneSize. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    wxSplitterWindow_SetMinimumPaneSize(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterWindow_SetMinimumPaneSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxSplitterWindow_SetSplitMode(_swigobj,_swigarg0)  (_swigobj->SetSplitMode(_swigarg0))
-static PyObject *_wrap_wxSplitterWindow_SetSplitMode(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_SetSplitMode(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxSplitterWindow * _arg0;
     int  _arg1;
-    char * _argc0 = 0;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","mode", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetSplitMode",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxSplitterWindow_SetSplitMode",_kwnames,&_argo0,&_arg1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSplitMode. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    wxSplitterWindow_SetSplitMode(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxSplitterWindow_SetSplitMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
 
 #define wxSplitterWindow_SplitHorizontally(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SplitHorizontally(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxSplitterWindow_SplitHorizontally(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_SplitHorizontally(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxSplitterWindow * _arg0;
     wxWindow * _arg1;
     wxWindow * _arg2;
-    int  _arg3 = -1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
-    char * _argc2 = 0;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","window1","window2","sashPosition", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sss|i:wxSplitterWindow_SplitHorizontally",&_argc0,&_argc1,&_argc2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|i:wxSplitterWindow_SplitHorizontally",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitHorizontally. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) {
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) {
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    _result = (bool )wxSplitterWindow_SplitHorizontally(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxSplitterWindow_SplitHorizontally(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxSplitterWindow_SplitVertically(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->SplitVertically(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxSplitterWindow_SplitVertically(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_SplitVertically(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxSplitterWindow * _arg0;
     wxWindow * _arg1;
     wxWindow * _arg2;
-    int  _arg3 = -1;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
-    char * _argc2 = 0;
+    int  _arg3 = (int ) 0;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    PyObject * _argo2 = 0;
+    char *_kwnames[] = { "self","window1","window2","sashPosition", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sss|i:wxSplitterWindow_SplitVertically",&_argc0,&_argc1,&_argc2,&_arg3)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|i:wxSplitterWindow_SplitVertically",_kwnames,&_argo0,&_argo1,&_argo2,&_arg3)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitVertically. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) {
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) {
+    if (_argo2) {
+        if (_argo2 == Py_None) { _arg2 = NULL; }
+        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    _result = (bool )wxSplitterWindow_SplitVertically(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxSplitterWindow_SplitVertically(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 #define wxSplitterWindow_Unsplit(_swigobj,_swigarg0)  (_swigobj->Unsplit(_swigarg0))
-static PyObject *_wrap_wxSplitterWindow_Unsplit(PyObject *self, PyObject *args) {
+static PyObject *_wrap_wxSplitterWindow_Unsplit(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     bool  _result;
     wxSplitterWindow * _arg0;
-    wxWindow * _arg1 = NULL;
-    char * _argc0 = 0;
-    char * _argc1 = 0;
+    wxWindow * _arg1 = (wxWindow *) NULL;
+    PyObject * _argo0 = 0;
+    PyObject * _argo1 = 0;
+    char *_kwnames[] = { "self","toRemove", NULL };
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s|s:wxSplitterWindow_Unsplit",&_argc0,&_argc1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|O:wxSplitterWindow_Unsplit",_kwnames,&_argo0,&_argo1)) 
         return NULL;
-    if (_argc0) {
-        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) {
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxSplitterWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Unsplit. Expected _wxSplitterWindow_p.");
         return NULL;
         }
     }
-    if (_argc1) {
-        if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) {
+    if (_argo1) {
+        if (_argo1 == Py_None) { _arg1 = NULL; }
+        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) {
             PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_Unsplit. Expected _wxWindow_p.");
         return NULL;
         }
     }
-    _result = (bool )wxSplitterWindow_Unsplit(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxSplitterWindow_Unsplit(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 static PyMethodDef windows2cMethods[] = {
-        { "wxSplitterWindow_Unsplit", _wrap_wxSplitterWindow_Unsplit, 1 },
-        { "wxSplitterWindow_SplitVertically", _wrap_wxSplitterWindow_SplitVertically, 1 },
-        { "wxSplitterWindow_SplitHorizontally", _wrap_wxSplitterWindow_SplitHorizontally, 1 },
-        { "wxSplitterWindow_SetSplitMode", _wrap_wxSplitterWindow_SetSplitMode, 1 },
-        { "wxSplitterWindow_SetMinimumPaneSize", _wrap_wxSplitterWindow_SetMinimumPaneSize, 1 },
-        { "wxSplitterWindow_SetSashPosition", _wrap_wxSplitterWindow_SetSashPosition, 1 },
-        { "wxSplitterWindow_IsSplit", _wrap_wxSplitterWindow_IsSplit, 1 },
-        { "wxSplitterWindow_Initialize", _wrap_wxSplitterWindow_Initialize, 1 },
-        { "wxSplitterWindow_GetWindow2", _wrap_wxSplitterWindow_GetWindow2, 1 },
-        { "wxSplitterWindow_GetWindow1", _wrap_wxSplitterWindow_GetWindow1, 1 },
-        { "wxSplitterWindow_GetSplitMode", _wrap_wxSplitterWindow_GetSplitMode, 1 },
-        { "wxSplitterWindow_GetSashPosition", _wrap_wxSplitterWindow_GetSashPosition, 1 },
-        { "wxSplitterWindow_GetMinimumPaneSize", _wrap_wxSplitterWindow_GetMinimumPaneSize, 1 },
-        { "new_wxSplitterWindow", _wrap_new_wxSplitterWindow, 1 },
-        { "wxNotebook_GetPage", _wrap_wxNotebook_GetPage, 1 },
-        { "wxNotebook_AddPage", _wrap_wxNotebook_AddPage, 1 },
-        { "wxNotebook_DeleteAllPages", _wrap_wxNotebook_DeleteAllPages, 1 },
-        { "wxNotebook_DeletePage", _wrap_wxNotebook_DeletePage, 1 },
-        { "wxNotebook_GetRowCount", _wrap_wxNotebook_GetRowCount, 1 },
-        { "wxNotebook_SetPageImage", _wrap_wxNotebook_SetPageImage, 1 },
-        { "wxNotebook_GetPageImage", _wrap_wxNotebook_GetPageImage, 1 },
-        { "wxNotebook_GetImageList", _wrap_wxNotebook_GetImageList, 1 },
-        { "wxNotebook_SetImageList", _wrap_wxNotebook_SetImageList, 1 },
-        { "wxNotebook_GetPageText", _wrap_wxNotebook_GetPageText, 1 },
-        { "wxNotebook_SetPageText", _wrap_wxNotebook_SetPageText, 1 },
-        { "wxNotebook_GetSelection", _wrap_wxNotebook_GetSelection, 1 },
-        { "wxNotebook_AdvanceSelection", _wrap_wxNotebook_AdvanceSelection, 1 },
-        { "wxNotebook_SetSelection", _wrap_wxNotebook_SetSelection, 1 },
-        { "wxNotebook_GetPageCount", _wrap_wxNotebook_GetPageCount, 1 },
-        { "new_wxNotebook", _wrap_new_wxNotebook, 1 },
-        { "wxNotebookEvent_GetOldSelection", _wrap_wxNotebookEvent_GetOldSelection, 1 },
-        { "wxNotebookEvent_GetSelection", _wrap_wxNotebookEvent_GetSelection, 1 },
-        { "wxGrid_UpdateDimensions", _wrap_wxGrid_UpdateDimensions, 1 },
-        { "wxGrid_SetRowHeight", _wrap_wxGrid_SetRowHeight, 1 },
-        { "wxGrid_SetLabelValue", _wrap_wxGrid_SetLabelValue, 1 },
-        { "wxGrid_SetLabelTextFont", _wrap_wxGrid_SetLabelTextFont, 1 },
-        { "wxGrid_SetLabelTextColour", _wrap_wxGrid_SetLabelTextColour, 1 },
-        { "wxGrid_SetLabelSize", _wrap_wxGrid_SetLabelSize, 1 },
-        { "wxGrid_SetLabelBackgroundColour", _wrap_wxGrid_SetLabelBackgroundColour, 1 },
-        { "wxGrid_SetLabelAlignment", _wrap_wxGrid_SetLabelAlignment, 1 },
-        { "wxGrid_SetGridCursor", _wrap_wxGrid_SetGridCursor, 1 },
-        { "wxGrid_SetEditable", _wrap_wxGrid_SetEditable, 1 },
-        { "wxGrid_SetDividerPen", _wrap_wxGrid_SetDividerPen, 1 },
-        { "wxGrid_SetColumnWidth", _wrap_wxGrid_SetColumnWidth, 1 },
-        { "wxGrid_SetCellValue", _wrap_wxGrid_SetCellValue, 1 },
-        { "wxGrid_SetDefCellTextFont", _wrap_wxGrid_SetDefCellTextFont, 1 },
-        { "wxGrid_SetCellTextFont", _wrap_wxGrid_SetCellTextFont, 1 },
-        { "wxGrid_SetDefCellTextColour", _wrap_wxGrid_SetDefCellTextColour, 1 },
-        { "wxGrid_SetCellTextColour", _wrap_wxGrid_SetCellTextColour, 1 },
-        { "wxGrid_SetDefCellBackgroundColour", _wrap_wxGrid_SetDefCellBackgroundColour, 1 },
-        { "wxGrid_SetCellBackgroundColour", _wrap_wxGrid_SetCellBackgroundColour, 1 },
-        { "wxGrid_SetDefCellAlignment", _wrap_wxGrid_SetDefCellAlignment, 1 },
-        { "wxGrid_SetCellAlignment", _wrap_wxGrid_SetCellAlignment, 1 },
-        { "wxGrid_InsertRows", _wrap_wxGrid_InsertRows, 1 },
-        { "wxGrid_InsertCols", _wrap_wxGrid_InsertCols, 1 },
-        { "wxGrid_GetVertScrollBar", _wrap_wxGrid_GetVertScrollBar, 1 },
-        { "wxGrid_GetTextItem", _wrap_wxGrid_GetTextItem, 1 },
-        { "wxGrid_GetScrollPosY", _wrap_wxGrid_GetScrollPosY, 1 },
-        { "wxGrid_GetScrollPosX", _wrap_wxGrid_GetScrollPosX, 1 },
-        { "wxGrid_GetRows", _wrap_wxGrid_GetRows, 1 },
-        { "wxGrid_GetRowHeight", _wrap_wxGrid_GetRowHeight, 1 },
-        { "wxGrid_GetLabelValue", _wrap_wxGrid_GetLabelValue, 1 },
-        { "wxGrid_GetLabelTextFont", _wrap_wxGrid_GetLabelTextFont, 1 },
-        { "wxGrid_GetLabelTextColour", _wrap_wxGrid_GetLabelTextColour, 1 },
-        { "wxGrid_GetLabelSize", _wrap_wxGrid_GetLabelSize, 1 },
-        { "wxGrid_GetLabelBackgroundColour", _wrap_wxGrid_GetLabelBackgroundColour, 1 },
-        { "wxGrid_GetLabelAlignment", _wrap_wxGrid_GetLabelAlignment, 1 },
-        { "wxGrid_GetHorizScrollBar", _wrap_wxGrid_GetHorizScrollBar, 1 },
-        { "wxGrid_GetEditable", _wrap_wxGrid_GetEditable, 1 },
-        { "wxGrid_GetCursorRow", _wrap_wxGrid_GetCursorRow, 1 },
-        { "wxGrid_GetCursorColumn", _wrap_wxGrid_GetCursorColumn, 1 },
-        { "wxGrid_GetCurrentRect", _wrap_wxGrid_GetCurrentRect, 1 },
-        { "wxGrid_GetColumnWidth", _wrap_wxGrid_GetColumnWidth, 1 },
-        { "wxGrid_GetCols", _wrap_wxGrid_GetCols, 1 },
-        { "wxGrid_GetCellValue", _wrap_wxGrid_GetCellValue, 1 },
-        { "wxGrid_GetDefCellTextFont", _wrap_wxGrid_GetDefCellTextFont, 1 },
-        { "wxGrid_GetCellTextFont", _wrap_wxGrid_GetCellTextFont, 1 },
-        { "wxGrid_GetDefCellTextColour", _wrap_wxGrid_GetDefCellTextColour, 1 },
-        { "wxGrid_GetCellTextColour", _wrap_wxGrid_GetCellTextColour, 1 },
-        { "wxGrid_GetDefCellBackgroundColour", _wrap_wxGrid_GetDefCellBackgroundColour, 1 },
-        { "wxGrid_GetCellBackgroundColour", _wrap_wxGrid_GetCellBackgroundColour, 1 },
-        { "wxGrid_GetDefCellAlignment", _wrap_wxGrid_GetDefCellAlignment, 1 },
-        { "wxGrid_GetCellAlignment", _wrap_wxGrid_GetCellAlignment, 1 },
-        { "wxGrid_GetCell", _wrap_wxGrid_GetCell, 1 },
-        { "wxGrid_GetBatchCount", _wrap_wxGrid_GetBatchCount, 1 },
-        { "wxGrid_EndBatch", _wrap_wxGrid_EndBatch, 1 },
-        { "wxGrid_DeleteRows", _wrap_wxGrid_DeleteRows, 1 },
-        { "wxGrid_DeleteCols", _wrap_wxGrid_DeleteCols, 1 },
-        { "wxGrid_CurrentCellVisible", _wrap_wxGrid_CurrentCellVisible, 1 },
-        { "wxGrid_CreateGrid", _wrap_wxGrid_CreateGrid, 1 },
-        { "wxGrid_CellHitTest", _wrap_wxGrid_CellHitTest, 1 },
-        { "wxGrid_BeginBatch", _wrap_wxGrid_BeginBatch, 1 },
-        { "wxGrid_AppendRows", _wrap_wxGrid_AppendRows, 1 },
-        { "wxGrid_AppendCols", _wrap_wxGrid_AppendCols, 1 },
-        { "wxGrid_AdjustScrollbars", _wrap_wxGrid_AdjustScrollbars, 1 },
-        { "new_wxGrid", _wrap_new_wxGrid, 1 },
-        { "wxGridCell_SetCellBitmap", _wrap_wxGridCell_SetCellBitmap, 1 },
-        { "wxGridCell_GetCellBitmap", _wrap_wxGridCell_GetCellBitmap, 1 },
-        { "wxGridCell_SetAlignment", _wrap_wxGridCell_SetAlignment, 1 },
-        { "wxGridCell_GetAlignment", _wrap_wxGridCell_GetAlignment, 1 },
-        { "wxGridCell_GetBackgroundBrush", _wrap_wxGridCell_GetBackgroundBrush, 1 },
-        { "wxGridCell_SetBackgroundColour", _wrap_wxGridCell_SetBackgroundColour, 1 },
-        { "wxGridCell_GetBackgroundColour", _wrap_wxGridCell_GetBackgroundColour, 1 },
-        { "wxGridCell_SetTextColour", _wrap_wxGridCell_SetTextColour, 1 },
-        { "wxGridCell_GetTextColour", _wrap_wxGridCell_GetTextColour, 1 },
-        { "wxGridCell_SetFont", _wrap_wxGridCell_SetFont, 1 },
-        { "wxGridCell_GetFont", _wrap_wxGridCell_GetFont, 1 },
-        { "wxGridCell_SetTextValue", _wrap_wxGridCell_SetTextValue, 1 },
-        { "wxGridCell_GetTextValue", _wrap_wxGridCell_GetTextValue, 1 },
+        { "wxSplitterWindow_Unsplit", (PyCFunction) _wrap_wxSplitterWindow_Unsplit, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SplitVertically", (PyCFunction) _wrap_wxSplitterWindow_SplitVertically, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SplitHorizontally", (PyCFunction) _wrap_wxSplitterWindow_SplitHorizontally, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SetSplitMode", (PyCFunction) _wrap_wxSplitterWindow_SetSplitMode, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SetMinimumPaneSize", (PyCFunction) _wrap_wxSplitterWindow_SetMinimumPaneSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SetSashSize", (PyCFunction) _wrap_wxSplitterWindow_SetSashSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SetSashPosition", (PyCFunction) _wrap_wxSplitterWindow_SetSashPosition, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_SetBorderSize", (PyCFunction) _wrap_wxSplitterWindow_SetBorderSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_IsSplit", (PyCFunction) _wrap_wxSplitterWindow_IsSplit, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_Initialize", (PyCFunction) _wrap_wxSplitterWindow_Initialize, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetWindow2", (PyCFunction) _wrap_wxSplitterWindow_GetWindow2, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetWindow1", (PyCFunction) _wrap_wxSplitterWindow_GetWindow1, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetSplitMode", (PyCFunction) _wrap_wxSplitterWindow_GetSplitMode, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetSashSize", (PyCFunction) _wrap_wxSplitterWindow_GetSashSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetSashPosition", (PyCFunction) _wrap_wxSplitterWindow_GetSashPosition, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetMinimumPaneSize", (PyCFunction) _wrap_wxSplitterWindow_GetMinimumPaneSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterWindow_GetBorderSize", (PyCFunction) _wrap_wxSplitterWindow_GetBorderSize, METH_VARARGS | METH_KEYWORDS },
+        { "new_wxSplitterWindow", (PyCFunction) _wrap_new_wxSplitterWindow, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterEvent_SetSashPosition", (PyCFunction) _wrap_wxSplitterEvent_SetSashPosition, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterEvent_GetWindowBeingRemoved", (PyCFunction) _wrap_wxSplitterEvent_GetWindowBeingRemoved, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterEvent_GetY", (PyCFunction) _wrap_wxSplitterEvent_GetY, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterEvent_GetX", (PyCFunction) _wrap_wxSplitterEvent_GetX, METH_VARARGS | METH_KEYWORDS },
+        { "wxSplitterEvent_GetSashPosition", (PyCFunction) _wrap_wxSplitterEvent_GetSashPosition, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_ResizeChildren", (PyCFunction) _wrap_wxNotebook_ResizeChildren, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetPage", (PyCFunction) _wrap_wxNotebook_GetPage, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_AddPage", (PyCFunction) _wrap_wxNotebook_AddPage, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_DeleteAllPages", (PyCFunction) _wrap_wxNotebook_DeleteAllPages, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_RemovePage", (PyCFunction) _wrap_wxNotebook_RemovePage, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_DeletePage", (PyCFunction) _wrap_wxNotebook_DeletePage, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetRowCount", (PyCFunction) _wrap_wxNotebook_GetRowCount, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_SetPageImage", (PyCFunction) _wrap_wxNotebook_SetPageImage, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetPageImage", (PyCFunction) _wrap_wxNotebook_GetPageImage, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetImageList", (PyCFunction) _wrap_wxNotebook_GetImageList, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_SetImageList", (PyCFunction) _wrap_wxNotebook_SetImageList, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetPageText", (PyCFunction) _wrap_wxNotebook_GetPageText, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_SetPageText", (PyCFunction) _wrap_wxNotebook_SetPageText, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetSelection", (PyCFunction) _wrap_wxNotebook_GetSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_AdvanceSelection", (PyCFunction) _wrap_wxNotebook_AdvanceSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_SetSelection", (PyCFunction) _wrap_wxNotebook_SetSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebook_GetPageCount", (PyCFunction) _wrap_wxNotebook_GetPageCount, METH_VARARGS | METH_KEYWORDS },
+        { "new_wxNotebook", (PyCFunction) _wrap_new_wxNotebook, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebookEvent_SetSelection", (PyCFunction) _wrap_wxNotebookEvent_SetSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebookEvent_SetOldSelection", (PyCFunction) _wrap_wxNotebookEvent_SetOldSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebookEvent_GetOldSelection", (PyCFunction) _wrap_wxNotebookEvent_GetOldSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxNotebookEvent_GetSelection", (PyCFunction) _wrap_wxNotebookEvent_GetSelection, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_GetCell", (PyCFunction) _wrap_wxGridEvent_GetCell, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_ShiftDown", (PyCFunction) _wrap_wxGridEvent_ShiftDown, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_ControlDown", (PyCFunction) _wrap_wxGridEvent_ControlDown, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_GetPosition", (PyCFunction) _wrap_wxGridEvent_GetPosition, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_GetCol", (PyCFunction) _wrap_wxGridEvent_GetCol, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_GetRow", (PyCFunction) _wrap_wxGridEvent_GetRow, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_cell_get", (PyCFunction) _wrap_wxGridEvent_m_cell_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_cell_set", (PyCFunction) _wrap_wxGridEvent_m_cell_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_shift_get", (PyCFunction) _wrap_wxGridEvent_m_shift_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_shift_set", (PyCFunction) _wrap_wxGridEvent_m_shift_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_control_get", (PyCFunction) _wrap_wxGridEvent_m_control_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_control_set", (PyCFunction) _wrap_wxGridEvent_m_control_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_y_get", (PyCFunction) _wrap_wxGridEvent_m_y_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_y_set", (PyCFunction) _wrap_wxGridEvent_m_y_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_x_get", (PyCFunction) _wrap_wxGridEvent_m_x_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_x_set", (PyCFunction) _wrap_wxGridEvent_m_x_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_col_get", (PyCFunction) _wrap_wxGridEvent_m_col_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_col_set", (PyCFunction) _wrap_wxGridEvent_m_col_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_row_get", (PyCFunction) _wrap_wxGridEvent_m_row_get, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridEvent_m_row_set", (PyCFunction) _wrap_wxGridEvent_m_row_set, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetEditInPlace", (PyCFunction) _wrap_wxGrid_SetEditInPlace, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetEditInPlace", (PyCFunction) _wrap_wxGrid_GetEditInPlace, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_UpdateDimensions", (PyCFunction) _wrap_wxGrid_UpdateDimensions, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetRowHeight", (PyCFunction) _wrap_wxGrid_SetRowHeight, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetLabelValue", (PyCFunction) _wrap_wxGrid_SetLabelValue, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetLabelTextFont", (PyCFunction) _wrap_wxGrid_SetLabelTextFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetLabelTextColour", (PyCFunction) _wrap_wxGrid_SetLabelTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetLabelSize", (PyCFunction) _wrap_wxGrid_SetLabelSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetLabelBackgroundColour", (PyCFunction) _wrap_wxGrid_SetLabelBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetLabelAlignment", (PyCFunction) _wrap_wxGrid_SetLabelAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetGridCursor", (PyCFunction) _wrap_wxGrid_SetGridCursor, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetEditable", (PyCFunction) _wrap_wxGrid_SetEditable, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetDividerPen", (PyCFunction) _wrap_wxGrid_SetDividerPen, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetColumnWidth", (PyCFunction) _wrap_wxGrid_SetColumnWidth, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetCellValue", (PyCFunction) _wrap_wxGrid_SetCellValue, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetDefCellTextFont", (PyCFunction) _wrap_wxGrid_SetDefCellTextFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetCellTextFont", (PyCFunction) _wrap_wxGrid_SetCellTextFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetDefCellTextColour", (PyCFunction) _wrap_wxGrid_SetDefCellTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetCellTextColour", (PyCFunction) _wrap_wxGrid_SetCellTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetDefCellBackgroundColour", (PyCFunction) _wrap_wxGrid_SetDefCellBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetCellBackgroundColour", (PyCFunction) _wrap_wxGrid_SetCellBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetDefCellAlignment", (PyCFunction) _wrap_wxGrid_SetDefCellAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_SetCellAlignment", (PyCFunction) _wrap_wxGrid_SetCellAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_OnActivate", (PyCFunction) _wrap_wxGrid_OnActivate, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_InsertRows", (PyCFunction) _wrap_wxGrid_InsertRows, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_InsertCols", (PyCFunction) _wrap_wxGrid_InsertCols, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetVertScrollBar", (PyCFunction) _wrap_wxGrid_GetVertScrollBar, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetTextItem", (PyCFunction) _wrap_wxGrid_GetTextItem, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetScrollPosY", (PyCFunction) _wrap_wxGrid_GetScrollPosY, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetScrollPosX", (PyCFunction) _wrap_wxGrid_GetScrollPosX, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetRows", (PyCFunction) _wrap_wxGrid_GetRows, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetRowHeight", (PyCFunction) _wrap_wxGrid_GetRowHeight, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetLabelValue", (PyCFunction) _wrap_wxGrid_GetLabelValue, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetLabelTextFont", (PyCFunction) _wrap_wxGrid_GetLabelTextFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetLabelTextColour", (PyCFunction) _wrap_wxGrid_GetLabelTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetLabelSize", (PyCFunction) _wrap_wxGrid_GetLabelSize, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetLabelBackgroundColour", (PyCFunction) _wrap_wxGrid_GetLabelBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetLabelAlignment", (PyCFunction) _wrap_wxGrid_GetLabelAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetHorizScrollBar", (PyCFunction) _wrap_wxGrid_GetHorizScrollBar, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetEditable", (PyCFunction) _wrap_wxGrid_GetEditable, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCursorRow", (PyCFunction) _wrap_wxGrid_GetCursorRow, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCursorColumn", (PyCFunction) _wrap_wxGrid_GetCursorColumn, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCurrentRect", (PyCFunction) _wrap_wxGrid_GetCurrentRect, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetColumnWidth", (PyCFunction) _wrap_wxGrid_GetColumnWidth, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCols", (PyCFunction) _wrap_wxGrid_GetCols, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCellValue", (PyCFunction) _wrap_wxGrid_GetCellValue, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetDefCellTextFont", (PyCFunction) _wrap_wxGrid_GetDefCellTextFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCellTextFont", (PyCFunction) _wrap_wxGrid_GetCellTextFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetDefCellTextColour", (PyCFunction) _wrap_wxGrid_GetDefCellTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCellTextColour", (PyCFunction) _wrap_wxGrid_GetCellTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCells", (PyCFunction) _wrap_wxGrid_GetCells, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetDefCellBackgroundColour", (PyCFunction) _wrap_wxGrid_GetDefCellBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCellBackgroundColour", (PyCFunction) _wrap_wxGrid_GetCellBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetDefCellAlignment", (PyCFunction) _wrap_wxGrid_GetDefCellAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCellAlignment", (PyCFunction) _wrap_wxGrid_GetCellAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetCell", (PyCFunction) _wrap_wxGrid_GetCell, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_GetBatchCount", (PyCFunction) _wrap_wxGrid_GetBatchCount, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_EndBatch", (PyCFunction) _wrap_wxGrid_EndBatch, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_DeleteRows", (PyCFunction) _wrap_wxGrid_DeleteRows, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_DeleteCols", (PyCFunction) _wrap_wxGrid_DeleteCols, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_CurrentCellVisible", (PyCFunction) _wrap_wxGrid_CurrentCellVisible, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_CreateGrid", (PyCFunction) _wrap_wxGrid_CreateGrid, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_CellHitTest", (PyCFunction) _wrap_wxGrid_CellHitTest, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_BeginBatch", (PyCFunction) _wrap_wxGrid_BeginBatch, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_AppendRows", (PyCFunction) _wrap_wxGrid_AppendRows, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_AppendCols", (PyCFunction) _wrap_wxGrid_AppendCols, METH_VARARGS | METH_KEYWORDS },
+        { "wxGrid_AdjustScrollbars", (PyCFunction) _wrap_wxGrid_AdjustScrollbars, METH_VARARGS | METH_KEYWORDS },
+        { "new_wxGrid", (PyCFunction) _wrap_new_wxGrid, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_SetCellBitmap", (PyCFunction) _wrap_wxGridCell_SetCellBitmap, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetCellBitmap", (PyCFunction) _wrap_wxGridCell_GetCellBitmap, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_SetAlignment", (PyCFunction) _wrap_wxGridCell_SetAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetAlignment", (PyCFunction) _wrap_wxGridCell_GetAlignment, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetBackgroundBrush", (PyCFunction) _wrap_wxGridCell_GetBackgroundBrush, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_SetBackgroundColour", (PyCFunction) _wrap_wxGridCell_SetBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetBackgroundColour", (PyCFunction) _wrap_wxGridCell_GetBackgroundColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_SetTextColour", (PyCFunction) _wrap_wxGridCell_SetTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetTextColour", (PyCFunction) _wrap_wxGridCell_GetTextColour, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_SetFont", (PyCFunction) _wrap_wxGridCell_SetFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetFont", (PyCFunction) _wrap_wxGridCell_GetFont, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_SetTextValue", (PyCFunction) _wrap_wxGridCell_SetTextValue, METH_VARARGS | METH_KEYWORDS },
+        { "wxGridCell_GetTextValue", (PyCFunction) _wrap_wxGridCell_GetTextValue, METH_VARARGS | METH_KEYWORDS },
+        { "delete_wxGridCell", (PyCFunction) _wrap_delete_wxGridCell, METH_VARARGS | METH_KEYWORDS },
+        { "new_wxGridCell", (PyCFunction) _wrap_new_wxGridCell, 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_wxSplitterEvent",SwigwxSplitterEventTowxEvent},
+    { "_wxEvent","_wxSplitterEvent",SwigwxSplitterEventTowxEvent},
+    { "_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent},
+    { "_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent},
+    { "_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent},
+    { "_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent},
+    { "_wxEvent","_class_wxEvent",0},
+    { "_class_wxActivateEvent","_wxActivateEvent",0},
+    { "_signed_long","_long",0},
+    { "_wxMenuEvent","_class_wxMenuEvent",0},
+    { "_class_wxPyCommandEvent","_wxPyCommandEvent",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},
+    { "_class_wxRegionIterator","_wxRegionIterator",0},
+    { "_class_wxMenuBar","_wxMenuBar",0},
+    { "_class_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler},
+    { "_class_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler},
+    { "_class_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler},
+    { "_class_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler},
+    { "_class_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler},
+    { "_class_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler},
+    { "_class_wxEvtHandler","_wxEvtHandler",0},
+    { "_wxPaintEvent","_class_wxPaintEvent",0},
+    { "_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0},
+    { "_wxCursor","_class_wxCursor",0},
+    { "_wxNotifyEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent},
+    { "_wxNotifyEvent","_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent},
+    { "_wxNotifyEvent","_class_wxNotifyEvent",0},
+    { "_wxMask","_class_wxMask",0},
+    { "_wxGrid","_class_wxGrid",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},
+    { "_long","_wxDash",0},
+    { "_long","_unsigned_long",0},
+    { "_long","_signed_long",0},
+    { "_wxImageList","_class_wxImageList",0},
+    { "_wxDropFilesEvent","_class_wxDropFilesEvent",0},
+    { "_wxBitmapButton","_class_wxBitmapButton",0},
+    { "_class_wxAcceleratorTable","_wxAcceleratorTable",0},
+    { "_class_wxGauge","_wxGauge",0},
+    { "_wxDC","_class_wxDC",0},
+    { "_wxSpinEvent","_class_wxSpinEvent",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},
+    { "_class_wxMenuItem","_wxMenuItem",0},
+    { "_class_wxPaintEvent","_wxPaintEvent",0},
+    { "_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0},
+    { "_class_wxPostScriptDC","_wxPostScriptDC",0},
+    { "_wxPanel","_class_wxGrid",SwigwxGridTowxPanel},
+    { "_wxPanel","_wxGrid",SwigwxGridTowxPanel},
+    { "_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_wxKeyEvent","_wxKeyEvent",0},
+    { "_class_wxGrid","_wxGrid",0},
+    { "_wxColour","_class_wxColour",0},
+    { "_class_wxDialog","_wxDialog",0},
+    { "_wxIdleEvent","_class_wxIdleEvent",0},
+    { "_class_wxUpdateUIEvent","_wxUpdateUIEvent",0},
+    { "_wxStaticLine","_class_wxStaticLine",0},
+    { "_wxBrush","_class_wxBrush",0},
+    { "_class_wxNotebookEvent","_wxNotebookEvent",0},
+    { "_wxShowEvent","_class_wxShowEvent",0},
+    { "_uint","_wxPrintQuality",0},
+    { "_uint","_size_t",0},
+    { "_uint","_unsigned_int",0},
+    { "_uint","_int",0},
+    { "_uint","_wxWindowID",0},
+    { "_wxPyValidator","_class_wxPyValidator",0},
+    { "_class_wxEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxEvent},
+    { "_class_wxEvent","_wxSplitterEvent",SwigwxSplitterEventTowxEvent},
+    { "_class_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent},
+    { "_class_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent},
+    { "_class_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent},
+    { "_class_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent},
+    { "_class_wxEvent","_wxEvent",0},
+    { "_wxCheckListBox","_class_wxCheckListBox",0},
+    { "_wxSplitterEvent","_class_wxSplitterEvent",0},
+    { "_wxGridEvent","_class_wxGridEvent",0},
+    { "_wxRect","_class_wxRect",0},
+    { "_wxCommandEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent},
+    { "_wxCommandEvent","_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent},
+    { "_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent},
+    { "_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent},
+    { "_wxCommandEvent","_class_wxCommandEvent",0},
+    { "_wxSizeEvent","_class_wxSizeEvent",0},
+    { "_wxPoint","_class_wxPoint",0},
+    { "_class_wxButton","_wxButton",0},
+    { "_wxRadioBox","_class_wxRadioBox",0},
+    { "_wxBitmap","_class_wxBitmap",0},
+    { "_wxPyTimer","_class_wxPyTimer",0},
+    { "_wxWindowDC","_class_wxWindowDC",0},
+    { "_wxScrollBar","_class_wxScrollBar",0},
+    { "_wxSpinButton","_class_wxSpinButton",0},
+    { "_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0},
+    { "_class_wxNotifyEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent},
+    { "_class_wxNotifyEvent","_wxNotebookEvent",SwigwxNotebookEventTowxNotifyEvent},
+    { "_class_wxNotifyEvent","_wxNotifyEvent",0},
+    { "_class_wxValidator","_wxValidator",0},
+    { "_class_wxPyEvent","_wxPyEvent",0},
+    { "_class_wxIconizeEvent","_wxIconizeEvent",0},
+    { "_class_wxStaticBitmap","_wxStaticBitmap",0},
+    { "_class_wxStaticLine","_wxStaticLine",0},
+    { "_wxScrollEvent","_class_wxScrollEvent",0},
+    { "_EBool","_wxPrintQuality",0},
+    { "_EBool","_signed_int",0},
+    { "_EBool","_int",0},
+    { "_EBool","_wxWindowID",0},
+    { "_class_wxRegion","_wxRegion",0},
+    { "_class_wxDropFilesEvent","_wxDropFilesEvent",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},
+    { "_wxScrollWinEvent","_class_wxScrollWinEvent",0},
+    { "_class_wxPyTimer","_wxPyTimer",0},
+    { "_wxFocusEvent","_class_wxFocusEvent",0},
+    { "_wxMaximizeEvent","_class_wxMaximizeEvent",0},
+    { "_class_wxSpinButton","_wxSpinButton",0},
+    { "_wxAcceleratorEntry","_class_wxAcceleratorEntry",0},
+    { "_class_wxPanel","_class_wxGrid",SwigwxGridTowxPanel},
+    { "_class_wxPanel","_wxGrid",SwigwxGridTowxPanel},
+    { "_class_wxPanel","_wxPanel",0},
+    { "_class_wxCheckBox","_wxCheckBox",0},
+    { "_wxComboBox","_class_wxComboBox",0},
+    { "_wxRadioButton","_class_wxRadioButton",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},
+    { "_wxMenu","_class_wxMenu",0},
+    { "_class_wxMoveEvent","_wxMoveEvent",0},
+    { "_wxListBox","_class_wxListBox",0},
+    { "_wxScreenDC","_class_wxScreenDC",0},
+    { "_WXTYPE","_short",0},
+    { "_WXTYPE","_signed_short",0},
+    { "_WXTYPE","_unsigned_short",0},
+    { "_class_wxBrush","_wxBrush",0},
+    { "_unsigned_short","_WXTYPE",0},
+    { "_unsigned_short","_short",0},
+    { "_class_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow},
+    { "_class_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow},
+    { "_class_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow},
+    { "_class_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow},
+    { "_class_wxWindow","_class_wxGrid",SwigwxGridTowxWindow},
+    { "_class_wxWindow","_wxGrid",SwigwxGridTowxWindow},
+    { "_class_wxWindow","_wxWindow",0},
+    { "_wxSplitterWindow","_class_wxSplitterWindow",0},
+    { "_class_wxStaticText","_wxStaticText",0},
+    { "_class_wxFont","_wxFont",0},
+    { "_class_wxPyValidator","_wxPyValidator",0},
+    { "_class_wxCloseEvent","_wxCloseEvent",0},
+    { "_class_wxMenuEvent","_wxMenuEvent",0},
+    { "_wxClientDC","_class_wxClientDC",0},
+    { "_wxMouseEvent","_class_wxMouseEvent",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},
+    { "_wxPaintDC","_class_wxPaintDC",0},
+    { "_class_wxWindowDC","_wxWindowDC",0},
+    { "_class_wxFocusEvent","_wxFocusEvent",0},
+    { "_class_wxMaximizeEvent","_wxMaximizeEvent",0},
+    { "_class_wxAcceleratorEntry","_wxAcceleratorEntry",0},
+    { "_class_wxCursor","_wxCursor",0},
+    { "_wxPostScriptDC","_class_wxPostScriptDC",0},
+    { "_wxScrolledWindow","_class_wxScrolledWindow",0},
+    { "_unsigned_char","_byte",0},
+    { "_class_wxMenu","_wxMenu",0},
+    { "_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl},
+    { "_wxControl","_wxNotebook",SwigwxNotebookTowxControl},
+    { "_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_wxPen","_wxPen",0},
+    { "_short","_WXTYPE",0},
+    { "_short","_unsigned_short",0},
+    { "_short","_signed_short",0},
+    { "_class_wxStaticBox","_wxStaticBox",0},
+    { "_class_wxScrollEvent","_wxScrollEvent",0},
+    { "_wxJoystickEvent","_class_wxJoystickEvent",0},
+    { "_class_wxChoice","_wxChoice",0},
+    { "_class_wxSlider","_wxSlider",0},
+    { "_class_wxImageList","_wxImageList",0},
+    { "_class_wxBitmapButton","_wxBitmapButton",0},
+    { "_class_wxNotebook","_wxNotebook",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},
+    { "_class_wxScrollWinEvent","_wxScrollWinEvent",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},
+    { "_wxPyCommandEvent","_class_wxPyCommandEvent",0},
+    { "_class_wxSpinEvent","_wxSpinEvent",0},
+    { "_wxButton","_class_wxButton",0},
+    { "_wxSize","_class_wxSize",0},
+    { "_wxRegionIterator","_class_wxRegionIterator",0},
+    { "_class_wxPaintDC","_wxPaintDC",0},
+    { "_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0},
+    { "_class_wxInitDialogEvent","_wxInitDialogEvent",0},
+    { "_class_wxComboBox","_wxComboBox",0},
+    { "_class_wxRadioButton","_wxRadioButton",0},
+    { "_wxValidator","_class_wxValidator",0},
+    { "_class_wxLayoutConstraints","_wxLayoutConstraints",0},
+    { "_wxIconizeEvent","_class_wxIconizeEvent",0},
+    { "_class_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl},
+    { "_class_wxControl","_wxNotebook",SwigwxNotebookTowxControl},
+    { "_class_wxControl","_wxControl",0},
+    { "_wxStaticBitmap","_class_wxStaticBitmap",0},
+    { "_class_wxIcon","_wxIcon",0},
+    { "_class_wxColour","_wxColour",0},
+    { "_class_wxScreenDC","_wxScreenDC",0},
+    { "_wxPalette","_class_wxPalette",0},
+    { "_class_wxIdleEvent","_wxIdleEvent",0},
+    { "_wxEraseEvent","_class_wxEraseEvent",0},
+    { "_class_wxJoystickEvent","_wxJoystickEvent",0},
+    { "_wxRegion","_class_wxRegion",0},
+    { "_class_wxSplitterWindow","_wxSplitterWindow",0},
+    { "_class_wxShowEvent","_wxShowEvent",0},
+    { "_wxActivateEvent","_class_wxActivateEvent",0},
+    { "_wxGauge","_class_wxGauge",0},
+    { "_class_wxCheckListBox","_wxCheckListBox",0},
+    { "_class_wxGridEvent","_wxGridEvent",0},
+    { "_class_wxCommandEvent","_class_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent},
+    { "_class_wxCommandEvent","_wxSplitterEvent",SwigwxSplitterEventTowxCommandEvent},
+    { "_class_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent},
+    { "_class_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent},
+    { "_class_wxCommandEvent","_wxCommandEvent",0},
+    { "_class_wxClientDC","_wxClientDC",0},
+    { "_class_wxSizeEvent","_wxSizeEvent",0},
+    { "_class_wxGridCell","_wxGridCell",0},
+    { "_class_wxSize","_wxSize",0},
+    { "_class_wxBitmap","_wxBitmap",0},
+    { "_class_wxMemoryDC","_wxMemoryDC",0},
+    { "_wxMenuBar","_class_wxMenuBar",0},
+    { "_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler},
+    { "_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler},
+    { "_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler},
+    { "_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler},
+    { "_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler},
+    { "_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler},
+    { "_wxEvtHandler","_class_wxEvtHandler",0},
+    { "_wxMenuItem","_class_wxMenuItem",0},
+    { "_class_wxScrollBar","_wxScrollBar",0},
+    { "_wxDash","_unsigned_long",0},
+    { "_wxDash","_long",0},
+    { "_class_wxScrolledWindow","_wxScrolledWindow",0},
+    { "_wxKeyEvent","_class_wxKeyEvent",0},
+    { "_wxMoveEvent","_class_wxMoveEvent",0},
+    { "_class_wxPalette","_wxPalette",0},
+    { "_class_wxEraseEvent","_wxEraseEvent",0},
+    { "_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow},
+    { "_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow},
+    { "_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow},
+    { "_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow},
+    { "_wxWindow","_class_wxGrid",SwigwxGridTowxWindow},
+    { "_wxWindow","_wxGrid",SwigwxGridTowxWindow},
+    { "_wxWindow","_class_wxWindow",0},
+{0,0,0}};
+
 static PyObject *SWIG_globals;
 #ifdef __cplusplus
 extern "C" 
 #endif
-SWIGEXPORT(void,initwindows2c)() {
+SWIGEXPORT(void) initwindows2c() {
         PyObject *m, *d;
         SWIG_globals = SWIG_newvarlink();
         m = Py_InitModule("windows2c", windows2cMethods);
@@ -3108,236 +5427,18 @@ SWIGEXPORT(void,initwindows2c)() {
         PyDict_SetItemString(d,"wxGRID_TEXT_CTRL", PyInt_FromLong((long) wxGRID_TEXT_CTRL));
         PyDict_SetItemString(d,"wxGRID_HSCROLL", PyInt_FromLong((long) wxGRID_HSCROLL));
         PyDict_SetItemString(d,"wxGRID_VSCROLL", PyInt_FromLong((long) wxGRID_VSCROLL));
-/*
- * These are the pointer type-equivalency mappings. 
- * (Used by the SWIG pointer type-checker).
- */
-        SWIG_RegisterMapping("_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent);
-        SWIG_RegisterMapping("_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent);
-        SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0);
-        SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0);
-        SWIG_RegisterMapping("_signed_long","_long",0);
-        SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0);
-        SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler);
-        SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0);
-        SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0);
-        SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0);
-        SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0);
-        SWIG_RegisterMapping("_wxMask","_class_wxMask",0);
-        SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0);
-        SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0);
-        SWIG_RegisterMapping("_wxPen","_class_wxPen",0);
-        SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0);
-        SWIG_RegisterMapping("_byte","_unsigned_char",0);
-        SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0);
-        SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0);
-        SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0);
-        SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0);
-        SWIG_RegisterMapping("_long","_wxDash",0);
-        SWIG_RegisterMapping("_long","_unsigned_long",0);
-        SWIG_RegisterMapping("_long","_signed_long",0);
-        SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0);
-        SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0);
-        SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0);
-        SWIG_RegisterMapping("_wxDC","_class_wxDC",0);
-        SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0);
-        SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0);
-        SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0);
-        SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0);
-        SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0);
-        SWIG_RegisterMapping("_wxPanel","_class_wxGrid",SwigwxGridTowxPanel);
-        SWIG_RegisterMapping("_wxPanel","_wxGrid",SwigwxGridTowxPanel);
-        SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0);
-        SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0);
-        SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0);
-        SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0);
-        SWIG_RegisterMapping("_class_wxMask","_wxMask",0);
-        SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0);
-        SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0);
-        SWIG_RegisterMapping("_wxColour","_class_wxColour",0);
-        SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0);
-        SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0);
-        SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0);
-        SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0);
-        SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0);
-        SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0);
-        SWIG_RegisterMapping("_uint","_unsigned_int",0);
-        SWIG_RegisterMapping("_uint","_int",0);
-        SWIG_RegisterMapping("_uint","_wxWindowID",0);
-        SWIG_RegisterMapping("_class_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent);
-        SWIG_RegisterMapping("_class_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent);
-        SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0);
-        SWIG_RegisterMapping("_wxRect","_class_wxRect",0);
-        SWIG_RegisterMapping("_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent);
-        SWIG_RegisterMapping("_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent);
-        SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0);
-        SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0);
-        SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0);
-        SWIG_RegisterMapping("_class_wxButton","_wxButton",0);
-        SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0);
-        SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0);
-        SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0);
-        SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0);
-        SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0);
-        SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0);
-        SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0);
-        SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0);
-        SWIG_RegisterMapping("_EBool","_signed_int",0);
-        SWIG_RegisterMapping("_EBool","_int",0);
-        SWIG_RegisterMapping("_EBool","_wxWindowID",0);
-        SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0);
-        SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0);
-        SWIG_RegisterMapping("_wxFont","_class_wxFont",0);
-        SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0);
-        SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0);
-        SWIG_RegisterMapping("_unsigned_long","_wxDash",0);
-        SWIG_RegisterMapping("_unsigned_long","_long",0);
-        SWIG_RegisterMapping("_class_wxRect","_wxRect",0);
-        SWIG_RegisterMapping("_class_wxDC","_wxDC",0);
-        SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0);
-        SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0);
-        SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0);
-        SWIG_RegisterMapping("_class_wxPanel","_class_wxGrid",SwigwxGridTowxPanel);
-        SWIG_RegisterMapping("_class_wxPanel","_wxGrid",SwigwxGridTowxPanel);
-        SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0);
-        SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0);
-        SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0);
-        SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0);
-        SWIG_RegisterMapping("_signed_int","_EBool",0);
-        SWIG_RegisterMapping("_signed_int","_wxWindowID",0);
-        SWIG_RegisterMapping("_signed_int","_int",0);
-        SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0);
-        SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0);
-        SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0);
-        SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0);
-        SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0);
-        SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0);
-        SWIG_RegisterMapping("_WXTYPE","_short",0);
-        SWIG_RegisterMapping("_WXTYPE","_signed_short",0);
-        SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0);
-        SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0);
-        SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0);
-        SWIG_RegisterMapping("_unsigned_short","_short",0);
-        SWIG_RegisterMapping("_class_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow);
-        SWIG_RegisterMapping("_class_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow);
-        SWIG_RegisterMapping("_class_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow);
-        SWIG_RegisterMapping("_class_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow);
-        SWIG_RegisterMapping("_class_wxWindow","_class_wxGrid",SwigwxGridTowxWindow);
-        SWIG_RegisterMapping("_class_wxWindow","_wxGrid",SwigwxGridTowxWindow);
-        SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0);
-        SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0);
-        SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0);
-        SWIG_RegisterMapping("_class_wxFont","_wxFont",0);
-        SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0);
-        SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0);
-        SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0);
-        SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0);
-        SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0);
-        SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0);
-        SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0);
-        SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0);
-        SWIG_RegisterMapping("_signed_short","_WXTYPE",0);
-        SWIG_RegisterMapping("_signed_short","_short",0);
-        SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0);
-        SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0);
-        SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0);
-        SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0);
-        SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0);
-        SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0);
-        SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0);
-        SWIG_RegisterMapping("_unsigned_char","_byte",0);
-        SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0);
-        SWIG_RegisterMapping("_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl);
-        SWIG_RegisterMapping("_wxControl","_wxNotebook",SwigwxNotebookTowxControl);
-        SWIG_RegisterMapping("_wxControl","_class_wxControl",0);
-        SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0);
-        SWIG_RegisterMapping("_unsigned_int","_uint",0);
-        SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0);
-        SWIG_RegisterMapping("_unsigned_int","_int",0);
-        SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0);
-        SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0);
-        SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0);
-        SWIG_RegisterMapping("_class_wxPen","_wxPen",0);
-        SWIG_RegisterMapping("_short","_WXTYPE",0);
-        SWIG_RegisterMapping("_short","_unsigned_short",0);
-        SWIG_RegisterMapping("_short","_signed_short",0);
-        SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0);
-        SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0);
-        SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0);
-        SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0);
-        SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0);
-        SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0);
-        SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0);
-        SWIG_RegisterMapping("_wxWindowID","_EBool",0);
-        SWIG_RegisterMapping("_wxWindowID","_uint",0);
-        SWIG_RegisterMapping("_wxWindowID","_int",0);
-        SWIG_RegisterMapping("_wxWindowID","_signed_int",0);
-        SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0);
-        SWIG_RegisterMapping("_int","_EBool",0);
-        SWIG_RegisterMapping("_int","_uint",0);
-        SWIG_RegisterMapping("_int","_wxWindowID",0);
-        SWIG_RegisterMapping("_int","_unsigned_int",0);
-        SWIG_RegisterMapping("_int","_signed_int",0);
-        SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0);
-        SWIG_RegisterMapping("_wxButton","_class_wxButton",0);
-        SWIG_RegisterMapping("_wxSize","_class_wxSize",0);
-        SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0);
-        SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0);
-        SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0);
-        SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0);
-        SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0);
-        SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0);
-        SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0);
-        SWIG_RegisterMapping("_class_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl);
-        SWIG_RegisterMapping("_class_wxControl","_wxNotebook",SwigwxNotebookTowxControl);
-        SWIG_RegisterMapping("_class_wxControl","_wxControl",0);
-        SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0);
-        SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0);
-        SWIG_RegisterMapping("_class_wxColour","_wxColour",0);
-        SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0);
-        SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0);
-        SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0);
-        SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0);
-        SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0);
-        SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0);
-        SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0);
-        SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0);
-        SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent);
-        SWIG_RegisterMapping("_class_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent);
-        SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0);
-        SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0);
-        SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0);
-        SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0);
-        SWIG_RegisterMapping("_class_wxSize","_wxSize",0);
-        SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0);
-        SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0);
-        SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0);
-        SWIG_RegisterMapping("_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler);
-        SWIG_RegisterMapping("_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler);
-        SWIG_RegisterMapping("_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler);
-        SWIG_RegisterMapping("_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler);
-        SWIG_RegisterMapping("_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler);
-        SWIG_RegisterMapping("_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler);
-        SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0);
-        SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0);
-        SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0);
-        SWIG_RegisterMapping("_wxDash","_unsigned_long",0);
-        SWIG_RegisterMapping("_wxDash","_long",0);
-        SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0);
-        SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0);
-        SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0);
-        SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0);
-        SWIG_RegisterMapping("_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow);
-        SWIG_RegisterMapping("_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow);
-        SWIG_RegisterMapping("_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow);
-        SWIG_RegisterMapping("_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow);
-        SWIG_RegisterMapping("_wxWindow","_class_wxGrid",SwigwxGridTowxWindow);
-        SWIG_RegisterMapping("_wxWindow","_wxGrid",SwigwxGridTowxWindow);
-        SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0);
+        PyDict_SetItemString(d,"wxEVT_GRID_SELECT_CELL", PyInt_FromLong((long) wxEVT_GRID_SELECT_CELL));
+        PyDict_SetItemString(d,"wxEVT_GRID_CREATE_CELL", PyInt_FromLong((long) wxEVT_GRID_CREATE_CELL));
+        PyDict_SetItemString(d,"wxEVT_GRID_CHANGE_LABELS", PyInt_FromLong((long) wxEVT_GRID_CHANGE_LABELS));
+        PyDict_SetItemString(d,"wxEVT_GRID_CHANGE_SEL_LABEL", PyInt_FromLong((long) wxEVT_GRID_CHANGE_SEL_LABEL));
+        PyDict_SetItemString(d,"wxEVT_GRID_CELL_CHANGE", PyInt_FromLong((long) wxEVT_GRID_CELL_CHANGE));
+        PyDict_SetItemString(d,"wxEVT_GRID_CELL_LCLICK", PyInt_FromLong((long) wxEVT_GRID_CELL_LCLICK));
+        PyDict_SetItemString(d,"wxEVT_GRID_CELL_RCLICK", PyInt_FromLong((long) wxEVT_GRID_CELL_RCLICK));
+        PyDict_SetItemString(d,"wxEVT_GRID_LABEL_LCLICK", PyInt_FromLong((long) wxEVT_GRID_LABEL_LCLICK));
+        PyDict_SetItemString(d,"wxEVT_GRID_LABEL_RCLICK", PyInt_FromLong((long) wxEVT_GRID_LABEL_RCLICK));
+{
+   int i;
+   for (i = 0; _swig_mapping[i].n1; i++)
+        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
+}
 }