]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/msw/gdi.cpp
wxPython 2.1b1: Very minor changes needed for wxGTK
[wxWidgets.git] / utils / wxPython / src / msw / gdi.cpp
index 9d4eb20f02007719cf05d99155886200e62d0757..2028d5304a04af26befa4c8629affc58c97ea4e1 100644 (file)
@@ -123,9 +123,10 @@ static char* wxStringErrorMsg = "string type is required for parameter";
         return new wxBitmap(width, height, depth);
     }
 
-                                // This one won't own the reference, so Python won't call
-                                // the dtor, this is good for toolbars and such where
-                                // the parent will manage the bitmap.
+                                // This one won't own the reference, so Python
+                                // won't call the dtor, this is good for
+                                // toolbars and such where the parent will
+                                // manage the bitmap.
     wxBitmap* wxNoRefBitmap(char* name, long flags) {
         return new wxBitmap(name, flags);
     }
@@ -202,8 +203,12 @@ static PyObject *_wrap_wxEmptyBitmap(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,"ii|i:wxEmptyBitmap",&_arg0,&_arg1,&_arg2)) 
         return NULL;
-    _result = (wxBitmap *)wxEmptyBitmap(_arg0,_arg1,_arg2);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBitmap *)wxEmptyBitmap(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -218,8 +223,12 @@ static PyObject *_wrap_wxNoRefBitmap(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,"sl:wxNoRefBitmap",&_arg0,&_arg1)) 
         return NULL;
-    _result = (wxBitmap *)wxNoRefBitmap(_arg0,_arg1);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBitmap *)wxNoRefBitmap(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -248,8 +257,12 @@ static PyObject *_wrap_wxMaskColour(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxMask *)wxMaskColour(*_arg0,*_arg1);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMask *)wxMaskColour(*_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -263,8 +276,12 @@ static PyObject *_wrap_wxStockCursor(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,"i:wxStockCursor",&_arg0)) 
         return NULL;
-    _result = (wxCursor *)wxPyStockCursor(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxCursor *)wxPyStockCursor(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -284,10 +301,14 @@ static PyObject *_wrap_wxNamedColour(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg0 = new wxString(PyString_AsString(_obj0));
+    _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0));
 }
-    _result = (wxColour *)wxNamedColour(*_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxColour *)wxNamedColour(*_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     if (_obj0)
@@ -312,8 +333,12 @@ static PyObject *_wrap_wxMemoryDCFromDC(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxMemoryDC *)wxMemoryDCFromDC(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMemoryDC *)wxMemoryDCFromDC(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -965,10 +990,14 @@ static PyObject *_wrap_new_wxBitmap(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg0 = new wxString(PyString_AsString(_obj0));
+    _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0));
 }
-    _result = (wxBitmap *)new_wxBitmap(*_arg0,_arg1);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBitmap *)new_wxBitmap(*_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     if (_obj0)
@@ -992,8 +1021,12 @@ static PyObject *_wrap_delete_wxBitmap(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxBitmap(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxBitmap(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1016,8 +1049,12 @@ static PyObject *_wrap_wxBitmap_Create(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBitmap_Create(_arg0,_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap_Create(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1038,8 +1075,12 @@ static PyObject *_wrap_wxBitmap_GetDepth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxBitmap_GetDepth(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxBitmap_GetDepth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1059,8 +1100,12 @@ static PyObject *_wrap_wxBitmap_GetHeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxBitmap_GetHeight(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxBitmap_GetHeight(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1081,8 +1126,12 @@ static PyObject *_wrap_wxBitmap_GetPalette(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxPalette *)wxBitmap_GetPalette(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPalette *)wxBitmap_GetPalette(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -1104,8 +1153,12 @@ static PyObject *_wrap_wxBitmap_GetMask(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxMask *)wxBitmap_GetMask(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMask *)wxBitmap_GetMask(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -1126,8 +1179,12 @@ static PyObject *_wrap_wxBitmap_GetWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxBitmap_GetWidth(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxBitmap_GetWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1155,10 +1212,14 @@ static PyObject *_wrap_wxBitmap_LoadFile(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));
 }
-    _result = (bool )wxBitmap_LoadFile(_arg0,*_arg1,_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxBitmap_LoadFile(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     if (_obj1)
         delete _arg1;
@@ -1182,8 +1243,12 @@ static PyObject *_wrap_wxBitmap_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxBitmap_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxBitmap_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1213,7 +1278,7 @@ static PyObject *_wrap_wxBitmap_SaveFile(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));
 }
     if (_argc3) {
         if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPalette_p")) {
@@ -1221,8 +1286,12 @@ static PyObject *_wrap_wxBitmap_SaveFile(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxBitmap_SaveFile(_arg0,*_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxBitmap_SaveFile(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     if (_obj1)
         delete _arg1;
@@ -1246,8 +1315,12 @@ static PyObject *_wrap_wxBitmap_SetDepth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBitmap_SetDepth(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap_SetDepth(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1268,8 +1341,12 @@ static PyObject *_wrap_wxBitmap_SetHeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBitmap_SetHeight(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap_SetHeight(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1297,8 +1374,12 @@ static PyObject *_wrap_wxBitmap_SetMask(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBitmap_SetMask(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap_SetMask(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1326,8 +1407,12 @@ static PyObject *_wrap_wxBitmap_SetPalette(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBitmap_SetPalette(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap_SetPalette(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1348,8 +1433,12 @@ static PyObject *_wrap_wxBitmap_SetWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBitmap_SetWidth(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBitmap_SetWidth(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1371,8 +1460,12 @@ static PyObject *_wrap_new_wxMask(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxMask *)new_wxMask(*_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMask *)new_wxMask(*_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -1392,8 +1485,12 @@ static PyObject *_wrap_delete_wxMask(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxMask(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxMask(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1425,10 +1522,14 @@ static PyObject *_wrap_new_wxIcon(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg0 = new wxString(PyString_AsString(_obj0));
+    _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0));
 }
-    _result = (wxIcon *)new_wxIcon(*_arg0,_arg1,_arg2,_arg3);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxIcon *)new_wxIcon(*_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     if (_obj0)
@@ -1452,8 +1553,12 @@ static PyObject *_wrap_delete_wxIcon(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxIcon(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxIcon(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1474,8 +1579,12 @@ static PyObject *_wrap_wxIcon_GetDepth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxIcon_GetDepth(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxIcon_GetDepth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1495,8 +1604,12 @@ static PyObject *_wrap_wxIcon_GetHeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxIcon_GetHeight(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxIcon_GetHeight(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1516,8 +1629,12 @@ static PyObject *_wrap_wxIcon_GetWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxIcon_GetWidth(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxIcon_GetWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1545,10 +1662,14 @@ static PyObject *_wrap_wxIcon_LoadFile(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));
 }
-    _result = (bool )wxIcon_LoadFile(_arg0,*_arg1,_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxIcon_LoadFile(_arg0,*_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     if (_obj1)
         delete _arg1;
@@ -1572,8 +1693,12 @@ static PyObject *_wrap_wxIcon_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxIcon_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxIcon_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1593,8 +1718,12 @@ static PyObject *_wrap_wxIcon_SetDepth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxIcon_SetDepth(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxIcon_SetDepth(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1615,8 +1744,12 @@ static PyObject *_wrap_wxIcon_SetHeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxIcon_SetHeight(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxIcon_SetHeight(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1637,8 +1770,12 @@ static PyObject *_wrap_wxIcon_SetWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxIcon_SetWidth(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxIcon_SetWidth(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1670,10 +1807,14 @@ static PyObject *_wrap_new_wxCursor(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg0 = new wxString(PyString_AsString(_obj0));
+    _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0));
 }
-    _result = (wxCursor *)new_wxCursor(*_arg0,_arg1,_arg2,_arg3);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxCursor *)new_wxCursor(*_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     if (_obj0)
@@ -1697,8 +1838,12 @@ static PyObject *_wrap_delete_wxCursor(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxCursor(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxCursor(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1719,8 +1864,12 @@ static PyObject *_wrap_wxCursor_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxCursor_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxCursor_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1744,8 +1893,12 @@ static PyObject *_wrap_new_wxFont(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,"iiii|is:new_wxFont",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) 
         return NULL;
-    _result = (wxFont *)new_wxFont(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxFont *)new_wxFont(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -1766,8 +1919,12 @@ static PyObject *_wrap_wxFont_GetFaceName(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = new wxString (wxFont_GetFaceName(_arg0));
 {
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxString (wxFont_GetFaceName(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}{
     _resultobj = PyString_FromString(WXSTRINGCAST *(_result));
 }
 {
@@ -1792,8 +1949,12 @@ static PyObject *_wrap_wxFont_GetFamily(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxFont_GetFamily(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxFont_GetFamily(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1813,8 +1974,12 @@ static PyObject *_wrap_wxFont_GetFontId(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxFont_GetFontId(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxFont_GetFontId(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1834,8 +1999,12 @@ static PyObject *_wrap_wxFont_GetPointSize(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxFont_GetPointSize(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxFont_GetPointSize(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1855,8 +2024,12 @@ static PyObject *_wrap_wxFont_GetStyle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxFont_GetStyle(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxFont_GetStyle(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1876,8 +2049,12 @@ static PyObject *_wrap_wxFont_GetUnderlined(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxFont_GetUnderlined(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxFont_GetUnderlined(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1897,8 +2074,12 @@ static PyObject *_wrap_wxFont_GetWeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxFont_GetWeight(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxFont_GetWeight(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -1924,10 +2105,14 @@ static PyObject *_wrap_wxFont_SetFaceName(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));
 }
-    wxFont_SetFaceName(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont_SetFaceName(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     if (_obj1)
@@ -1952,8 +2137,12 @@ static PyObject *_wrap_wxFont_SetFamily(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxFont_SetFamily(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont_SetFamily(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1974,8 +2163,12 @@ static PyObject *_wrap_wxFont_SetPointSize(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxFont_SetPointSize(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont_SetPointSize(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -1996,8 +2189,12 @@ static PyObject *_wrap_wxFont_SetStyle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxFont_SetStyle(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont_SetStyle(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2020,8 +2217,12 @@ static PyObject *_wrap_wxFont_SetUnderlined(PyObject *self, PyObject *args) {
         }
     }
     _arg1 = (bool ) tempbool1;
-    wxFont_SetUnderlined(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont_SetUnderlined(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2042,8 +2243,12 @@ static PyObject *_wrap_wxFont_SetWeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxFont_SetWeight(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont_SetWeight(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2060,8 +2265,12 @@ static PyObject *_wrap_new_wxColour(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,"|bbb:new_wxColour",&_arg0,&_arg1,&_arg2)) 
         return NULL;
-    _result = (wxColour *)new_wxColour(_arg0,_arg1,_arg2);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxColour *)new_wxColour(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2081,8 +2290,12 @@ static PyObject *_wrap_delete_wxColour(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxColour(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxColour(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2103,8 +2316,12 @@ static PyObject *_wrap_wxColour_Red(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (unsigned char )wxColour_Red(_arg0);
-    _resultobj = Py_BuildValue("b",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (unsigned char )wxColour_Red(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("b",_result);
     return _resultobj;
 }
 
@@ -2124,8 +2341,12 @@ static PyObject *_wrap_wxColour_Green(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (unsigned char )wxColour_Green(_arg0);
-    _resultobj = Py_BuildValue("b",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (unsigned char )wxColour_Green(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("b",_result);
     return _resultobj;
 }
 
@@ -2145,8 +2366,12 @@ static PyObject *_wrap_wxColour_Blue(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (unsigned char )wxColour_Blue(_arg0);
-    _resultobj = Py_BuildValue("b",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (unsigned char )wxColour_Blue(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("b",_result);
     return _resultobj;
 }
 
@@ -2166,8 +2391,12 @@ static PyObject *_wrap_wxColour_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxColour_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxColour_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2189,8 +2418,12 @@ static PyObject *_wrap_wxColour_Set(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxColour_Set(_arg0,_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour_Set(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2217,8 +2450,12 @@ static PyObject *_wrap_wxColour_Get(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (PyObject *)wxColour_Get(_arg0);
 {
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (PyObject *)wxColour_Get(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}{
   _resultobj = _result;
 }
     return _resultobj;
@@ -2246,8 +2483,12 @@ static PyObject *_wrap_new_wxPen(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxPen *)new_wxPen(_arg0,_arg1,_arg2);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPen *)new_wxPen(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2268,8 +2509,12 @@ static PyObject *_wrap_wxPen_GetCap(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxPen_GetCap(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPen_GetCap(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2290,9 +2535,13 @@ static PyObject *_wrap_wxPen_GetColour(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxColour & _result_ref = wxPen_GetColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxPen_GetColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2313,8 +2562,12 @@ static PyObject *_wrap_wxPen_GetJoin(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxPen_GetJoin(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPen_GetJoin(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2334,8 +2587,12 @@ static PyObject *_wrap_wxPen_GetStyle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxPen_GetStyle(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPen_GetStyle(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2355,8 +2612,12 @@ static PyObject *_wrap_wxPen_GetWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxPen_GetWidth(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPen_GetWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2376,8 +2637,12 @@ static PyObject *_wrap_wxPen_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxPen_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPen_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2397,8 +2662,12 @@ static PyObject *_wrap_wxPen_SetCap(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen_SetCap(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetCap(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2426,8 +2695,12 @@ static PyObject *_wrap_wxPen_SetColour(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen_SetColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2448,8 +2721,12 @@ static PyObject *_wrap_wxPen_SetJoin(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen_SetJoin(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetJoin(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2470,8 +2747,12 @@ static PyObject *_wrap_wxPen_SetStyle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen_SetStyle(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetStyle(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2492,8 +2773,12 @@ static PyObject *_wrap_wxPen_SetWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen_SetWidth(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetWidth(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2522,8 +2807,12 @@ static PyObject *_wrap_wxPen_GetDashes(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxPen_GetDashes(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPen_GetDashes(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2544,8 +2833,12 @@ static PyObject *_wrap_wxPen_GetStipple(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxBitmap *)wxPen_GetStipple(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBitmap *)wxPen_GetStipple(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2576,10 +2869,19 @@ static PyObject *_wrap_wxPen_SetDashes(PyObject *self, PyObject *args) {
     }
 }
 {
-    _arg1 = PyList_Size(_obj2);
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
 }
-    wxPen_SetDashes(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetDashes(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     delete [] _arg2;
@@ -2610,8 +2912,12 @@ static PyObject *_wrap_wxPen_SetStipple(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen_SetStipple(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen_SetStipple(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2637,8 +2943,12 @@ static PyObject *_wrap_new_wxBrush(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxBrush *)new_wxBrush(_arg0,_arg1);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBrush *)new_wxBrush(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2660,9 +2970,13 @@ static PyObject *_wrap_wxBrush_GetColour(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxColour & _result_ref = wxBrush_GetColour(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxBrush_GetColour(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2684,8 +2998,12 @@ static PyObject *_wrap_wxBrush_GetStipple(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxBitmap *)wxBrush_GetStipple(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxBitmap *)wxBrush_GetStipple(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -2706,8 +3024,12 @@ static PyObject *_wrap_wxBrush_GetStyle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxBrush_GetStyle(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxBrush_GetStyle(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2727,8 +3049,12 @@ static PyObject *_wrap_wxBrush_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxBrush_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxBrush_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2755,8 +3081,12 @@ static PyObject *_wrap_wxBrush_SetColour(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBrush_SetColour(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBrush_SetColour(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2784,8 +3114,12 @@ static PyObject *_wrap_wxBrush_SetStipple(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBrush_SetStipple(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBrush_SetStipple(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2806,8 +3140,12 @@ static PyObject *_wrap_wxBrush_SetStyle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBrush_SetStyle(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBrush_SetStyle(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2827,8 +3165,12 @@ static PyObject *_wrap_delete_wxDC(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxDC(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxDC(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2848,8 +3190,12 @@ static PyObject *_wrap_wxDC_BeginDrawing(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_BeginDrawing(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_BeginDrawing(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2885,8 +3231,12 @@ static PyObject *_wrap_wxDC_Blit(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxDC_Blit(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDC_Blit(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -2905,8 +3255,12 @@ static PyObject *_wrap_wxDC_Clear(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_Clear(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_Clear(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2928,8 +3282,12 @@ static PyObject *_wrap_wxDC_CrossHair(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_CrossHair(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_CrossHair(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2949,8 +3307,12 @@ static PyObject *_wrap_wxDC_DestroyClippingRegion(PyObject *self, PyObject *args
         return NULL;
         }
     }
-    wxDC_DestroyClippingRegion(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DestroyClippingRegion(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -2972,8 +3334,12 @@ static PyObject *_wrap_wxDC_DeviceToLogicalX(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_DeviceToLogicalX(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_DeviceToLogicalX(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -2994,8 +3360,12 @@ static PyObject *_wrap_wxDC_DeviceToLogicalXRel(PyObject *self, PyObject *args)
         return NULL;
         }
     }
-    _result = (long )wxDC_DeviceToLogicalXRel(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_DeviceToLogicalXRel(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -3016,8 +3386,12 @@ static PyObject *_wrap_wxDC_DeviceToLogicalY(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_DeviceToLogicalY(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_DeviceToLogicalY(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -3038,8 +3412,12 @@ static PyObject *_wrap_wxDC_DeviceToLogicalYRel(PyObject *self, PyObject *args)
         return NULL;
         }
     }
-    _result = (long )wxDC_DeviceToLogicalYRel(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_DeviceToLogicalYRel(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -3064,8 +3442,40 @@ static PyObject *_wrap_wxDC_DrawArc(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
+    _resultobj = Py_None;
+    return _resultobj;
+}
+
+#define wxDC_DrawCircle(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DrawCircle(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxDC_DrawCircle(PyObject *self, PyObject *args) {
+    PyObject * _resultobj;
+    wxDC * _arg0;
+    long  _arg1;
+    long  _arg2;
+    long  _arg3;
+    char * _argc0 = 0;
+
+    self = self;
+    if(!PyArg_ParseTuple(args,"slll:wxDC_DrawCircle",&_argc0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argc0) {
+        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawCircle. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawCircle(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3089,8 +3499,12 @@ static PyObject *_wrap_wxDC_DrawEllipse(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawEllipse(_arg0,_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawEllipse(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3116,8 +3530,12 @@ static PyObject *_wrap_wxDC_DrawEllipticArc(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawEllipticArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawEllipticArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3147,8 +3565,12 @@ static PyObject *_wrap_wxDC_DrawIcon(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawIcon(_arg0,*_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawIcon(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3172,8 +3594,12 @@ static PyObject *_wrap_wxDC_DrawLine(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawLine(_arg0,_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawLine(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3206,10 +3632,19 @@ static PyObject *_wrap_wxDC_DrawLines(PyObject *self, PyObject *args) {
     }
 }
 {
-    _arg1 = PyList_Size(_obj2);
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
 }
-    wxDC_DrawLines(_arg0,_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawLines(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     delete [] _arg2;
@@ -3246,10 +3681,19 @@ static PyObject *_wrap_wxDC_DrawPolygon(PyObject *self, PyObject *args) {
     }
 }
 {
-    _arg1 = PyList_Size(_obj2);
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
 }
-    wxDC_DrawPolygon(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawPolygon(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     delete [] _arg2;
@@ -3274,8 +3718,12 @@ static PyObject *_wrap_wxDC_DrawPoint(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawPoint(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawPoint(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3299,8 +3747,12 @@ static PyObject *_wrap_wxDC_DrawRectangle(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_DrawRectangle(_arg0,_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawRectangle(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3325,8 +3777,12 @@ static PyObject *_wrap_wxDC_DrawRoundedRectangle(PyObject *self, PyObject *args)
         return NULL;
         }
     }
-    wxDC_DrawRoundedRectangle(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawRoundedRectangle(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3357,10 +3813,19 @@ static PyObject *_wrap_wxDC_DrawSpline(PyObject *self, PyObject *args) {
     }
 }
 {
-    _arg1 = PyList_Size(_obj2);
+    if (_obj2) {
+        _arg1 = PyList_Size(_obj2);
+    }
+    else {
+        _arg1 = 0;
+    }
 }
-    wxDC_DrawSpline(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawSpline(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     delete [] _arg2;
@@ -3392,10 +3857,14 @@ static PyObject *_wrap_wxDC_DrawText(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));
 }
-    wxDC_DrawText(_arg0,*_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawText(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     if (_obj1)
@@ -3419,8 +3888,12 @@ static PyObject *_wrap_wxDC_EndDoc(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_EndDoc(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_EndDoc(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3440,8 +3913,12 @@ static PyObject *_wrap_wxDC_EndDrawing(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_EndDrawing(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_EndDrawing(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3461,8 +3938,12 @@ static PyObject *_wrap_wxDC_EndPage(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_EndPage(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_EndPage(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3493,8 +3974,12 @@ static PyObject *_wrap_wxDC_FloodFill(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_FloodFill(_arg0,_arg1,_arg2,*_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_FloodFill(_arg0,_arg1,_arg2,*_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -3516,9 +4001,13 @@ static PyObject *_wrap_wxDC_GetBackground(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBrush & _result_ref = wxDC_GetBackground(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBrush & _result_ref = wxDC_GetBackground(_arg0);
     _result = (wxBrush *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -3540,9 +4029,13 @@ static PyObject *_wrap_wxDC_GetBrush(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxBrush & _result_ref = wxDC_GetBrush(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxBrush & _result_ref = wxDC_GetBrush(_arg0);
     _result = (wxBrush *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -3563,8 +4056,12 @@ static PyObject *_wrap_wxDC_GetCharHeight(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_GetCharHeight(_arg0);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_GetCharHeight(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -3584,8 +4081,12 @@ static PyObject *_wrap_wxDC_GetCharWidth(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_GetCharWidth(_arg0);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_GetCharWidth(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -3624,8 +4125,12 @@ static PyObject *_wrap_wxDC_GetClippingBox(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_GetClippingBox(_arg0,_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_GetClippingBox(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     PyObject *o;
@@ -3667,9 +4172,13 @@ static PyObject *_wrap_wxDC_GetFont(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxFont & _result_ref = wxDC_GetFont(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxFont & _result_ref = wxDC_GetFont(_arg0);
     _result = (wxFont *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -3690,8 +4199,12 @@ static PyObject *_wrap_wxDC_GetLogicalFunction(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxDC_GetLogicalFunction(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxDC_GetLogicalFunction(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -3711,8 +4224,12 @@ static PyObject *_wrap_wxDC_GetMapMode(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxDC_GetMapMode(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxDC_GetMapMode(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -3732,8 +4249,12 @@ static PyObject *_wrap_wxDC_GetOptimization(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxDC_GetOptimization(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDC_GetOptimization(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -3754,9 +4275,13 @@ static PyObject *_wrap_wxDC_GetPen(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxPen & _result_ref = wxDC_GetPen(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxPen & _result_ref = wxDC_GetPen(_arg0);
     _result = (wxPen *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -3784,14 +4309,18 @@ static PyObject *_wrap_wxDC_GetPixel(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxColour *)wxDC_GetPixel(_arg0,_arg1,_arg2);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxColour *)wxDC_GetPixel(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
 
-#define wxDC_GetSize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetSize(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) {
+#define wxDC_GetSizeTuple(_swigobj,_swigarg0,_swigarg1)  (_swigobj->GetSize(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxDC_GetSizeTuple(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
     wxDC * _arg0;
     int * _arg1;
@@ -3807,16 +4336,20 @@ static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) {
 {
   _arg2 = &temp0;
 }
-    if(!PyArg_ParseTuple(args,"s:wxDC_GetSize",&_argc0)) 
+    if(!PyArg_ParseTuple(args,"s:wxDC_GetSizeTuple",&_argc0)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSize. Expected _wxDC_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSizeTuple. Expected _wxDC_p.");
         return NULL;
         }
     }
-    wxDC_GetSize(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_GetSizeTuple(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     PyObject *o;
@@ -3831,6 +4364,33 @@ static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) {
     return _resultobj;
 }
 
+#define wxDC_GetSize(_swigobj)  (_swigobj->GetSize())
+static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) {
+    PyObject * _resultobj;
+    wxSize * _result;
+    wxDC * _arg0;
+    char * _argc0 = 0;
+    char _ptemp[128];
+
+    self = self;
+    if(!PyArg_ParseTuple(args,"s:wxDC_GetSize",&_argc0)) 
+        return NULL;
+    if (_argc0) {
+        if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSize. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = new wxSize (wxDC_GetSize(_arg0));
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p");
+    _resultobj = Py_BuildValue("s",_ptemp);
+    return _resultobj;
+}
+
 #define wxDC_GetTextBackground(_swigobj)  (_swigobj->GetTextBackground())
 static PyObject *_wrap_wxDC_GetTextBackground(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
@@ -3848,9 +4408,13 @@ static PyObject *_wrap_wxDC_GetTextBackground(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxColour & _result_ref = wxDC_GetTextBackground(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxDC_GetTextBackground(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -3887,10 +4451,14 @@ static PyObject *_wrap_wxDC_GetTextExtent(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));
 }
-    wxDC_GetTextExtent(_arg0,*_arg1,_arg2,_arg3);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_GetTextExtent(_arg0,*_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     PyObject *o;
@@ -3953,7 +4521,7 @@ static PyObject *_wrap_wxDC_GetFullTextExtent(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));
 }
     if (_argc6) {
         if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxFont_p")) {
@@ -3961,8 +4529,12 @@ static PyObject *_wrap_wxDC_GetFullTextExtent(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_GetFullTextExtent(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_GetFullTextExtent(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
 {
     PyObject *o;
@@ -4008,9 +4580,13 @@ static PyObject *_wrap_wxDC_GetTextForeground(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxColour & _result_ref = wxDC_GetTextForeground(_arg0);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxColour & _result_ref = wxDC_GetTextForeground(_arg0);
     _result = (wxColour *) &_result_ref;
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -4032,8 +4608,12 @@ static PyObject *_wrap_wxDC_LogicalToDeviceX(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_LogicalToDeviceX(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_LogicalToDeviceX(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4054,8 +4634,12 @@ static PyObject *_wrap_wxDC_LogicalToDeviceXRel(PyObject *self, PyObject *args)
         return NULL;
         }
     }
-    _result = (long )wxDC_LogicalToDeviceXRel(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_LogicalToDeviceXRel(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4076,8 +4660,12 @@ static PyObject *_wrap_wxDC_LogicalToDeviceY(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_LogicalToDeviceY(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_LogicalToDeviceY(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4098,8 +4686,12 @@ static PyObject *_wrap_wxDC_LogicalToDeviceYRel(PyObject *self, PyObject *args)
         return NULL;
         }
     }
-    _result = (long )wxDC_LogicalToDeviceYRel(_arg0,_arg1);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_LogicalToDeviceYRel(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4119,8 +4711,12 @@ static PyObject *_wrap_wxDC_MaxX(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_MaxX(_arg0);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_MaxX(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4140,8 +4736,12 @@ static PyObject *_wrap_wxDC_MaxY(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_MaxY(_arg0);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_MaxY(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4161,8 +4761,12 @@ static PyObject *_wrap_wxDC_MinX(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_MinX(_arg0);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_MinX(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4182,8 +4786,12 @@ static PyObject *_wrap_wxDC_MinY(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (long )wxDC_MinY(_arg0);
-    _resultobj = Py_BuildValue("l",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (long )wxDC_MinY(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("l",_result);
     return _resultobj;
 }
 
@@ -4203,8 +4811,12 @@ static PyObject *_wrap_wxDC_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxDC_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDC_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -4225,8 +4837,12 @@ static PyObject *_wrap_wxDC_SetDeviceOrigin(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetDeviceOrigin(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetDeviceOrigin(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4254,8 +4870,12 @@ static PyObject *_wrap_wxDC_SetBackground(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetBackground(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetBackground(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4276,8 +4896,12 @@ static PyObject *_wrap_wxDC_SetBackgroundMode(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetBackgroundMode(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetBackgroundMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4301,8 +4925,12 @@ static PyObject *_wrap_wxDC_SetClippingRegion(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetClippingRegion(_arg0,_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetClippingRegion(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4330,8 +4958,12 @@ static PyObject *_wrap_wxDC_SetPalette(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetPalette(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetPalette(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4359,8 +4991,12 @@ static PyObject *_wrap_wxDC_SetBrush(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetBrush(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetBrush(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4388,8 +5024,12 @@ static PyObject *_wrap_wxDC_SetFont(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetFont(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetFont(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4410,8 +5050,12 @@ static PyObject *_wrap_wxDC_SetLogicalFunction(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetLogicalFunction(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetLogicalFunction(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4432,8 +5076,12 @@ static PyObject *_wrap_wxDC_SetMapMode(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetMapMode(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetMapMode(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4456,8 +5104,12 @@ static PyObject *_wrap_wxDC_SetOptimization(PyObject *self, PyObject *args) {
         }
     }
     _arg1 = (bool ) tempbool1;
-    wxDC_SetOptimization(_arg0,_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetOptimization(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4485,8 +5137,12 @@ static PyObject *_wrap_wxDC_SetPen(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetPen(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetPen(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4514,8 +5170,12 @@ static PyObject *_wrap_wxDC_SetTextBackground(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetTextBackground(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetTextBackground(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4543,8 +5203,12 @@ static PyObject *_wrap_wxDC_SetTextForeground(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetTextForeground(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetTextForeground(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4566,8 +5230,12 @@ static PyObject *_wrap_wxDC_SetUserScale(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_SetUserScale(_arg0,_arg1,_arg2);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_SetUserScale(_arg0,_arg1,_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4595,10 +5263,14 @@ static PyObject *_wrap_wxDC_StartDoc(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));
 }
-    _result = (bool )wxDC_StartDoc(_arg0,*_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxDC_StartDoc(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
 {
     if (_obj1)
         delete _arg1;
@@ -4621,8 +5293,12 @@ static PyObject *_wrap_wxDC_StartPage(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxDC_StartPage(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_StartPage(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4664,8 +5340,12 @@ static PyObject *_wrap_wxDC_DrawBitmap(PyObject *self, PyObject *args) {
         }
     }
     _arg4 = (bool ) tempbool4;
-    wxDC_DrawBitmap(_arg0,*_arg1,_arg2,_arg3,_arg4);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxDC_DrawBitmap(_arg0,*_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4687,8 +5367,12 @@ static PyObject *_wrap_new_wxMemoryDC(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,":new_wxMemoryDC")) 
         return NULL;
-    _result = (wxMemoryDC *)new_wxMemoryDC();
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMemoryDC *)new_wxMemoryDC();
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -4716,8 +5400,12 @@ static PyObject *_wrap_wxMemoryDC_SelectObject(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    wxMemoryDC_SelectObject(_arg0,*_arg1);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        wxMemoryDC_SelectObject(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -4739,8 +5427,12 @@ static PyObject *_wrap_new_wxScreenDC(PyObject *self, PyObject *args) {
     self = self;
     if(!PyArg_ParseTuple(args,":new_wxScreenDC")) 
         return NULL;
-    _result = (wxScreenDC *)new_wxScreenDC();
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxScreenDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxScreenDC *)new_wxScreenDC();
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxScreenDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -4769,8 +5461,12 @@ static PyObject *_wrap_wxScreenDC_StartDrawingOnTop(PyObject *self, PyObject *ar
         return NULL;
         }
     }
-    _result = (bool )wxScreenDC_StartDrawingOnTop(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxScreenDC_StartDrawingOnTop(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -4798,8 +5494,12 @@ static PyObject *_wrap_wxScreenDC_StartDrawingOnTopRect(PyObject *self, PyObject
         return NULL;
         }
     }
-    _result = (bool )wxScreenDC_StartDrawingOnTopRect(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxScreenDC_StartDrawingOnTopRect(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -4819,8 +5519,12 @@ static PyObject *_wrap_wxScreenDC_EndDrawingOnTop(PyObject *self, PyObject *args
         return NULL;
         }
     }
-    _result = (bool )wxScreenDC_EndDrawingOnTop(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxScreenDC_EndDrawingOnTop(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -4849,8 +5553,12 @@ static PyObject *_wrap_new_wxClientDC(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxClientDC *)new_wxClientDC(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxClientDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxClientDC *)new_wxClientDC(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxClientDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -4880,8 +5588,12 @@ static PyObject *_wrap_new_wxPaintDC(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxPaintDC *)new_wxPaintDC(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPaintDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPaintDC *)new_wxPaintDC(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPaintDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -4911,8 +5623,12 @@ static PyObject *_wrap_new_wxWindowDC(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxWindowDC *)new_wxWindowDC(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindowDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxWindowDC *)new_wxWindowDC(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindowDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -4948,25 +5664,29 @@ static PyObject *_wrap_new_wxPrinterDC(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg0 = new wxString(PyString_AsString(_obj0));
+    _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0));
 }
 {
     if (!PyString_Check(_obj1)) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg1 = new wxString(PyString_AsString(_obj1));
+    _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1));
 }
 {
     if (!PyString_Check(_obj2)) {
         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 = (wxPrinterDC *)new_wxPrinterDC(*_arg0,*_arg1,*_arg2,_arg3,_arg4);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrinterDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPrinterDC *)new_wxPrinterDC(*_arg0,*_arg1,*_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrinterDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     if (_obj0)
@@ -5008,10 +5728,14 @@ static PyObject *_wrap_new_wxMetaFileDC(PyObject *self, PyObject *args) {
         PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
         return NULL;
     }
-    _arg0 = new wxString(PyString_AsString(_obj0));
+    _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0));
 }
-    _result = (wxMetaFileDC *)new_wxMetaFileDC(*_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFileDC_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMetaFileDC *)new_wxMetaFileDC(*_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFileDC_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     if (_obj0)
@@ -5037,8 +5761,12 @@ static PyObject *_wrap_wxMetaFileDC_Close(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (wxMetaFile *)wxMetaFileDC_Close(_arg0);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFile_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxMetaFile *)wxMetaFileDC_Close(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFile_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -5079,10 +5807,19 @@ static PyObject *_wrap_new_wxPalette(PyObject *self, PyObject *args) {
     }
 }
 {
-    _arg0 = PyList_Size(_obj1);
+    if (_obj1) {
+        _arg0 = PyList_Size(_obj1);
+    }
+    else {
+        _arg0 = 0;
+    }
 }
-    _result = (wxPalette *)new_wxPalette(_arg0,_arg1,_arg2,_arg3);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxPalette *)new_wxPalette(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p");
     _resultobj = Py_BuildValue("s",_ptemp);
 {
     delete [] _arg1;
@@ -5111,8 +5848,12 @@ static PyObject *_wrap_delete_wxPalette(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxPalette(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxPalette(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -5136,8 +5877,12 @@ static PyObject *_wrap_wxPalette_GetPixel(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxPalette_GetPixel(_arg0,_arg1,_arg2,_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxPalette_GetPixel(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -5182,8 +5927,12 @@ static PyObject *_wrap_wxPalette_GetRGB(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxPalette_GetRGB(_arg0,_arg1,_arg2,_arg3,_arg4);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPalette_GetRGB(_arg0,_arg1,_arg2,_arg3,_arg4);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -5203,8 +5952,12 @@ static PyObject *_wrap_wxPalette_Ok(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (bool )wxPalette_Ok(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxPalette_Ok(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -5223,8 +5976,12 @@ static PyObject *_wrap_new_wxImageList(PyObject *self, PyObject *args) {
     if(!PyArg_ParseTuple(args,"ii|ii:new_wxImageList",&_arg0,&_arg1,&tempbool2,&_arg3)) 
         return NULL;
     _arg2 = (bool ) tempbool2;
-    _result = (wxImageList *)new_wxImageList(_arg0,_arg1,_arg2,_arg3);
-    SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p");
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (wxImageList *)new_wxImageList(_arg0,_arg1,_arg2,_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p");
     _resultobj = Py_BuildValue("s",_ptemp);
     return _resultobj;
 }
@@ -5244,8 +6001,12 @@ static PyObject *_wrap_delete_wxImageList(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    delete_wxImageList(_arg0);
-    Py_INCREF(Py_None);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        delete_wxImageList(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    Py_INCREF(Py_None);
     _resultobj = Py_None;
     return _resultobj;
 }
@@ -5282,8 +6043,12 @@ static PyObject *_wrap_wxImageList_Add(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxImageList_Add(_arg0,*_arg1,*_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxImageList_Add(_arg0,*_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -5319,8 +6084,12 @@ static PyObject *_wrap_wxImageList_AddWithColourMask(PyObject *self, PyObject *a
         return NULL;
         }
     }
-    _result = (int )wxImageList_AddWithColourMask(_arg0,*_arg1,*_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxImageList_AddWithColourMask(_arg0,*_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
@@ -5348,186 +6117,214 @@ static PyObject *_wrap_wxImageList_AddIcon(PyObject *self, PyObject *args) {
         return NULL;
         }
     }
-    _result = (int )wxImageList_AddIcon(_arg0,*_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxImageList_AddIcon(_arg0,*_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
-#define wxImageList_Draw(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->Draw(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
-static PyObject *_wrap_wxImageList_Draw(PyObject *self, PyObject *args) {
+#define wxImageList_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxImageList_Replace(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
     bool  _result;
     wxImageList * _arg0;
     int  _arg1;
-    wxDC * _arg2;
-    int  _arg3;
-    int  _arg4;
-    int  _arg5 = (wxIMAGELIST_DRAW_NORMAL);
-    bool  _arg6 = (0);
+    wxBitmap * _arg2;
+    wxBitmap * _arg3 = &wxNullBitmap;
     char * _argc0 = 0;
     char * _argc2 = 0;
-    int tempbool6;
+    char * _argc3 = 0;
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sisii|ii:wxImageList_Draw",&_argc0,&_arg1,&_argc2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
+    if(!PyArg_ParseTuple(args,"sis|s:wxImageList_Replace",&_argc0,&_arg1,&_argc2,&_argc3)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Draw. Expected _wxImageList_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Replace. Expected _wxImageList_p.");
         return NULL;
         }
     }
     if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxDC_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Draw. Expected _wxDC_p.");
+        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Replace. Expected _wxBitmap_p.");
         return NULL;
         }
     }
-    _arg6 = (bool ) tempbool6;
-    _result = (bool )wxImageList_Draw(_arg0,_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6);
-    _resultobj = Py_BuildValue("i",_result);
+    if (_argc3) {
+        if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxBitmap_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxImageList_Replace. Expected _wxBitmap_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxImageList_Replace(_arg0,_arg1,*_arg2,*_arg3);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
-#define wxImageList_GetImageCount(_swigobj)  (_swigobj->GetImageCount())
-static PyObject *_wrap_wxImageList_GetImageCount(PyObject *self, PyObject *args) {
+#define wxImageList_ReplaceIcon(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Replace(_swigarg0,_swigarg1))
+static PyObject *_wrap_wxImageList_ReplaceIcon(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
-    int  _result;
+    bool  _result;
     wxImageList * _arg0;
+    int  _arg1;
+    wxIcon * _arg2;
     char * _argc0 = 0;
+    char * _argc2 = 0;
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxImageList_GetImageCount",&_argc0)) 
+    if(!PyArg_ParseTuple(args,"sis:wxImageList_ReplaceIcon",&_argc0,&_arg1,&_argc2)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_GetImageCount. Expected _wxImageList_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_ReplaceIcon. Expected _wxImageList_p.");
         return NULL;
         }
     }
-    _result = (int )wxImageList_GetImageCount(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+    if (_argc2) {
+        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxIcon_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_ReplaceIcon. Expected _wxIcon_p.");
+        return NULL;
+        }
+    }
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxImageList_ReplaceIcon(_arg0,_arg1,*_arg2);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
-#define wxImageList_Remove(_swigobj,_swigarg0)  (_swigobj->Remove(_swigarg0))
-static PyObject *_wrap_wxImageList_Remove(PyObject *self, PyObject *args) {
+#define wxImageList_Draw(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)  (_swigobj->Draw(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
+static PyObject *_wrap_wxImageList_Draw(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
     bool  _result;
     wxImageList * _arg0;
     int  _arg1;
+    wxDC * _arg2;
+    int  _arg3;
+    int  _arg4;
+    int  _arg5 = (wxIMAGELIST_DRAW_NORMAL);
+    bool  _arg6 = (0);
     char * _argc0 = 0;
+    char * _argc2 = 0;
+    int tempbool6;
 
     self = self;
-    if(!PyArg_ParseTuple(args,"si:wxImageList_Remove",&_argc0,&_arg1)) 
+    if(!PyArg_ParseTuple(args,"sisii|ii:wxImageList_Draw",&_argc0,&_arg1,&_argc2,&_arg3,&_arg4,&_arg5,&tempbool6)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Remove. Expected _wxImageList_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Draw. Expected _wxImageList_p.");
         return NULL;
         }
     }
-    _result = (bool )wxImageList_Remove(_arg0,_arg1);
-    _resultobj = Py_BuildValue("i",_result);
+    if (_argc2) {
+        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxDC_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Draw. Expected _wxDC_p.");
+        return NULL;
+        }
+    }
+    _arg6 = (bool ) tempbool6;
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxImageList_Draw(_arg0,_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
-#define wxImageList_RemoveAll(_swigobj)  (_swigobj->RemoveAll())
-static PyObject *_wrap_wxImageList_RemoveAll(PyObject *self, PyObject *args) {
+#define wxImageList_GetImageCount(_swigobj)  (_swigobj->GetImageCount())
+static PyObject *_wrap_wxImageList_GetImageCount(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
-    bool  _result;
+    int  _result;
     wxImageList * _arg0;
     char * _argc0 = 0;
 
     self = self;
-    if(!PyArg_ParseTuple(args,"s:wxImageList_RemoveAll",&_argc0)) 
+    if(!PyArg_ParseTuple(args,"s:wxImageList_GetImageCount",&_argc0)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_RemoveAll. Expected _wxImageList_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_GetImageCount. Expected _wxImageList_p.");
         return NULL;
         }
     }
-    _result = (bool )wxImageList_RemoveAll(_arg0);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (int )wxImageList_GetImageCount(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
-#define wxImageList_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2))
-static PyObject *_wrap_wxImageList_Replace(PyObject *self, PyObject *args) {
+#define wxImageList_Remove(_swigobj,_swigarg0)  (_swigobj->Remove(_swigarg0))
+static PyObject *_wrap_wxImageList_Remove(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
     bool  _result;
     wxImageList * _arg0;
     int  _arg1;
-    wxBitmap * _arg2;
-    wxBitmap * _arg3 = &wxNullBitmap;
     char * _argc0 = 0;
-    char * _argc2 = 0;
-    char * _argc3 = 0;
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sis|s:wxImageList_Replace",&_argc0,&_arg1,&_argc2,&_argc3)) 
+    if(!PyArg_ParseTuple(args,"si:wxImageList_Remove",&_argc0,&_arg1)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Replace. Expected _wxImageList_p.");
-        return NULL;
-        }
-    }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Replace. Expected _wxBitmap_p.");
-        return NULL;
-        }
-    }
-    if (_argc3) {
-        if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxBitmap_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxImageList_Replace. Expected _wxBitmap_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Remove. Expected _wxImageList_p.");
         return NULL;
         }
     }
-    _result = (bool )wxImageList_Replace(_arg0,_arg1,*_arg2,*_arg3);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxImageList_Remove(_arg0,_arg1);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
-#define wxImageList_ReplaceIcon(_swigobj,_swigarg0,_swigarg1)  (_swigobj->Replace(_swigarg0,_swigarg1))
-static PyObject *_wrap_wxImageList_ReplaceIcon(PyObject *self, PyObject *args) {
+#define wxImageList_RemoveAll(_swigobj)  (_swigobj->RemoveAll())
+static PyObject *_wrap_wxImageList_RemoveAll(PyObject *self, PyObject *args) {
     PyObject * _resultobj;
     bool  _result;
     wxImageList * _arg0;
-    int  _arg1;
-    wxIcon * _arg2;
     char * _argc0 = 0;
-    char * _argc2 = 0;
 
     self = self;
-    if(!PyArg_ParseTuple(args,"sis:wxImageList_ReplaceIcon",&_argc0,&_arg1,&_argc2)) 
+    if(!PyArg_ParseTuple(args,"s:wxImageList_RemoveAll",&_argc0)) 
         return NULL;
     if (_argc0) {
         if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_ReplaceIcon. Expected _wxImageList_p.");
-        return NULL;
-        }
-    }
-    if (_argc2) {
-        if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxIcon_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_ReplaceIcon. Expected _wxIcon_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_RemoveAll. Expected _wxImageList_p.");
         return NULL;
         }
     }
-    _result = (bool )wxImageList_ReplaceIcon(_arg0,_arg1,*_arg2);
-    _resultobj = Py_BuildValue("i",_result);
+{
+    wxPy_BEGIN_ALLOW_THREADS;
+        _result = (bool )wxImageList_RemoveAll(_arg0);
+
+    wxPy_END_ALLOW_THREADS;
+}    _resultobj = Py_BuildValue("i",_result);
     return _resultobj;
 }
 
 static PyMethodDef gdicMethods[] = {
-        { "wxImageList_ReplaceIcon", _wrap_wxImageList_ReplaceIcon, 1 },
-        { "wxImageList_Replace", _wrap_wxImageList_Replace, 1 },
         { "wxImageList_RemoveAll", _wrap_wxImageList_RemoveAll, 1 },
         { "wxImageList_Remove", _wrap_wxImageList_Remove, 1 },
         { "wxImageList_GetImageCount", _wrap_wxImageList_GetImageCount, 1 },
         { "wxImageList_Draw", _wrap_wxImageList_Draw, 1 },
+        { "wxImageList_ReplaceIcon", _wrap_wxImageList_ReplaceIcon, 1 },
+        { "wxImageList_Replace", _wrap_wxImageList_Replace, 1 },
         { "wxImageList_AddIcon", _wrap_wxImageList_AddIcon, 1 },
         { "wxImageList_AddWithColourMask", _wrap_wxImageList_AddWithColourMask, 1 },
         { "wxImageList_Add", _wrap_wxImageList_Add, 1 },
@@ -5581,6 +6378,7 @@ static PyMethodDef gdicMethods[] = {
         { "wxDC_GetTextExtent", _wrap_wxDC_GetTextExtent, 1 },
         { "wxDC_GetTextBackground", _wrap_wxDC_GetTextBackground, 1 },
         { "wxDC_GetSize", _wrap_wxDC_GetSize, 1 },
+        { "wxDC_GetSizeTuple", _wrap_wxDC_GetSizeTuple, 1 },
         { "wxDC_GetPixel", _wrap_wxDC_GetPixel, 1 },
         { "wxDC_GetPen", _wrap_wxDC_GetPen, 1 },
         { "wxDC_GetOptimization", _wrap_wxDC_GetOptimization, 1 },
@@ -5607,6 +6405,7 @@ static PyMethodDef gdicMethods[] = {
         { "wxDC_DrawIcon", _wrap_wxDC_DrawIcon, 1 },
         { "wxDC_DrawEllipticArc", _wrap_wxDC_DrawEllipticArc, 1 },
         { "wxDC_DrawEllipse", _wrap_wxDC_DrawEllipse, 1 },
+        { "wxDC_DrawCircle", _wrap_wxDC_DrawCircle, 1 },
         { "wxDC_DrawArc", _wrap_wxDC_DrawArc, 1 },
         { "wxDC_DeviceToLogicalYRel", _wrap_wxDC_DeviceToLogicalYRel, 1 },
         { "wxDC_DeviceToLogicalY", _wrap_wxDC_DeviceToLogicalY, 1 },
@@ -5768,6 +6567,13 @@ SWIGEXPORT(void,initgdic)() {
  */
         SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0);
         SWIG_RegisterMapping("_signed_long","_long",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_int",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_signed_int",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_unsigned_int",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_wxWindowID",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_uint",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_EBool",0);
+        SWIG_RegisterMapping("_wxPrintQuality","_size_t",0);
         SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0);
         SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0);
         SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0);
@@ -5795,12 +6601,19 @@ SWIGEXPORT(void,initgdic)() {
         SWIG_RegisterMapping("_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC);
         SWIG_RegisterMapping("_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC);
         SWIG_RegisterMapping("_wxDC","_class_wxDC",0);
+        SWIG_RegisterMapping("_size_t","_wxPrintQuality",0);
+        SWIG_RegisterMapping("_size_t","_unsigned_int",0);
+        SWIG_RegisterMapping("_size_t","_int",0);
+        SWIG_RegisterMapping("_size_t","_wxWindowID",0);
+        SWIG_RegisterMapping("_size_t","_uint",0);
         SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0);
         SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0);
         SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0);
         SWIG_RegisterMapping("_class_wxMask","_wxMask",0);
         SWIG_RegisterMapping("_wxColour","_class_wxColour",0);
         SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0);
+        SWIG_RegisterMapping("_uint","_wxPrintQuality",0);
+        SWIG_RegisterMapping("_uint","_size_t",0);
         SWIG_RegisterMapping("_uint","_unsigned_int",0);
         SWIG_RegisterMapping("_uint","_int",0);
         SWIG_RegisterMapping("_uint","_wxWindowID",0);
@@ -5814,6 +6627,7 @@ SWIGEXPORT(void,initgdic)() {
         SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0);
         SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0);
         SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0);
+        SWIG_RegisterMapping("_EBool","_wxPrintQuality",0);
         SWIG_RegisterMapping("_EBool","_signed_int",0);
         SWIG_RegisterMapping("_EBool","_int",0);
         SWIG_RegisterMapping("_EBool","_wxWindowID",0);
@@ -5839,6 +6653,7 @@ SWIGEXPORT(void,initgdic)() {
         SWIG_RegisterMapping("_class_wxDC","_wxDC",0);
         SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0);
         SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0);
+        SWIG_RegisterMapping("_signed_int","_wxPrintQuality",0);
         SWIG_RegisterMapping("_signed_int","_EBool",0);
         SWIG_RegisterMapping("_signed_int","_wxWindowID",0);
         SWIG_RegisterMapping("_signed_int","_int",0);
@@ -5864,6 +6679,8 @@ SWIGEXPORT(void,initgdic)() {
         SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0);
         SWIG_RegisterMapping("_unsigned_char","_byte",0);
         SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0);
+        SWIG_RegisterMapping("_unsigned_int","_wxPrintQuality",0);
+        SWIG_RegisterMapping("_unsigned_int","_size_t",0);
         SWIG_RegisterMapping("_unsigned_int","_uint",0);
         SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0);
         SWIG_RegisterMapping("_unsigned_int","_int",0);
@@ -5873,11 +6690,15 @@ SWIGEXPORT(void,initgdic)() {
         SWIG_RegisterMapping("_short","_unsigned_short",0);
         SWIG_RegisterMapping("_short","_signed_short",0);
         SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0);
+        SWIG_RegisterMapping("_wxWindowID","_wxPrintQuality",0);
+        SWIG_RegisterMapping("_wxWindowID","_size_t",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","_wxPrintQuality",0);
+        SWIG_RegisterMapping("_int","_size_t",0);
         SWIG_RegisterMapping("_int","_EBool",0);
         SWIG_RegisterMapping("_int","_uint",0);
         SWIG_RegisterMapping("_int","_wxWindowID",0);