]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/msw/_misc_wrap.cpp
'[1219035] cleanup: miscellaneous' and minor source cleaning.
[wxWidgets.git] / wxPython / src / msw / _misc_wrap.cpp
index 4dfe42e4c359b077acdeef2a3b57207fa5288cbf..e6fe38300b0cc707fd9b614d010fc2259c5d2484 100644 (file)
@@ -1037,7 +1037,8 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
          PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
                       type, otype);
        }
-       Py_DECREF(str);
+       if (str)
+          Py_DECREF(str);
        return;
       }
     }   
@@ -1356,86 +1357,88 @@ SWIG_Python_GetTypeList() {
 #define  SWIGTYPE_p_wxCaret swig_types[15] 
 #define  SWIGTYPE_ptrdiff_t swig_types[16] 
 #define  SWIGTYPE_std__ptrdiff_t swig_types[17] 
-#define  SWIGTYPE_p_int swig_types[18] 
-#define  SWIGTYPE_p_wxSize swig_types[19] 
-#define  SWIGTYPE_p_wxClipboard swig_types[20] 
-#define  SWIGTYPE_p_wxStopWatch swig_types[21] 
-#define  SWIGTYPE_p_wxDC swig_types[22] 
-#define  SWIGTYPE_p_wxClipboardLocker swig_types[23] 
-#define  SWIGTYPE_p_wxIcon swig_types[24] 
-#define  SWIGTYPE_p_wxLogStderr swig_types[25] 
-#define  SWIGTYPE_p_wxLogTextCtrl swig_types[26] 
-#define  SWIGTYPE_p_wxTextCtrl swig_types[27] 
-#define  SWIGTYPE_p_wxBusyCursor swig_types[28] 
-#define  SWIGTYPE_p_wxBitmapDataObject swig_types[29] 
-#define  SWIGTYPE_p_wxTextDataObject swig_types[30] 
-#define  SWIGTYPE_p_wxDataObject swig_types[31] 
-#define  SWIGTYPE_p_wxPyTextDataObject swig_types[32] 
-#define  SWIGTYPE_p_wxPyBitmapDataObject swig_types[33] 
-#define  SWIGTYPE_p_wxFileDataObject swig_types[34] 
-#define  SWIGTYPE_p_wxCustomDataObject swig_types[35] 
-#define  SWIGTYPE_p_wxURLDataObject swig_types[36] 
-#define  SWIGTYPE_p_wxMetafileDataObject swig_types[37] 
-#define  SWIGTYPE_p_wxSound swig_types[38] 
-#define  SWIGTYPE_p_wxTimerRunner swig_types[39] 
-#define  SWIGTYPE_p_wxLogWindow swig_types[40] 
-#define  SWIGTYPE_p_wxTimeSpan swig_types[41] 
-#define  SWIGTYPE_p_wxArrayString swig_types[42] 
-#define  SWIGTYPE_p_wxWindowDisabler swig_types[43] 
-#define  SWIGTYPE_p_form_ops_t swig_types[44] 
-#define  SWIGTYPE_p_wxToolTip swig_types[45] 
-#define  SWIGTYPE_p_wxDataObjectComposite swig_types[46] 
-#define  SWIGTYPE_p_wxSystemSettings swig_types[47] 
-#define  SWIGTYPE_p_wxFileConfig swig_types[48] 
-#define  SWIGTYPE_p_wxVideoMode swig_types[49] 
-#define  SWIGTYPE_p_wxDataObjectSimple swig_types[50] 
-#define  SWIGTYPE_p_wxPyDataObjectSimple swig_types[51] 
-#define  SWIGTYPE_p_wxDuplexMode swig_types[52] 
-#define  SWIGTYPE_p_wxEvtHandler swig_types[53] 
-#define  SWIGTYPE_p_wxRect swig_types[54] 
-#define  SWIGTYPE_p_char swig_types[55] 
-#define  SWIGTYPE_p_wxSingleInstanceChecker swig_types[56] 
-#define  SWIGTYPE_p_wxStandardPaths swig_types[57] 
-#define  SWIGTYPE_p_wxFileTypeInfo swig_types[58] 
-#define  SWIGTYPE_p_wxFrame swig_types[59] 
-#define  SWIGTYPE_p_wxTimer swig_types[60] 
-#define  SWIGTYPE_p_wxPaperSize swig_types[61] 
-#define  SWIGTYPE_p_wxMimeTypesManager swig_types[62] 
-#define  SWIGTYPE_p_wxPyArtProvider swig_types[63] 
-#define  SWIGTYPE_p_wxPyTipProvider swig_types[64] 
-#define  SWIGTYPE_p_wxTipProvider swig_types[65] 
-#define  SWIGTYPE_p_wxJoystick swig_types[66] 
-#define  SWIGTYPE_p_wxSystemOptions swig_types[67] 
-#define  SWIGTYPE_p_wxPoint swig_types[68] 
-#define  SWIGTYPE_p_wxJoystickEvent swig_types[69] 
-#define  SWIGTYPE_p_wxCursor swig_types[70] 
-#define  SWIGTYPE_p_wxObject swig_types[71] 
-#define  SWIGTYPE_p_wxOutputStream swig_types[72] 
-#define  SWIGTYPE_p_wxDateTime swig_types[73] 
-#define  SWIGTYPE_p_wxPyDropSource swig_types[74] 
-#define  SWIGTYPE_p_unsigned_long swig_types[75] 
-#define  SWIGTYPE_p_wxKillError swig_types[76] 
-#define  SWIGTYPE_p_wxWindow swig_types[77] 
-#define  SWIGTYPE_p_wxString swig_types[78] 
-#define  SWIGTYPE_p_wxPyProcess swig_types[79] 
-#define  SWIGTYPE_p_wxBitmap swig_types[80] 
-#define  SWIGTYPE_p_wxConfig swig_types[81] 
-#define  SWIGTYPE_unsigned_int swig_types[82] 
-#define  SWIGTYPE_p_unsigned_int swig_types[83] 
-#define  SWIGTYPE_p_unsigned_char swig_types[84] 
-#define  SWIGTYPE_p_wxChar swig_types[85] 
-#define  SWIGTYPE_p_wxBusyInfo swig_types[86] 
-#define  SWIGTYPE_p_wxPyDropTarget swig_types[87] 
-#define  SWIGTYPE_p_wxPyTextDropTarget swig_types[88] 
-#define  SWIGTYPE_p_wxPyFileDropTarget swig_types[89] 
-#define  SWIGTYPE_p_wxProcessEvent swig_types[90] 
-#define  SWIGTYPE_p_wxPyLog swig_types[91] 
-#define  SWIGTYPE_p_wxLogNull swig_types[92] 
-#define  SWIGTYPE_p_wxColour swig_types[93] 
-#define  SWIGTYPE_p_wxPyTimer swig_types[94] 
-#define  SWIGTYPE_p_wxConfigPathChanger swig_types[95] 
-#define  SWIGTYPE_p_wxDateSpan swig_types[96] 
-static swig_type_info *swig_types[98];
+#define  SWIGTYPE_p_void swig_types[18] 
+#define  SWIGTYPE_p_int swig_types[19] 
+#define  SWIGTYPE_p_wxSize swig_types[20] 
+#define  SWIGTYPE_p_wxClipboard swig_types[21] 
+#define  SWIGTYPE_p_wxStopWatch swig_types[22] 
+#define  SWIGTYPE_p_wxDC swig_types[23] 
+#define  SWIGTYPE_p_wxClipboardLocker swig_types[24] 
+#define  SWIGTYPE_p_wxIcon swig_types[25] 
+#define  SWIGTYPE_p_wxLogStderr swig_types[26] 
+#define  SWIGTYPE_p_wxLogTextCtrl swig_types[27] 
+#define  SWIGTYPE_p_wxTextCtrl swig_types[28] 
+#define  SWIGTYPE_p_wxBusyCursor swig_types[29] 
+#define  SWIGTYPE_p_wxBitmapDataObject swig_types[30] 
+#define  SWIGTYPE_p_wxTextDataObject swig_types[31] 
+#define  SWIGTYPE_p_wxDataObject swig_types[32] 
+#define  SWIGTYPE_p_wxPyTextDataObject swig_types[33] 
+#define  SWIGTYPE_p_wxPyBitmapDataObject swig_types[34] 
+#define  SWIGTYPE_p_wxFileDataObject swig_types[35] 
+#define  SWIGTYPE_p_wxCustomDataObject swig_types[36] 
+#define  SWIGTYPE_p_wxURLDataObject swig_types[37] 
+#define  SWIGTYPE_p_wxMetafileDataObject swig_types[38] 
+#define  SWIGTYPE_p_wxSound swig_types[39] 
+#define  SWIGTYPE_p_wxTimerRunner swig_types[40] 
+#define  SWIGTYPE_p_wxLogWindow swig_types[41] 
+#define  SWIGTYPE_p_wxTimeSpan swig_types[42] 
+#define  SWIGTYPE_p_wxArrayString swig_types[43] 
+#define  SWIGTYPE_p_wxWindowDisabler swig_types[44] 
+#define  SWIGTYPE_p_form_ops_t swig_types[45] 
+#define  SWIGTYPE_p_wxToolTip swig_types[46] 
+#define  SWIGTYPE_p_wxDataObjectComposite swig_types[47] 
+#define  SWIGTYPE_p_wxSystemSettings swig_types[48] 
+#define  SWIGTYPE_p_wxFileConfig swig_types[49] 
+#define  SWIGTYPE_p_wxVideoMode swig_types[50] 
+#define  SWIGTYPE_p_wxDataObjectSimple swig_types[51] 
+#define  SWIGTYPE_p_wxPyDataObjectSimple swig_types[52] 
+#define  SWIGTYPE_p_wxDuplexMode swig_types[53] 
+#define  SWIGTYPE_p_wxEvtHandler swig_types[54] 
+#define  SWIGTYPE_p_wxRect swig_types[55] 
+#define  SWIGTYPE_p_char swig_types[56] 
+#define  SWIGTYPE_p_wxSingleInstanceChecker swig_types[57] 
+#define  SWIGTYPE_p_wxStandardPaths swig_types[58] 
+#define  SWIGTYPE_p_wxFileTypeInfo swig_types[59] 
+#define  SWIGTYPE_p_wxFrame swig_types[60] 
+#define  SWIGTYPE_p_wxTimer swig_types[61] 
+#define  SWIGTYPE_p_wxPaperSize swig_types[62] 
+#define  SWIGTYPE_p_wxMimeTypesManager swig_types[63] 
+#define  SWIGTYPE_p_wxPyArtProvider swig_types[64] 
+#define  SWIGTYPE_p_wxPyTipProvider swig_types[65] 
+#define  SWIGTYPE_p_wxTipProvider swig_types[66] 
+#define  SWIGTYPE_p_wxJoystick swig_types[67] 
+#define  SWIGTYPE_p_wxSystemOptions swig_types[68] 
+#define  SWIGTYPE_p_wxPoint swig_types[69] 
+#define  SWIGTYPE_p_wxJoystickEvent swig_types[70] 
+#define  SWIGTYPE_p_wxCursor swig_types[71] 
+#define  SWIGTYPE_p_wxObject swig_types[72] 
+#define  SWIGTYPE_p_wxOutputStream swig_types[73] 
+#define  SWIGTYPE_p_wxDateTime swig_types[74] 
+#define  SWIGTYPE_p_wxPyDropSource swig_types[75] 
+#define  SWIGTYPE_p_unsigned_long swig_types[76] 
+#define  SWIGTYPE_p_wxLogBuffer swig_types[77] 
+#define  SWIGTYPE_p_wxKillError swig_types[78] 
+#define  SWIGTYPE_p_wxWindow swig_types[79] 
+#define  SWIGTYPE_p_wxString swig_types[80] 
+#define  SWIGTYPE_p_wxPyProcess swig_types[81] 
+#define  SWIGTYPE_p_wxBitmap swig_types[82] 
+#define  SWIGTYPE_unsigned_int swig_types[83] 
+#define  SWIGTYPE_p_unsigned_int swig_types[84] 
+#define  SWIGTYPE_p_wxConfig swig_types[85] 
+#define  SWIGTYPE_p_unsigned_char swig_types[86] 
+#define  SWIGTYPE_p_wxChar swig_types[87] 
+#define  SWIGTYPE_p_wxBusyInfo swig_types[88] 
+#define  SWIGTYPE_p_wxPyDropTarget swig_types[89] 
+#define  SWIGTYPE_p_wxPyTextDropTarget swig_types[90] 
+#define  SWIGTYPE_p_wxPyFileDropTarget swig_types[91] 
+#define  SWIGTYPE_p_wxProcessEvent swig_types[92] 
+#define  SWIGTYPE_p_wxPyLog swig_types[93] 
+#define  SWIGTYPE_p_wxLogNull swig_types[94] 
+#define  SWIGTYPE_p_wxColour swig_types[95] 
+#define  SWIGTYPE_p_wxPyTimer swig_types[96] 
+#define  SWIGTYPE_p_wxConfigPathChanger swig_types[97] 
+#define  SWIGTYPE_p_wxDateSpan swig_types[98] 
+static swig_type_info *swig_types[100];
 
 /* -------- TYPES TABLE (END) -------- */
 
@@ -1701,6 +1704,16 @@ SWIGINTERNSHORT PyObject*
 }
 
 
+    void* wxGetXDisplay()
+    {
+#ifdef __WXGTK__
+        return wxGetDisplay();
+#else
+        return NULL;
+#endif
+    }
+
+
     bool wxThread_IsMain() {
 #ifdef WXP_WITH_THREAD
         return wxThread::IsMain();
@@ -1841,7 +1854,7 @@ wxPyTimer::wxPyTimer(wxEvtHandler *owner, int id)
 
 void wxPyTimer::Notify() {
     bool found;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if ((found = wxPyCBH_findCallback(m_myInst, "Notify")))
         wxPyCBH_callCallback(m_myInst, Py_BuildValue("()"));
     wxPyEndBlockThreads(blocked);
@@ -2047,7 +2060,7 @@ public:
 
     virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) {
         bool found;
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) {
             PyObject* s = wx2PyString(szString);
             wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, s, t));
@@ -2060,7 +2073,7 @@ public:
 
     virtual void DoLogString(const wxChar *szString, time_t t) {
         bool found;
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) {
             PyObject* s = wx2PyString(szString);
             wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", s, t));
@@ -2088,7 +2101,7 @@ IMP_PYCALLBACK_VOID_INTINT( wxPyProcess, wxProcess, OnTerminate);
 class wxJoystick : public wxObject {
 public:
     wxJoystick(int joystick = wxJOYSTICK1) {
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         PyErr_SetString(PyExc_NotImplementedError,
                         "wxJoystick is not available on this platform.");
         wxPyEndBlockThreads(blocked);
@@ -2151,19 +2164,19 @@ class wxSound : public wxObject
 {
 public:
     wxSound() {
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         PyErr_SetString(PyExc_NotImplementedError,
                         "wxSound is not available on this platform.");
         wxPyEndBlockThreads(blocked);
     }
     wxSound(const wxString&/*, bool*/) {
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         PyErr_SetString(PyExc_NotImplementedError,
                         "wxSound is not available on this platform.");
         wxPyEndBlockThreads(blocked);
     }
     wxSound(int, const wxByte*) {
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         PyErr_SetString(PyExc_NotImplementedError,
                         "wxSound is not available on this platform.");
         wxPyEndBlockThreads(blocked);
@@ -2191,7 +2204,7 @@ static wxSound *new_wxSound(PyObject *data){
             unsigned char* buffer; int size;
             wxSound *sound = NULL;
 
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (!PyArg_Parse(data, "t#", &buffer, &size))
                 goto done;
             sound = new wxSound(size, buffer);
@@ -2205,7 +2218,7 @@ static bool wxSound_CreateFromData(wxSound *self,PyObject *data){
             int size;
             bool rv = false;
 
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (!PyArg_Parse(data, "t#", &buffer, &size))
                 goto done;
             rv = self->Create(size, buffer);
@@ -2213,7 +2226,7 @@ static bool wxSound_CreateFromData(wxSound *self,PyObject *data){
             wxPyEndBlockThreads(blocked);
             return rv;
         #else
-                 bool blocked = wxPyBeginBlockThreads();
+                 wxPyBlock_t blocked = wxPyBeginBlockThreads();
                  PyErr_SetString(PyExc_NotImplementedError,
                                  "Create from data is not available on this platform.");
                  wxPyEndBlockThreads(blocked);
@@ -2260,7 +2273,7 @@ static PyObject *wxFileType_GetIconInfo(wxFileType *self){
                 iconIndex = loc.GetIndex();
 
                 // Make a tuple and put the values in it
-                bool blocked = wxPyBeginBlockThreads();
+                wxPyBlock_t blocked = wxPyBeginBlockThreads();
                 PyObject* tuple = PyTuple_New(3);
                 PyTuple_SetItem(tuple, 0, wxPyConstructObject(new wxIcon(loc),
                                                               wxT("wxIcon"), true));
@@ -2298,7 +2311,7 @@ static PyObject *wxFileType_GetAllCommands(wxFileType *self,wxString const &file
             wxArrayString commands;
             if (self->GetAllCommands(&verbs, &commands,
                                      wxFileType::MessageParameters(filename, mimetype))) {
-                bool blocked = wxPyBeginBlockThreads();
+                wxPyBlock_t blocked = wxPyBeginBlockThreads();
                 PyObject* tuple = PyTuple_New(2);
                 PyTuple_SetItem(tuple, 0, wxArrayString2PyList_helper(verbs));
                 PyTuple_SetItem(tuple, 1, wxArrayString2PyList_helper(commands));
@@ -2370,6 +2383,7 @@ static PyObject *wxMimeTypesManager_EnumAllFileTypes(wxMimeTypesManager *self){
  static const wxString wxPyART_CUT(wxART_CUT); 
  static const wxString wxPyART_PASTE(wxART_PASTE); 
  static const wxString wxPyART_DELETE(wxART_DELETE); 
+ static const wxString wxPyART_NEW(wxART_NEW); 
  static const wxString wxPyART_UNDO(wxART_UNDO); 
  static const wxString wxPyART_REDO(wxART_REDO); 
  static const wxString wxPyART_QUIT(wxART_QUIT); 
@@ -2383,7 +2397,7 @@ public:
                                   const wxArtClient& client,
                                   const wxSize& size) {
         wxBitmap rval = wxNullBitmap;
-        bool blocked = wxPyBeginBlockThreads();
+        wxPyBlock_t blocked = wxPyBeginBlockThreads();
         if ((wxPyCBH_findCallback(m_myInst, "CreateBitmap"))) {
             PyObject* so = wxPyConstructObject((void*)&size, wxT("wxSize"), 0);
             PyObject* ro;
@@ -2519,7 +2533,7 @@ static PyObject *DateTime_GetAmPmStrings(){
             wxString am;
             wxString pm;
             wxDateTime::GetAmPmStrings(&am, &pm);
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             PyObject* tup = PyTuple_New(2);
             PyTuple_SET_ITEM(tup, 0, wx2PyString(am));
             PyTuple_SET_ITEM(tup, 1, wx2PyString(pm));
@@ -2625,7 +2639,7 @@ static PyObject *wxDataObject_GetAllFormats(wxDataObject *self,wxDataObject::Dir
             wxDataFormat* formats = new wxDataFormat[count];
             self->GetAllFormats(formats, dir);
 
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             PyObject* list = PyList_New(count);
             for (size_t i=0; i<count; i++) {
                 wxDataFormat* format = new wxDataFormat(formats[i]);
@@ -2640,7 +2654,7 @@ static PyObject *wxDataObject_GetAllFormats(wxDataObject *self,wxDataObject::Dir
 static PyObject *wxDataObject_GetDataHere(wxDataObject *self,wxDataFormat const &format){
             PyObject* rval = NULL;
             size_t size = self->GetDataSize(format);            
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (size) {
                 char* buf = new char[size];
                 if (self->GetDataHere(format, buf)) 
@@ -2656,7 +2670,7 @@ static PyObject *wxDataObject_GetDataHere(wxDataObject *self,wxDataFormat const
         }
 static bool wxDataObject_SetData(wxDataObject *self,wxDataFormat const &format,PyObject *data){
             bool rval;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (PyString_Check(data)) {
                 rval = self->SetData(format, PyString_Size(data), PyString_AsString(data));
             }
@@ -2671,7 +2685,7 @@ static bool wxDataObject_SetData(wxDataObject *self,wxDataFormat const &format,P
 static PyObject *wxDataObjectSimple_GetDataHere(wxDataObjectSimple *self){
             PyObject* rval = NULL;
             size_t size = self->GetDataSize();            
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (size) {
                 char* buf = new char[size];
                 if (self->GetDataHere(buf)) 
@@ -2687,7 +2701,7 @@ static PyObject *wxDataObjectSimple_GetDataHere(wxDataObjectSimple *self){
         }
 static bool wxDataObjectSimple_SetData(wxDataObjectSimple *self,PyObject *data){
             bool rval;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (PyString_Check(data)) {
                 rval = self->SetData(PyString_Size(data), PyString_AsString(data));
             }
@@ -2720,7 +2734,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) const {
     // C++ version.
 
     bool rval = false;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if (wxPyCBH_findCallback(m_myInst, "GetDataHere")) {
         PyObject* ro;
         ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
@@ -2739,7 +2753,7 @@ bool wxPyDataObjectSimple::SetData(size_t len, const void *buf) const{
     // For this one we simply need to make a string from buf and len
     // and send it to the Python method.
     bool rval = false;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if (wxPyCBH_findCallback(m_myInst, "SetData")) {
         PyObject* data = PyString_FromStringAndSize((char*)buf, len);
         rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", data));
@@ -2779,7 +2793,7 @@ public:
 
 wxBitmap wxPyBitmapDataObject::GetBitmap() const {
     wxBitmap* rval = &wxNullBitmap;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if (wxPyCBH_findCallback(m_myInst, "GetBitmap")) {
         PyObject* ro;
         wxBitmap* ptr;
@@ -2795,7 +2809,7 @@ wxBitmap wxPyBitmapDataObject::GetBitmap() const {
 }
  
 void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) {
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if (wxPyCBH_findCallback(m_myInst, "SetBitmap")) {
         PyObject* bo = wxPyConstructObject((void*)&bitmap, wxT("wxBitmap"), false);
         wxPyCBH_callCallback(m_myInst, Py_BuildValue("(O)", bo));
@@ -2809,7 +2823,7 @@ static wxCustomDataObject *new_wxCustomDataObject__SWIG_1(wxString const &format
         }
 static bool wxCustomDataObject_SetData(wxCustomDataObject *self,PyObject *data){
             bool rval;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             if (PyString_Check(data)) {
                 rval = self->SetData(PyString_Size(data), PyString_AsString(data));
             }
@@ -2823,7 +2837,7 @@ static bool wxCustomDataObject_SetData(wxCustomDataObject *self,PyObject *data){
         }
 static PyObject *wxCustomDataObject_GetData(wxCustomDataObject *self){
             PyObject* obj;
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             obj = PyString_FromStringAndSize((char*)self->GetData(), self->GetSize());
             wxPyEndBlockThreads(blocked);
             return obj;
@@ -2884,7 +2898,7 @@ public:
 bool wxPyFileDropTarget::OnDropFiles(wxCoord x, wxCoord y,
                                      const wxArrayString& filenames) {
     bool rval = false;
-    bool blocked = wxPyBeginBlockThreads();
+    wxPyBlock_t blocked = wxPyBeginBlockThreads();
     if (wxPyCBH_findCallback(m_myInst, "OnDropFiles")) {
         PyObject* list = wxArrayString2PyList_helper(filenames);
         rval = wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iiO)",x,y,list));
@@ -2957,7 +2971,7 @@ public:
 static PyObject *wxDisplay_GetModes(wxDisplay *self,wxVideoMode const &mode=wxDefaultVideoMode){
             PyObject* pyList = NULL;
             wxArrayVideoModes arr = self->GetModes(mode);
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             pyList = PyList_New(0);
             for (int i=0; i < arr.GetCount(); i++) {
                 wxVideoMode* m = new wxVideoMode(arr.Item(i));
@@ -3048,21 +3062,27 @@ static PyObject *_wrap_SystemSettings_GetFont(PyObject *, PyObject *args, PyObje
 static PyObject *_wrap_SystemSettings_GetMetric(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxSystemMetric arg1 ;
+    wxWindow *arg2 = (wxWindow *) NULL ;
     int result;
     PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
     char *kwnames[] = {
-        (char *) "index", NULL 
+        (char *) "index",(char *) "win", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SystemSettings_GetMetric",kwnames,&obj0)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|O:SystemSettings_GetMetric",kwnames,&obj0,&obj1)) goto fail;
     {
         arg1 = (wxSystemMetric)(SWIG_As_int(obj0)); 
         if (SWIG_arg_fail(1)) SWIG_fail;
     }
+    if (obj1) {
+        SWIG_Python_ConvertPtr(obj1, (void **)&arg2, SWIGTYPE_p_wxWindow, SWIG_POINTER_EXCEPTION | 0);
+        if (SWIG_arg_fail(2)) SWIG_fail;
+    }
     {
         if (!wxPyCheckForApp()) SWIG_fail;
         PyThreadState* __tstate = wxPyBeginAllowThreads();
-        result = (int)wxSystemSettings::GetMetric((wxSystemMetric )arg1);
+        result = (int)wxSystemSettings::GetMetric((wxSystemMetric )arg1,arg2);
         
         wxPyEndAllowThreads(__tstate);
         if (PyErr_Occurred()) SWIG_fail;
@@ -3427,6 +3447,46 @@ static PyObject *_wrap_SystemOptions_HasOption(PyObject *, PyObject *args, PyObj
 }
 
 
+static PyObject *_wrap_SystemOptions_IsFalse(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxString *arg1 = 0 ;
+    bool result;
+    bool temp1 = false ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "name", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SystemOptions_IsFalse",kwnames,&obj0)) goto fail;
+    {
+        arg1 = wxString_in_helper(obj0);
+        if (arg1 == NULL) SWIG_fail;
+        temp1 = true;
+    }
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)wxSystemOptions::IsFalse((wxString const &)*arg1);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    {
+        if (temp1)
+        delete arg1;
+    }
+    return resultobj;
+    fail:
+    {
+        if (temp1)
+        delete arg1;
+    }
+    return NULL;
+}
+
+
 static PyObject * SystemOptions_swigregister(PyObject *, PyObject *args) {
     PyObject *obj;
     if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
@@ -5814,6 +5874,29 @@ static PyObject *_wrap_SetCursor(PyObject *, PyObject *args, PyObject *kwargs) {
 }
 
 
+static PyObject *_wrap_GetXDisplay(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    void *result;
+    char *kwnames[] = {
+        NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)":GetXDisplay",kwnames)) goto fail;
+    {
+        if (!wxPyCheckForApp()) SWIG_fail;
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (void *)wxGetXDisplay();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_void, 0);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_BeginBusyCursor(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxCursor *arg1 = (wxCursor *) wxHOURGLASS_CURSOR ;
@@ -5960,6 +6043,46 @@ static PyObject *_wrap_GetTopLevelParent(PyObject *, PyObject *args, PyObject *k
 }
 
 
+static PyObject *_wrap_LaunchDefaultBrowser(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxString *arg1 = 0 ;
+    bool result;
+    bool temp1 = false ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "url", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:LaunchDefaultBrowser",kwnames,&obj0)) goto fail;
+    {
+        arg1 = wxString_in_helper(obj0);
+        if (arg1 == NULL) SWIG_fail;
+        temp1 = true;
+    }
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)wxLaunchDefaultBrowser((wxString const &)*arg1);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    {
+        if (temp1)
+        delete arg1;
+    }
+    return resultobj;
+    fail:
+    {
+        if (temp1)
+        delete arg1;
+    }
+    return NULL;
+}
+
+
 static PyObject *_wrap_GetKeyState(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxKeyCode arg1 ;
@@ -9912,6 +10035,95 @@ static PyObject * LogChain_swigregister(PyObject *, PyObject *args) {
     Py_INCREF(obj);
     return Py_BuildValue((char *)"");
 }
+static PyObject *_wrap_new_LogBuffer(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxLogBuffer *result;
+    char *kwnames[] = {
+        NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)":new_LogBuffer",kwnames)) goto fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (wxLogBuffer *)new wxLogBuffer();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxLogBuffer, 1);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_LogBuffer_GetBuffer(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxLogBuffer *arg1 = (wxLogBuffer *) 0 ;
+    wxString *result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:LogBuffer_GetBuffer",kwnames,&obj0)) goto fail;
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_wxLogBuffer, SWIG_POINTER_EXCEPTION | 0);
+    if (SWIG_arg_fail(1)) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        {
+            wxString const &_result_ref = ((wxLogBuffer const *)arg1)->GetBuffer();
+            result = (wxString *) &_result_ref;
+        }
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+#if wxUSE_UNICODE
+        resultobj = PyUnicode_FromWideChar(result->c_str(), result->Len());
+#else
+        resultobj = PyString_FromStringAndSize(result->c_str(), result->Len());
+#endif
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_LogBuffer_Flush(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxLogBuffer *arg1 = (wxLogBuffer *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:LogBuffer_Flush",kwnames,&obj0)) goto fail;
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_wxLogBuffer, SWIG_POINTER_EXCEPTION | 0);
+    if (SWIG_arg_fail(1)) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->Flush();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject * LogBuffer_swigregister(PyObject *, PyObject *args) {
+    PyObject *obj;
+    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
+    SWIG_TypeClientData(SWIGTYPE_p_wxLogBuffer, obj);
+    Py_INCREF(obj);
+    return Py_BuildValue((char *)"");
+}
 static PyObject *_wrap_SysErrorCode(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     unsigned long result;
@@ -13744,15 +13956,11 @@ static PyObject *_wrap_new_FileTypeInfoSequence(PyObject *, PyObject *args, PyOb
         int i, len=PySequence_Length(obj0);
         for (i=0; i<len; i++) {
             PyObject* item = PySequence_GetItem(obj0, i);
-#if wxUSE_UNICODE
-            PyObject* str  = PyObject_Unicode(item);
-#else
-            PyObject* str  = PyObject_Str(item);
-#endif
+            wxString* s = wxString_in_helper(item);
             if (PyErr_Occurred())  SWIG_fail;
-            arg1->Add(Py2wxString(str));
+            arg1->Add(*s);
+            delete s;
             Py_DECREF(item);
-            Py_DECREF(str);
         }
     }
     {
@@ -16362,6 +16570,26 @@ static PyObject *_wrap_ART_DELETE_get(void) {
 }
 
 
+static int _wrap_ART_NEW_set(PyObject *) {
+    PyErr_SetString(PyExc_TypeError,"Variable ART_NEW is read-only.");
+    return 1;
+}
+
+
+static PyObject *_wrap_ART_NEW_get(void) {
+    PyObject *pyobj;
+    
+    {
+#if wxUSE_UNICODE
+        pyobj = PyUnicode_FromWideChar((&wxPyART_NEW)->c_str(), (&wxPyART_NEW)->Len());
+#else
+        pyobj = PyString_FromStringAndSize((&wxPyART_NEW)->c_str(), (&wxPyART_NEW)->Len());
+#endif
+    }
+    return pyobj;
+}
+
+
 static int _wrap_ART_UNDO_set(PyObject *) {
     PyErr_SetString(PyExc_TypeError,"Variable ART_UNDO is read-only.");
     return 1;
@@ -16737,6 +16965,56 @@ static PyObject *_wrap_ArtProvider_GetIcon(PyObject *, PyObject *args, PyObject
 }
 
 
+static PyObject *_wrap_ArtProvider_GetSizeHint(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxString *arg1 = 0 ;
+    bool arg2 = (bool) false ;
+    wxSize result;
+    bool temp1 = false ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    char *kwnames[] = {
+        (char *) "client",(char *) "platform_dependent", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|O:ArtProvider_GetSizeHint",kwnames,&obj0,&obj1)) goto fail;
+    {
+        arg1 = wxString_in_helper(obj0);
+        if (arg1 == NULL) SWIG_fail;
+        temp1 = true;
+    }
+    if (obj1) {
+        {
+            arg2 = (bool)(SWIG_As_bool(obj1)); 
+            if (SWIG_arg_fail(2)) SWIG_fail;
+        }
+    }
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = wxPyArtProvider::GetSizeHint((wxString const &)*arg1,arg2);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        wxSize * resultptr;
+        resultptr = new wxSize((wxSize &)(result));
+        resultobj = SWIG_NewPointerObj((void *)(resultptr), SWIGTYPE_p_wxSize, 1);
+    }
+    {
+        if (temp1)
+        delete arg1;
+    }
+    return resultobj;
+    fail:
+    {
+        if (temp1)
+        delete arg1;
+    }
+    return NULL;
+}
+
+
 static PyObject *_wrap_ArtProvider_Destroy(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxPyArtProvider *arg1 = (wxPyArtProvider *) 0 ;
@@ -16804,7 +17082,7 @@ static PyObject *_wrap_ConfigBase_Set(PyObject *, PyObject *args, PyObject *kwar
     };
     
     if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ConfigBase_Set",kwnames,&obj0)) goto fail;
-    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_wxConfigBase, SWIG_POINTER_EXCEPTION | 0);
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_wxConfigBase, SWIG_POINTER_EXCEPTION | SWIG_POINTER_DISOWN);
     if (SWIG_arg_fail(1)) SWIG_fail;
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
@@ -29101,6 +29379,63 @@ static PyObject *_wrap_DropTarget_GetData(PyObject *, PyObject *args, PyObject *
 }
 
 
+static PyObject *_wrap_DropTarget_SetDefaultAction(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPyDropTarget *arg1 = (wxPyDropTarget *) 0 ;
+    wxDragResult arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    char *kwnames[] = {
+        (char *) "self",(char *) "action", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:DropTarget_SetDefaultAction",kwnames,&obj0,&obj1)) goto fail;
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_wxPyDropTarget, SWIG_POINTER_EXCEPTION | 0);
+    if (SWIG_arg_fail(1)) SWIG_fail;
+    {
+        arg2 = (wxDragResult)(SWIG_As_int(obj1)); 
+        if (SWIG_arg_fail(2)) SWIG_fail;
+    }
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetDefaultAction((wxDragResult )arg2);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_DropTarget_GetDefaultAction(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPyDropTarget *arg1 = (wxPyDropTarget *) 0 ;
+    wxDragResult result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:DropTarget_GetDefaultAction",kwnames,&obj0)) goto fail;
+    SWIG_Python_ConvertPtr(obj0, (void **)&arg1, SWIGTYPE_p_wxPyDropTarget, SWIG_POINTER_EXCEPTION | 0);
+    if (SWIG_arg_fail(1)) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (wxDragResult)(arg1)->GetDefaultAction();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_From_int((result));
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject * DropTarget_swigregister(PyObject *, PyObject *args) {
     PyObject *obj;
     if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
@@ -31341,6 +31676,7 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"SystemOptions_GetOption", (PyCFunction) _wrap_SystemOptions_GetOption, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"SystemOptions_GetOptionInt", (PyCFunction) _wrap_SystemOptions_GetOptionInt, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"SystemOptions_HasOption", (PyCFunction) _wrap_SystemOptions_HasOption, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"SystemOptions_IsFalse", (PyCFunction) _wrap_SystemOptions_IsFalse, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"SystemOptions_swigregister", SystemOptions_swigregister, METH_VARARGS, NULL},
         { (char *)"NewId", (PyCFunction) _wrap_NewId, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"RegisterId", (PyCFunction) _wrap_RegisterId, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -31394,11 +31730,13 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"ClientDisplayRect", (PyCFunction) _wrap_ClientDisplayRect, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GetClientDisplayRect", (PyCFunction) _wrap_GetClientDisplayRect, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"SetCursor", (PyCFunction) _wrap_SetCursor, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"GetXDisplay", (PyCFunction) _wrap_GetXDisplay, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"BeginBusyCursor", (PyCFunction) _wrap_BeginBusyCursor, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GetActiveWindow", (PyCFunction) _wrap_GetActiveWindow, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GenericFindWindowAtPoint", (PyCFunction) _wrap_GenericFindWindowAtPoint, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"FindWindowAtPoint", (PyCFunction) _wrap_FindWindowAtPoint, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GetTopLevelParent", (PyCFunction) _wrap_GetTopLevelParent, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"LaunchDefaultBrowser", (PyCFunction) _wrap_LaunchDefaultBrowser, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"GetKeyState", (PyCFunction) _wrap_GetKeyState, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"WakeUpMainThread", (PyCFunction) _wrap_WakeUpMainThread, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"MutexGuiEnter", (PyCFunction) _wrap_MutexGuiEnter, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -31543,6 +31881,10 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"LogChain_IsPassingMessages", (PyCFunction) _wrap_LogChain_IsPassingMessages, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"LogChain_GetOldLog", (PyCFunction) _wrap_LogChain_GetOldLog, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"LogChain_swigregister", LogChain_swigregister, METH_VARARGS, NULL},
+        { (char *)"new_LogBuffer", (PyCFunction) _wrap_new_LogBuffer, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"LogBuffer_GetBuffer", (PyCFunction) _wrap_LogBuffer_GetBuffer, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"LogBuffer_Flush", (PyCFunction) _wrap_LogBuffer_Flush, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"LogBuffer_swigregister", LogBuffer_swigregister, METH_VARARGS, NULL},
         { (char *)"SysErrorCode", (PyCFunction) _wrap_SysErrorCode, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"SysErrorMsg", (PyCFunction) _wrap_SysErrorMsg, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"LogFatalError", (PyCFunction) _wrap_LogFatalError, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -31717,6 +32059,7 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"ArtProvider_RemoveProvider", (PyCFunction) _wrap_ArtProvider_RemoveProvider, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"ArtProvider_GetBitmap", (PyCFunction) _wrap_ArtProvider_GetBitmap, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"ArtProvider_GetIcon", (PyCFunction) _wrap_ArtProvider_GetIcon, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"ArtProvider_GetSizeHint", (PyCFunction) _wrap_ArtProvider_GetSizeHint, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"ArtProvider_Destroy", (PyCFunction) _wrap_ArtProvider_Destroy, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"ArtProvider_swigregister", ArtProvider_swigregister, METH_VARARGS, NULL},
         { (char *)"delete_ConfigBase", (PyCFunction) _wrap_delete_ConfigBase, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -32052,6 +32395,8 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"DropTarget_base_OnLeave", (PyCFunction) _wrap_DropTarget_base_OnLeave, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"DropTarget_base_OnDrop", (PyCFunction) _wrap_DropTarget_base_OnDrop, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"DropTarget_GetData", (PyCFunction) _wrap_DropTarget_GetData, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"DropTarget_SetDefaultAction", (PyCFunction) _wrap_DropTarget_SetDefaultAction, METH_VARARGS | METH_KEYWORDS, NULL},
+        { (char *)"DropTarget_GetDefaultAction", (PyCFunction) _wrap_DropTarget_GetDefaultAction, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"DropTarget_swigregister", DropTarget_swigregister, METH_VARARGS, NULL},
         { (char *)"new_TextDropTarget", (PyCFunction) _wrap_new_TextDropTarget, METH_VARARGS | METH_KEYWORDS, NULL},
         { (char *)"TextDropTarget__setCallbackInfo", (PyCFunction) _wrap_TextDropTarget__setCallbackInfo, METH_VARARGS | METH_KEYWORDS, NULL},
@@ -32613,6 +32958,9 @@ static void *_p_wxValidatorTo_p_wxObject(void *x) {
 static void *_p_wxPyTimerTo_p_wxObject(void *x) {
     return (void *)((wxObject *) (wxEvtHandler *) ((wxPyTimer *) x));
 }
+static void *_p_wxLogBufferTo_p_wxLog(void *x) {
+    return (void *)((wxLog *)  ((wxLogBuffer *) x));
+}
 static void *_p_wxLogStderrTo_p_wxLog(void *x) {
     return (void *)((wxLog *)  ((wxLogStderr *) x));
 }
@@ -32650,7 +32998,7 @@ static swig_type_info _swigt__p_wxLogChain[] = {{"_p_wxLogChain", 0, "wxLogChain
 static swig_type_info _swigt__p_wxMutexGuiLocker[] = {{"_p_wxMutexGuiLocker", 0, "wxMutexGuiLocker *", 0, 0, 0, 0},{"_p_wxMutexGuiLocker", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxMetafile[] = {{"_p_wxMetafile", 0, "wxMetafile *", 0, 0, 0, 0},{"_p_wxMetafile", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxFileHistory[] = {{"_p_wxFileHistory", 0, "wxFileHistory *", 0, 0, 0, 0},{"_p_wxFileHistory", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
-static swig_type_info _swigt__p_wxLog[] = {{"_p_wxLog", 0, "wxLog *", 0, 0, 0, 0},{"_p_wxLogStderr", _p_wxLogStderrTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogTextCtrl", _p_wxLogTextCtrlTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogWindow", _p_wxLogWindowTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogChain", _p_wxLogChainTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogGui", _p_wxLogGuiTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxPyLog", _p_wxPyLogTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLog", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
+static swig_type_info _swigt__p_wxLog[] = {{"_p_wxLog", 0, "wxLog *", 0, 0, 0, 0},{"_p_wxLogBuffer", _p_wxLogBufferTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogStderr", _p_wxLogStderrTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogTextCtrl", _p_wxLogTextCtrlTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogWindow", _p_wxLogWindowTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogChain", _p_wxLogChainTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLogGui", _p_wxLogGuiTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxPyLog", _p_wxPyLogTo_p_wxLog, 0, 0, 0, 0, 0},{"_p_wxLog", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxMenu[] = {{"_p_wxMenu", 0, "wxMenu *", 0, 0, 0, 0},{"_p_wxMenu", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxEvent[] = {{"_p_wxEvent", 0, "wxEvent *", 0, 0, 0, 0},{"_p_wxContextMenuEvent", _p_wxContextMenuEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMenuEvent", _p_wxMenuEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxCloseEvent", _p_wxCloseEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMouseEvent", _p_wxMouseEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxEraseEvent", _p_wxEraseEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxSetCursorEvent", _p_wxSetCursorEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxTimerEvent", _p_wxTimerEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxInitDialogEvent", _p_wxInitDialogEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxScrollEvent", _p_wxScrollEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPyEvent", _p_wxPyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxNotifyEvent", _p_wxNotifyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxJoystickEvent", _p_wxJoystickEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxEvent", 0, 0, 0, 0, 0, 0},{"_p_wxIdleEvent", _p_wxIdleEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxWindowCreateEvent", _p_wxWindowCreateEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxQueryNewPaletteEvent", _p_wxQueryNewPaletteEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMaximizeEvent", _p_wxMaximizeEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxIconizeEvent", _p_wxIconizeEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxActivateEvent", _p_wxActivateEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxSizeEvent", _p_wxSizeEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMoveEvent", _p_wxMoveEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxDateEvent", _p_wxDateEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPaintEvent", _p_wxPaintEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxNcPaintEvent", _p_wxNcPaintEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxUpdateUIEvent", _p_wxUpdateUIEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPaletteChangedEvent", _p_wxPaletteChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxDisplayChangedEvent", _p_wxDisplayChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMouseCaptureChangedEvent", _p_wxMouseCaptureChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxSysColourChangedEvent", _p_wxSysColourChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxDropFilesEvent", _p_wxDropFilesEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxFocusEvent", _p_wxFocusEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxChildFocusEvent", _p_wxChildFocusEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxProcessEvent", _p_wxProcessEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxShowEvent", _p_wxShowEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxCommandEvent", _p_wxCommandEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPyCommandEvent", _p_wxPyCommandEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxWindowDestroyEvent", _p_wxWindowDestroyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxNavigationKeyEvent", _p_wxNavigationKeyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxKeyEvent", _p_wxKeyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxScrollWinEvent", _p_wxScrollWinEventTo_p_wxEvent, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxDateTime__TimeZone[] = {{"_p_wxDateTime__TimeZone", 0, "wxDateTime::TimeZone *", 0, 0, 0, 0},{"_p_wxDateTime__TimeZone", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
@@ -32664,6 +33012,7 @@ static swig_type_info _swigt__p_wxTimerEvent[] = {{"_p_wxTimerEvent", 0, "wxTime
 static swig_type_info _swigt__p_wxCaret[] = {{"_p_wxCaret", 0, "wxCaret *", 0, 0, 0, 0},{"_p_wxCaret", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__ptrdiff_t[] = {{"_ptrdiff_t", 0, "ptrdiff_t", 0, 0, 0, 0},{"_ptrdiff_t", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__std__ptrdiff_t[] = {{"_std__ptrdiff_t", 0, "std::ptrdiff_t", 0, 0, 0, 0},{"_std__ptrdiff_t", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
+static swig_type_info _swigt__p_void[] = {{"_p_void", 0, "void *", 0, 0, 0, 0},{"_p_void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_int[] = {{"_p_int", 0, "int *", 0, 0, 0, 0},{"_p_int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxSize[] = {{"_p_wxSize", 0, "wxSize *", 0, 0, 0, 0},{"_p_wxSize", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxClipboard[] = {{"_p_wxClipboard", 0, "wxClipboard *", 0, 0, 0, 0},{"_p_wxClipboard", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
@@ -32722,14 +33071,15 @@ static swig_type_info _swigt__p_wxOutputStream[] = {{"_p_wxOutputStream", 0, "wx
 static swig_type_info _swigt__p_wxDateTime[] = {{"_p_wxDateTime", 0, "wxDateTime *", 0, 0, 0, 0},{"_p_wxDateTime", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxPyDropSource[] = {{"_p_wxPyDropSource", 0, "wxPyDropSource *", 0, 0, 0, 0},{"_p_wxPyDropSource", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_unsigned_long[] = {{"_p_unsigned_long", 0, "unsigned long *|wxLogLevel *", 0, 0, 0, 0},{"_p_unsigned_long", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
+static swig_type_info _swigt__p_wxLogBuffer[] = {{"_p_wxLogBuffer", 0, "wxLogBuffer *", 0, 0, 0, 0},{"_p_wxLogBuffer", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxKillError[] = {{"_p_wxKillError", 0, "enum wxKillError *|wxKillError *", 0, 0, 0, 0},{"_p_wxKillError", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxWindow[] = {{"_p_wxWindow", 0, "wxWindow *", 0, 0, 0, 0},{"_p_wxControl", _p_wxControlTo_p_wxWindow, 0, 0, 0, 0, 0},{"_p_wxWindow", 0, 0, 0, 0, 0, 0},{"_p_wxControlWithItems", _p_wxControlWithItemsTo_p_wxWindow, 0, 0, 0, 0, 0},{"_p_wxMenuBar", _p_wxMenuBarTo_p_wxWindow, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxString[] = {{"_p_wxString", 0, "wxString *", 0, 0, 0, 0},{"_p_wxString", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxPyProcess[] = {{"_p_wxPyProcess", 0, "wxPyProcess *", 0, 0, 0, 0},{"_p_wxPyProcess", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxBitmap[] = {{"_p_wxBitmap", 0, "wxBitmap *", 0, 0, 0, 0},{"_p_wxBitmap", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
-static swig_type_info _swigt__p_wxConfig[] = {{"_p_wxConfig", 0, "wxConfig *", 0, 0, 0, 0},{"_p_wxConfig", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__unsigned_int[] = {{"_unsigned_int", 0, "unsigned int|std::size_t", 0, 0, 0, 0},{"_unsigned_int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_unsigned_int[] = {{"_p_unsigned_int", 0, "unsigned int *|time_t *", 0, 0, 0, 0},{"_p_unsigned_int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
+static swig_type_info _swigt__p_wxConfig[] = {{"_p_wxConfig", 0, "wxConfig *", 0, 0, 0, 0},{"_p_wxConfig", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_unsigned_char[] = {{"_p_unsigned_char", 0, "unsigned char *|byte *", 0, 0, 0, 0},{"_p_unsigned_char", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxChar[] = {{"_p_wxChar", 0, "wxChar *", 0, 0, 0, 0},{"_p_wxChar", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
 static swig_type_info _swigt__p_wxBusyInfo[] = {{"_p_wxBusyInfo", 0, "wxBusyInfo *", 0, 0, 0, 0},{"_p_wxBusyInfo", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
@@ -32763,6 +33113,7 @@ _swigt__p_wxTimerEvent,
 _swigt__p_wxCaret, 
 _swigt__ptrdiff_t, 
 _swigt__std__ptrdiff_t, 
+_swigt__p_void, 
 _swigt__p_int, 
 _swigt__p_wxSize, 
 _swigt__p_wxClipboard, 
@@ -32821,14 +33172,15 @@ _swigt__p_wxOutputStream,
 _swigt__p_wxDateTime, 
 _swigt__p_wxPyDropSource, 
 _swigt__p_unsigned_long, 
+_swigt__p_wxLogBuffer, 
 _swigt__p_wxKillError, 
 _swigt__p_wxWindow, 
 _swigt__p_wxString, 
 _swigt__p_wxPyProcess, 
 _swigt__p_wxBitmap, 
-_swigt__p_wxConfig, 
 _swigt__unsigned_int, 
 _swigt__p_unsigned_int, 
+_swigt__p_wxConfig, 
 _swigt__p_unsigned_char, 
 _swigt__p_wxChar, 
 _swigt__p_wxBusyInfo, 
@@ -33741,6 +34093,7 @@ SWIGEXPORT(void) SWIG_init(void) {
     SWIG_addvarlink(SWIG_globals,(char*)"ART_CUT",_wrap_ART_CUT_get, _wrap_ART_CUT_set);
     SWIG_addvarlink(SWIG_globals,(char*)"ART_PASTE",_wrap_ART_PASTE_get, _wrap_ART_PASTE_set);
     SWIG_addvarlink(SWIG_globals,(char*)"ART_DELETE",_wrap_ART_DELETE_get, _wrap_ART_DELETE_set);
+    SWIG_addvarlink(SWIG_globals,(char*)"ART_NEW",_wrap_ART_NEW_get, _wrap_ART_NEW_set);
     SWIG_addvarlink(SWIG_globals,(char*)"ART_UNDO",_wrap_ART_UNDO_get, _wrap_ART_UNDO_set);
     SWIG_addvarlink(SWIG_globals,(char*)"ART_REDO",_wrap_ART_REDO_get, _wrap_ART_REDO_set);
     SWIG_addvarlink(SWIG_globals,(char*)"ART_QUIT",_wrap_ART_QUIT_get, _wrap_ART_QUIT_set);