"""
         return _controls_.ComboBox_Remove(*args, **kwargs)
 
+    def IsEditable(*args, **kwargs):
+        """
+        IsEditable(self) -> bool
+
+        Returns True if the combo is ediatable (not read-only.)
+        """
+        return _controls_.ComboBox_IsEditable(*args, **kwargs)
+
+    def Undo(*args, **kwargs):
+        """
+        Undo(self)
+
+        Redoes the last undo in the text field. Windows only.
+        """
+        return _controls_.ComboBox_Undo(*args, **kwargs)
+
+    def Redo(*args, **kwargs):
+        """
+        Redo(self)
+
+        Undoes the last edit in the text field. Windows only.
+        """
+        return _controls_.ComboBox_Redo(*args, **kwargs)
+
+    def SelectAll(*args, **kwargs):
+        """
+        SelectAll(self)
+
+        Select all the text in the combo's text field.
+        """
+        return _controls_.ComboBox_SelectAll(*args, **kwargs)
+
+    def CanCopy(*args, **kwargs):
+        """
+        CanCopy(self) -> bool
+
+        Returns True if the combobox is editable and there is a text selection
+        to copy to the clipboard.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanCopy(*args, **kwargs)
+
+    def CanCut(*args, **kwargs):
+        """
+        CanCut(self) -> bool
+
+        Returns True if the combobox is editable and there is a text selection
+        to copy to the clipboard.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanCut(*args, **kwargs)
+
+    def CanPaste(*args, **kwargs):
+        """
+        CanPaste(self) -> bool
+
+        Returns True if the combobox is editable and there is text on the
+        clipboard that can be pasted into the text field. Only available on
+        Windows.
+        """
+        return _controls_.ComboBox_CanPaste(*args, **kwargs)
+
+    def CanUndo(*args, **kwargs):
+        """
+        CanUndo(self) -> bool
+
+        Returns True if the combobox is editable and the last edit can be
+        undone.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanUndo(*args, **kwargs)
+
+    def CanRedo(*args, **kwargs):
+        """
+        CanRedo(self) -> bool
+
+        Returns True if the combobox is editable and the last undo can be
+        redone.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanRedo(*args, **kwargs)
+
     def GetClassDefaultAttributes(*args, **kwargs):
         """
         GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
         self.__class__ = NotebookSizer
 _controls_.NotebookSizer_swigregister(NotebookSizerPtr)
 
+NotebookSizer = wx._deprecated(NotebookSizer, "NotebookSizer is no longer needed.") 
+BookCtrlSizer = wx._deprecated(BookCtrlSizer, "BookCtrlSizer is no longer needed.") 
 #---------------------------------------------------------------------------
 
 TOOL_STYLE_BUTTON = _controls_.TOOL_STYLE_BUTTON
 
 }
 
 
+static PyObject *_wrap_ComboBox_IsEditable(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_IsEditable",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->IsEditable();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_Undo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_Undo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->Undo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_Redo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_Redo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->Redo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_SelectAll(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_SelectAll",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SelectAll();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanCopy(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanCopy",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanCopy();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanCut(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanCut",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanCut();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanPaste(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanPaste",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanPaste();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanUndo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanUndo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanUndo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanRedo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanRedo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanRedo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_ComboBox_GetClassDefaultAttributes(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     int arg1 = (int) wxWINDOW_VARIANT_NORMAL ;
         { (char *)"ComboBox_SetEditable", (PyCFunction) _wrap_ComboBox_SetEditable, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_SetInsertionPointEnd", (PyCFunction) _wrap_ComboBox_SetInsertionPointEnd, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_Remove", (PyCFunction) _wrap_ComboBox_Remove, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_IsEditable", (PyCFunction) _wrap_ComboBox_IsEditable, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_Undo", (PyCFunction) _wrap_ComboBox_Undo, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_Redo", (PyCFunction) _wrap_ComboBox_Redo, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_SelectAll", (PyCFunction) _wrap_ComboBox_SelectAll, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanCopy", (PyCFunction) _wrap_ComboBox_CanCopy, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanCut", (PyCFunction) _wrap_ComboBox_CanCut, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanPaste", (PyCFunction) _wrap_ComboBox_CanPaste, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanUndo", (PyCFunction) _wrap_ComboBox_CanUndo, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanRedo", (PyCFunction) _wrap_ComboBox_CanRedo, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_GetClassDefaultAttributes", (PyCFunction) _wrap_ComboBox_GetClassDefaultAttributes, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_swigregister", ComboBox_swigregister, METH_VARARGS, NULL },
         { (char *)"new_Gauge", (PyCFunction) _wrap_new_Gauge, METH_VARARGS | METH_KEYWORDS, NULL },
 
         Inflate(self, int dx, int dy) -> Rect
 
         Increase the rectangle size by dx in x direction and dy in y
-        direction. Both or one of) parameters may be negative to decrease the
+        direction. Both (or one of) parameters may be negative to decrease the
         rectangle size.
         """
         return _core_.Rect_Inflate(*args, **kwargs)
         Deflate(self, int dx, int dy) -> Rect
 
         Decrease the rectangle size by dx in x direction and dy in y
-        direction. Both or one of) parameters may be negative to increase the
+        direction. Both (or one of) parameters may be negative to increase the
         rectngle size. This method is the opposite of Inflate.
         """
         return _core_.Rect_Deflate(*args, **kwargs)
         """
         Intersect(self, Rect rect) -> Rect
 
-        Return the intersectsion of this rectangle and rect.
+        Returns the intersectsion of this rectangle and rect.
         """
         return _core_.Rect_Intersect(*args, **kwargs)
 
+    def Union(*args, **kwargs):
+        """
+        Union(self, Rect rect) -> Rect
+
+        Returns the union of this rectangle and rect.
+        """
+        return _core_.Rect_Union(*args, **kwargs)
+
     def __add__(*args, **kwargs):
         """
         __add__(self, Rect rect) -> Rect
     Return a reference to the current wx.App object.
     """
     return _core_.GetApp(*args, **kwargs)
+
+def SetDefaultPyEncoding(*args, **kwargs):
+    """
+    SetDefaultPyEncoding(string encoding)
+
+    Sets the encoding that wxPython will use when it needs to convert a
+    Python string or unicode object to or from a wxString.
+    """
+    return _core_.SetDefaultPyEncoding(*args, **kwargs)
+
+def GetDefaultPyEncoding(*args, **kwargs):
+    """
+    GetDefaultPyEncoding() -> string
+
+    Gets the current encoding that wxPython will use when it needs to
+    convert a Python string or unicode object to or from a wxString.
+    """
+    return _core_.GetDefaultPyEncoding(*args, **kwargs)
 #----------------------------------------------------------------------
 
 class PyOnDemandOutputWindow:
 
 #----------------------------------------------------------------------------
 
+# Set the default string conversion encoding from the locale
+import locale
+default = locale.getdefaultlocale()[1]
+if default:
+    wx.SetDefaultPyEncoding(default)
+del default
+del locale
+
+#----------------------------------------------------------------------------
+
 class PyDeadObjectError(AttributeError):
     pass
 
 
     wxPyApp* wxPyGetApp() { return (wxPyApp*)wxTheApp; }
 
 
+SWIGSTATICINLINE(int)
+SWIG_AsCharPtr(PyObject *obj, char **val)
+{
+  char* cptr = 0;
+  if (SWIG_AsCharPtrAndSize(obj, &cptr, (size_t*)(0))) {
+    if (val) *val = cptr;
+    return 1;
+  }
+  if (val) {
+    PyErr_SetString(PyExc_TypeError, "a char* is expected");
+  }
+  return 0;
+}
+
+
+SWIGSTATICINLINE(PyObject *)
+SWIG_FromCharPtr(const char* cptr)
+{ 
+  if (cptr) {
+    size_t size = strlen(cptr);
+    if (size > INT_MAX) {
+      return SWIG_NewPointerObj(swig_const_cast(cptr,char*), 
+                               SWIG_TypeQuery("char *"), 0);
+    } else {
+      if (size != 0) {
+       return PyString_FromStringAndSize(cptr, size);
+      } else {
+       return PyString_FromString(cptr);
+      }
+    }
+  }
+  Py_INCREF(Py_None);
+  return Py_None;
+}
+
+
 #ifdef __WXMAC__
 
 // A dummy class that raises an exception if used...    
     PyObject *resultobj;
     wxRect *arg1 = (wxRect *) 0 ;
     wxRect *arg2 = 0 ;
-    wxRect *result;
+    wxRect result;
     wxRect temp2 ;
     PyObject * obj0 = 0 ;
     PyObject * obj1 = 0 ;
     }
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
-        {
-            wxRect &_result_ref = (arg1)->Intersect((wxRect const &)*arg2);
-            result = (wxRect *) &_result_ref;
-        }
+        result = (arg1)->Intersect((wxRect const &)*arg2);
         
         wxPyEndAllowThreads(__tstate);
         if (PyErr_Occurred()) SWIG_fail;
     }
-    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxRect, 0);
+    {
+        wxRect * resultptr;
+        resultptr = new wxRect((wxRect &) result);
+        resultobj = SWIG_NewPointerObj((void *)(resultptr), SWIGTYPE_p_wxRect, 1);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Rect_Union(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxRect *arg1 = (wxRect *) 0 ;
+    wxRect *arg2 = 0 ;
+    wxRect result;
+    wxRect temp2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    char *kwnames[] = {
+        (char *) "self",(char *) "rect", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Rect_Union",kwnames,&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxRect,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        arg2 = &temp2;
+        if ( ! wxRect_helper(obj1, &arg2)) SWIG_fail;
+    }
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (arg1)->Union((wxRect const &)*arg2);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        wxRect * resultptr;
+        resultptr = new wxRect((wxRect &) result);
+        resultobj = SWIG_NewPointerObj((void *)(resultptr), SWIGTYPE_p_wxRect, 1);
+    }
     return resultobj;
     fail:
     return NULL;
 }
 
 
+static PyObject *_wrap_SetDefaultPyEncoding(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    char *arg1 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "encoding", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SetDefaultPyEncoding",kwnames,&obj0)) goto fail;
+    if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        wxSetDefaultPyEncoding((char const *)arg1);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_GetDefaultPyEncoding(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    char *result;
+    char *kwnames[] = {
+        NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)":GetDefaultPyEncoding",kwnames)) goto fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (char *)wxGetDefaultPyEncoding();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_FromCharPtr(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_new_EventLoop(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxEventLoop *result;
         { (char *)"Rect_OffsetXY", (PyCFunction) _wrap_Rect_OffsetXY, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect_Offset", (PyCFunction) _wrap_Rect_Offset, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect_Intersect", (PyCFunction) _wrap_Rect_Intersect, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Rect_Union", (PyCFunction) _wrap_Rect_Union, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect___add__", (PyCFunction) _wrap_Rect___add__, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect___iadd__", (PyCFunction) _wrap_Rect___iadd__, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect___eq__", (PyCFunction) _wrap_Rect___eq__, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"PostEvent", (PyCFunction) _wrap_PostEvent, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"App_CleanUp", (PyCFunction) _wrap_App_CleanUp, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"GetApp", (PyCFunction) _wrap_GetApp, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SetDefaultPyEncoding", (PyCFunction) _wrap_SetDefaultPyEncoding, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"GetDefaultPyEncoding", (PyCFunction) _wrap_GetDefaultPyEncoding, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"new_EventLoop", (PyCFunction) _wrap_new_EventLoop, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"delete_EventLoop", (PyCFunction) _wrap_delete_EventLoop, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"EventLoop_Run", (PyCFunction) _wrap_EventLoop_Run, METH_VARARGS | METH_KEYWORDS, NULL },
 
         """GetRGB(self, int pixel) -> (R,G,B)"""
         return _gdi_.Palette_GetRGB(*args, **kwargs)
 
+    def GetColoursCount(*args, **kwargs):
+        """GetColoursCount(self) -> int"""
+        return _gdi_.Palette_GetColoursCount(*args, **kwargs)
+
     def Ok(*args, **kwargs):
         """Ok(self) -> bool"""
         return _gdi_.Palette_Ok(*args, **kwargs)
         """
         return _gdi_.DC_SetLogicalFunction(*args, **kwargs)
 
-    def SetOptimization(*args, **kwargs):
+    def ComputeScaleAndOrigin(*args, **kwargs):
         """
-        SetOptimization(self, bool optimize)
+        ComputeScaleAndOrigin(self)
 
-        If *optimize* is true this function sets optimization mode on. This
-        currently means that under X, the device context will not try to set a
-        pen or brush property if it is known to be set already. This approach
-        can fall down if non-wxWidgets code is using the same device context
-        or window, for example when the window is a panel on which the
-        windowing system draws panel items. The wxWidgets device context
-        'memory' will now be out of step with reality.
+        Performs all necessary computations for given platform and context
+        type after each change of scale and origin parameters. Usually called
+        automatically internally after such changes.
 
-        Setting optimization off, drawing, then setting it back on again, is a
-        trick that must occasionally be employed.
         """
-        return _gdi_.DC_SetOptimization(*args, **kwargs)
+        return _gdi_.DC_ComputeScaleAndOrigin(*args, **kwargs)
 
-    def GetOptimization(*args, **kwargs):
-        """
-        GetOptimization(self) -> bool
+    def SetOptimization(self, optimize):
+        pass
+    def GetOptimization(self):
+        return False
 
-        Returns true if device context optimization is on. See
-        `SetOptimization` for .
-        """
-        return _gdi_.DC_GetOptimization(*args, **kwargs)
+    SetOptimization = wx._deprecated(SetOptimization)
+    GetOptimization = wx._deprecated(GetOptimization)
 
     def CalcBoundingBox(*args, **kwargs):
         """
 
 }
 
 
+static PyObject *_wrap_Palette_GetColoursCount(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPalette *arg1 = (wxPalette *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:Palette_GetColoursCount",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPalette,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (int)((wxPalette const *)arg1)->GetColoursCount();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_From_int((int)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_Palette_Ok(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxPalette *arg1 = (wxPalette *) 0 ;
 }
 
 
-static PyObject *_wrap_DC_SetOptimization(PyObject *, PyObject *args, PyObject *kwargs) {
+static PyObject *_wrap_DC_ComputeScaleAndOrigin(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxDC *arg1 = (wxDC *) 0 ;
-    bool arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    char *kwnames[] = {
-        (char *) "self",(char *) "optimize", NULL 
-    };
-    
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:DC_SetOptimization",kwnames,&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxDC,
-    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
-    arg2 = (bool)SWIG_As_bool(obj1); 
-    if (PyErr_Occurred()) SWIG_fail;
-    {
-        PyThreadState* __tstate = wxPyBeginAllowThreads();
-        (arg1)->SetOptimization(arg2);
-        
-        wxPyEndAllowThreads(__tstate);
-        if (PyErr_Occurred()) SWIG_fail;
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_DC_GetOptimization(PyObject *, PyObject *args, PyObject *kwargs) {
-    PyObject *resultobj;
-    wxDC *arg1 = (wxDC *) 0 ;
-    bool result;
     PyObject * obj0 = 0 ;
     char *kwnames[] = {
         (char *) "self", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:DC_GetOptimization",kwnames,&obj0)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:DC_ComputeScaleAndOrigin",kwnames,&obj0)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxDC,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
-        result = (bool)(arg1)->GetOptimization();
+        (arg1)->ComputeScaleAndOrigin();
         
         wxPyEndAllowThreads(__tstate);
         if (PyErr_Occurred()) SWIG_fail;
     }
-    {
-        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
-    }
+    Py_INCREF(Py_None); resultobj = Py_None;
     return resultobj;
     fail:
     return NULL;
         { (char *)"delete_Palette", (PyCFunction) _wrap_delete_Palette, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_GetPixel", (PyCFunction) _wrap_Palette_GetPixel, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_GetRGB", (PyCFunction) _wrap_Palette_GetRGB, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Palette_GetColoursCount", (PyCFunction) _wrap_Palette_GetColoursCount, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_Ok", (PyCFunction) _wrap_Palette_Ok, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_swigregister", Palette_swigregister, METH_VARARGS, NULL },
         { (char *)"new_Pen", (PyCFunction) _wrap_new_Pen, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_SetAxisOrientation", (PyCFunction) _wrap_DC_SetAxisOrientation, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_GetLogicalFunction", (PyCFunction) _wrap_DC_GetLogicalFunction, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_SetLogicalFunction", (PyCFunction) _wrap_DC_SetLogicalFunction, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"DC_SetOptimization", (PyCFunction) _wrap_DC_SetOptimization, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"DC_GetOptimization", (PyCFunction) _wrap_DC_GetOptimization, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"DC_ComputeScaleAndOrigin", (PyCFunction) _wrap_DC_ComputeScaleAndOrigin, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_CalcBoundingBox", (PyCFunction) _wrap_DC_CalcBoundingBox, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_CalcBoundingBoxPoint", (PyCFunction) _wrap_DC_CalcBoundingBoxPoint, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_ResetBoundingBox", (PyCFunction) _wrap_DC_ResetBoundingBox, METH_VARARGS | METH_KEYWORDS, NULL },
 
         """
         return _windows_.Panel_InitDialog(*args, **kwargs)
 
+    def SetFocus(*args, **kwargs):
+        """
+        SetFocus(self)
+
+        Overrides `wx.Window.SetFocus`.  This method uses the (undocumented)
+        mix-in class wxControlContainer which manages the focus and TAB logic
+        for controls which usually have child controls.  In practice, if you
+        call this method and the panel has at least one child window, then the
+        focus will be given to the child window.
+        """
+        return _windows_.Panel_SetFocus(*args, **kwargs)
+
+    def SetFocusIgnoringChildren(*args, **kwargs):
+        """
+        SetFocusIgnoringChildren(self)
+
+        In contrast to `SetFocus` (see above) this will set the focus to the
+        panel even of there are child windows in the panel. This is only
+        rarely needed.
+        """
+        return _windows_.Panel_SetFocusIgnoringChildren(*args, **kwargs)
+
     def GetClassDefaultAttributes(*args, **kwargs):
         """
         GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
         """
         return _windows_.SplitterWindow_GetSashPosition(*args, **kwargs)
 
+    def SetSashGravity(*args, **kwargs):
+        """
+        SetSashGravity(self, double gravity)
+
+        Set the sash gravity.  Gravity is a floating-point factor between 0.0
+        and 1.0 which controls position of sash while resizing the
+        `wx.SplitterWindow`.  The gravity specifies how much the left/top
+        window will grow while resizing.
+        """
+        return _windows_.SplitterWindow_SetSashGravity(*args, **kwargs)
+
+    def GetSashGravity(*args, **kwargs):
+        """
+        GetSashGravity(self) -> double
+
+        Gets the sash gravity.
+
+        :see: `SetSashGravity`
+
+        """
+        return _windows_.SplitterWindow_GetSashGravity(*args, **kwargs)
+
     def SetMinimumPaneSize(*args, **kwargs):
         """
         SetMinimumPaneSize(self, int min)
         return _windows_.MDIChildFrame_Activate(*args, **kwargs)
 
     def Maximize(*args, **kwargs):
-        """Maximize(self, bool maximize)"""
+        """Maximize(self, bool maximize=True)"""
         return _windows_.MDIChildFrame_Maximize(*args, **kwargs)
 
     def Restore(*args, **kwargs):
 
 }
 
 
+static PyObject *_wrap_Panel_SetFocus(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPanel *arg1 = (wxPanel *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:Panel_SetFocus",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPanel,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetFocus();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Panel_SetFocusIgnoringChildren(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPanel *arg1 = (wxPanel *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:Panel_SetFocusIgnoringChildren",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPanel,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetFocusIgnoringChildren();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_Panel_GetClassDefaultAttributes(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     int arg1 = (int) wxWINDOW_VARIANT_NORMAL ;
 }
 
 
+static PyObject *_wrap_SplitterWindow_SetSashGravity(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxSplitterWindow *arg1 = (wxSplitterWindow *) 0 ;
+    double arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    char *kwnames[] = {
+        (char *) "self",(char *) "gravity", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:SplitterWindow_SetSashGravity",kwnames,&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxSplitterWindow,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    arg2 = (double)SWIG_As_double(obj1); 
+    if (PyErr_Occurred()) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetSashGravity(arg2);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_SplitterWindow_GetSashGravity(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxSplitterWindow *arg1 = (wxSplitterWindow *) 0 ;
+    double result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SplitterWindow_GetSashGravity",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxSplitterWindow,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (double)((wxSplitterWindow const *)arg1)->GetSashGravity();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_From_double((double)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_SplitterWindow_SetMinimumPaneSize(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxSplitterWindow *arg1 = (wxSplitterWindow *) 0 ;
 static PyObject *_wrap_MDIChildFrame_Maximize(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxMDIChildFrame *arg1 = (wxMDIChildFrame *) 0 ;
-    bool arg2 ;
+    bool arg2 = (bool) true ;
     PyObject * obj0 = 0 ;
     PyObject * obj1 = 0 ;
     char *kwnames[] = {
         (char *) "self",(char *) "maximize", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:MDIChildFrame_Maximize",kwnames,&obj0,&obj1)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|O:MDIChildFrame_Maximize",kwnames,&obj0,&obj1)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxMDIChildFrame,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
-    arg2 = (bool)SWIG_As_bool(obj1); 
-    if (PyErr_Occurred()) SWIG_fail;
+    if (obj1) {
+        arg2 = (bool)SWIG_As_bool(obj1); 
+        if (PyErr_Occurred()) SWIG_fail;
+    }
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
         (arg1)->Maximize(arg2);
         { (char *)"new_PrePanel", (PyCFunction) _wrap_new_PrePanel, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_Create", (PyCFunction) _wrap_Panel_Create, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_InitDialog", (PyCFunction) _wrap_Panel_InitDialog, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Panel_SetFocus", (PyCFunction) _wrap_Panel_SetFocus, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Panel_SetFocusIgnoringChildren", (PyCFunction) _wrap_Panel_SetFocusIgnoringChildren, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_GetClassDefaultAttributes", (PyCFunction) _wrap_Panel_GetClassDefaultAttributes, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_swigregister", Panel_swigregister, METH_VARARGS, NULL },
         { (char *)"new_ScrolledWindow", (PyCFunction) _wrap_new_ScrolledWindow, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_GetBorderSize", (PyCFunction) _wrap_SplitterWindow_GetBorderSize, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_SetSashPosition", (PyCFunction) _wrap_SplitterWindow_SetSashPosition, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_GetSashPosition", (PyCFunction) _wrap_SplitterWindow_GetSashPosition, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SplitterWindow_SetSashGravity", (PyCFunction) _wrap_SplitterWindow_SetSashGravity, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SplitterWindow_GetSashGravity", (PyCFunction) _wrap_SplitterWindow_GetSashGravity, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_SetMinimumPaneSize", (PyCFunction) _wrap_SplitterWindow_SetMinimumPaneSize, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_GetMinimumPaneSize", (PyCFunction) _wrap_SplitterWindow_GetMinimumPaneSize, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_SashHitTest", (PyCFunction) _wrap_SplitterWindow_SashHitTest, METH_VARARGS | METH_KEYWORDS, NULL },
 
     """PreGrid() -> Grid"""
     val = _grid.new_PreGrid(*args, **kwargs)
     val.thisown = 1
-    self._setOORInfo(self)
     return val
 
 def Grid_GetClassDefaultAttributes(*args, **kwargs):
 
         """SetPlaybackRate(self, double dRate) -> bool"""
         return _media.MediaCtrl_SetPlaybackRate(*args, **kwargs)
 
-    def SetPosition(*args, **kwargs):
-        """SetPosition(self, wxLongLong where) -> bool"""
-        return _media.MediaCtrl_SetPosition(*args, **kwargs)
+    def SetMediaPosition(*args, **kwargs):
+        """SetMediaPosition(self, wxLongLong where) -> bool"""
+        return _media.MediaCtrl_SetMediaPosition(*args, **kwargs)
 
-    def GetPosition(*args, **kwargs):
+    def GetMediaPosition(*args, **kwargs):
         """
-        GetPosition(self) -> wxLongLong
+        GetMediaPosition(self) -> wxLongLong
 
         Get the window's position.
         """
-        return _media.MediaCtrl_GetPosition(*args, **kwargs)
+        return _media.MediaCtrl_GetMediaPosition(*args, **kwargs)
 
-    def GetDuration(*args, **kwargs):
-        """GetDuration(self) -> wxLongLong"""
-        return _media.MediaCtrl_GetDuration(*args, **kwargs)
+    def GetMediaDuration(*args, **kwargs):
+        """GetMediaDuration(self) -> wxLongLong"""
+        return _media.MediaCtrl_GetMediaDuration(*args, **kwargs)
 
 
 class MediaCtrlPtr(MediaCtrl):
 
     wxMEDIATIMEFORMAT_TIME=0
 };
 
-class WXDLLIMPEXP_MEDIA wxMediaEvent : public wxNotifyEvent
+class wxMediaEvent : public wxNotifyEvent
 {
 public:
     wxMediaEvent(wxEventType, int )    { wxPyRaiseNotImplemented(); }
 }
 
 
-static PyObject *_wrap_MediaCtrl_SetPosition(PyObject *, PyObject *args, PyObject *kwargs) {
+static PyObject *_wrap_MediaCtrl_SetMediaPosition(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxMediaCtrl *arg1 = (wxMediaCtrl *) 0 ;
     wxLongLong arg2 ;
         (char *) "self",(char *) "where", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:MediaCtrl_SetPosition",kwnames,&obj0,&obj1)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:MediaCtrl_SetMediaPosition",kwnames,&obj0,&obj1)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxMediaCtrl,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
     {
 }
 
 
-static PyObject *_wrap_MediaCtrl_GetPosition(PyObject *, PyObject *args, PyObject *kwargs) {
+static PyObject *_wrap_MediaCtrl_GetMediaPosition(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxMediaCtrl *arg1 = (wxMediaCtrl *) 0 ;
     wxLongLong result;
         (char *) "self", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:MediaCtrl_GetPosition",kwnames,&obj0)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:MediaCtrl_GetMediaPosition",kwnames,&obj0)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxMediaCtrl,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
     {
 }
 
 
-static PyObject *_wrap_MediaCtrl_GetDuration(PyObject *, PyObject *args, PyObject *kwargs) {
+static PyObject *_wrap_MediaCtrl_GetMediaDuration(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxMediaCtrl *arg1 = (wxMediaCtrl *) 0 ;
     wxLongLong result;
         (char *) "self", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:MediaCtrl_GetDuration",kwnames,&obj0)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:MediaCtrl_GetMediaDuration",kwnames,&obj0)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxMediaCtrl,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
     {
         { (char *)"MediaCtrl_GetState", (PyCFunction) _wrap_MediaCtrl_GetState, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"MediaCtrl_GetPlaybackRate", (PyCFunction) _wrap_MediaCtrl_GetPlaybackRate, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"MediaCtrl_SetPlaybackRate", (PyCFunction) _wrap_MediaCtrl_SetPlaybackRate, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"MediaCtrl_SetPosition", (PyCFunction) _wrap_MediaCtrl_SetPosition, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"MediaCtrl_GetPosition", (PyCFunction) _wrap_MediaCtrl_GetPosition, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"MediaCtrl_GetDuration", (PyCFunction) _wrap_MediaCtrl_GetDuration, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"MediaCtrl_SetMediaPosition", (PyCFunction) _wrap_MediaCtrl_SetMediaPosition, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"MediaCtrl_GetMediaPosition", (PyCFunction) _wrap_MediaCtrl_GetMediaPosition, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"MediaCtrl_GetMediaDuration", (PyCFunction) _wrap_MediaCtrl_GetMediaDuration, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"MediaCtrl_swigregister", MediaCtrl_swigregister, METH_VARARGS, NULL },
         { NULL, NULL, 0, NULL }
 };
 
         """
         return _controls_.ComboBox_Remove(*args, **kwargs)
 
+    def IsEditable(*args, **kwargs):
+        """
+        IsEditable(self) -> bool
+
+        Returns True if the combo is ediatable (not read-only.)
+        """
+        return _controls_.ComboBox_IsEditable(*args, **kwargs)
+
+    def Undo(*args, **kwargs):
+        """
+        Undo(self)
+
+        Redoes the last undo in the text field. Windows only.
+        """
+        return _controls_.ComboBox_Undo(*args, **kwargs)
+
+    def Redo(*args, **kwargs):
+        """
+        Redo(self)
+
+        Undoes the last edit in the text field. Windows only.
+        """
+        return _controls_.ComboBox_Redo(*args, **kwargs)
+
+    def SelectAll(*args, **kwargs):
+        """
+        SelectAll(self)
+
+        Select all the text in the combo's text field.
+        """
+        return _controls_.ComboBox_SelectAll(*args, **kwargs)
+
+    def CanCopy(*args, **kwargs):
+        """
+        CanCopy(self) -> bool
+
+        Returns True if the combobox is editable and there is a text selection
+        to copy to the clipboard.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanCopy(*args, **kwargs)
+
+    def CanCut(*args, **kwargs):
+        """
+        CanCut(self) -> bool
+
+        Returns True if the combobox is editable and there is a text selection
+        to copy to the clipboard.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanCut(*args, **kwargs)
+
+    def CanPaste(*args, **kwargs):
+        """
+        CanPaste(self) -> bool
+
+        Returns True if the combobox is editable and there is text on the
+        clipboard that can be pasted into the text field. Only available on
+        Windows.
+        """
+        return _controls_.ComboBox_CanPaste(*args, **kwargs)
+
+    def CanUndo(*args, **kwargs):
+        """
+        CanUndo(self) -> bool
+
+        Returns True if the combobox is editable and the last edit can be
+        undone.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanUndo(*args, **kwargs)
+
+    def CanRedo(*args, **kwargs):
+        """
+        CanRedo(self) -> bool
+
+        Returns True if the combobox is editable and the last undo can be
+        redone.  Only available on Windows.
+        """
+        return _controls_.ComboBox_CanRedo(*args, **kwargs)
+
     def GetClassDefaultAttributes(*args, **kwargs):
         """
         GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
         self.__class__ = NotebookSizer
 _controls_.NotebookSizer_swigregister(NotebookSizerPtr)
 
+NotebookSizer = wx._deprecated(NotebookSizer, "NotebookSizer is no longer needed.") 
+BookCtrlSizer = wx._deprecated(BookCtrlSizer, "BookCtrlSizer is no longer needed.") 
 #---------------------------------------------------------------------------
 
 TOOL_STYLE_BUTTON = _controls_.TOOL_STYLE_BUTTON
 
 }
 
 
+static PyObject *_wrap_ComboBox_IsEditable(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_IsEditable",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->IsEditable();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_Undo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_Undo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->Undo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_Redo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_Redo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->Redo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_SelectAll(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_SelectAll",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SelectAll();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanCopy(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanCopy",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanCopy();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanCut(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanCut",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanCut();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanPaste(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanPaste",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanPaste();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanUndo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanUndo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanUndo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_ComboBox_CanRedo(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxComboBox *arg1 = (wxComboBox *) 0 ;
+    bool result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ComboBox_CanRedo",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxComboBox,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (bool)((wxComboBox const *)arg1)->CanRedo();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_ComboBox_GetClassDefaultAttributes(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     int arg1 = (int) wxWINDOW_VARIANT_NORMAL ;
         { (char *)"ComboBox_SetEditable", (PyCFunction) _wrap_ComboBox_SetEditable, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_SetInsertionPointEnd", (PyCFunction) _wrap_ComboBox_SetInsertionPointEnd, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_Remove", (PyCFunction) _wrap_ComboBox_Remove, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_IsEditable", (PyCFunction) _wrap_ComboBox_IsEditable, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_Undo", (PyCFunction) _wrap_ComboBox_Undo, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_Redo", (PyCFunction) _wrap_ComboBox_Redo, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_SelectAll", (PyCFunction) _wrap_ComboBox_SelectAll, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanCopy", (PyCFunction) _wrap_ComboBox_CanCopy, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanCut", (PyCFunction) _wrap_ComboBox_CanCut, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanPaste", (PyCFunction) _wrap_ComboBox_CanPaste, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanUndo", (PyCFunction) _wrap_ComboBox_CanUndo, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"ComboBox_CanRedo", (PyCFunction) _wrap_ComboBox_CanRedo, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_GetClassDefaultAttributes", (PyCFunction) _wrap_ComboBox_GetClassDefaultAttributes, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"ComboBox_swigregister", ComboBox_swigregister, METH_VARARGS, NULL },
         { (char *)"new_Gauge", (PyCFunction) _wrap_new_Gauge, METH_VARARGS | METH_KEYWORDS, NULL },
 
         Inflate(self, int dx, int dy) -> Rect
 
         Increase the rectangle size by dx in x direction and dy in y
-        direction. Both or one of) parameters may be negative to decrease the
+        direction. Both (or one of) parameters may be negative to decrease the
         rectangle size.
         """
         return _core_.Rect_Inflate(*args, **kwargs)
         Deflate(self, int dx, int dy) -> Rect
 
         Decrease the rectangle size by dx in x direction and dy in y
-        direction. Both or one of) parameters may be negative to increase the
+        direction. Both (or one of) parameters may be negative to increase the
         rectngle size. This method is the opposite of Inflate.
         """
         return _core_.Rect_Deflate(*args, **kwargs)
         """
         Intersect(self, Rect rect) -> Rect
 
-        Return the intersectsion of this rectangle and rect.
+        Returns the intersectsion of this rectangle and rect.
         """
         return _core_.Rect_Intersect(*args, **kwargs)
 
+    def Union(*args, **kwargs):
+        """
+        Union(self, Rect rect) -> Rect
+
+        Returns the union of this rectangle and rect.
+        """
+        return _core_.Rect_Union(*args, **kwargs)
+
     def __add__(*args, **kwargs):
         """
         __add__(self, Rect rect) -> Rect
     Return a reference to the current wx.App object.
     """
     return _core_.GetApp(*args, **kwargs)
+
+def SetDefaultPyEncoding(*args, **kwargs):
+    """
+    SetDefaultPyEncoding(string encoding)
+
+    Sets the encoding that wxPython will use when it needs to convert a
+    Python string or unicode object to or from a wxString.
+    """
+    return _core_.SetDefaultPyEncoding(*args, **kwargs)
+
+def GetDefaultPyEncoding(*args, **kwargs):
+    """
+    GetDefaultPyEncoding() -> string
+
+    Gets the current encoding that wxPython will use when it needs to
+    convert a Python string or unicode object to or from a wxString.
+    """
+    return _core_.GetDefaultPyEncoding(*args, **kwargs)
 #----------------------------------------------------------------------
 
 class PyOnDemandOutputWindow:
 
 #----------------------------------------------------------------------------
 
+# Set the default string conversion encoding from the locale
+import locale
+default = locale.getdefaultlocale()[1]
+if default:
+    wx.SetDefaultPyEncoding(default)
+del default
+del locale
+
+#----------------------------------------------------------------------------
+
 class PyDeadObjectError(AttributeError):
     pass
 
 
     wxPyApp* wxPyGetApp() { return (wxPyApp*)wxTheApp; }
 
 
+SWIGSTATICINLINE(int)
+SWIG_AsCharPtr(PyObject *obj, char **val)
+{
+  char* cptr = 0;
+  if (SWIG_AsCharPtrAndSize(obj, &cptr, (size_t*)(0))) {
+    if (val) *val = cptr;
+    return 1;
+  }
+  if (val) {
+    PyErr_SetString(PyExc_TypeError, "a char* is expected");
+  }
+  return 0;
+}
+
+
+SWIGSTATICINLINE(PyObject *)
+SWIG_FromCharPtr(const char* cptr)
+{ 
+  if (cptr) {
+    size_t size = strlen(cptr);
+    if (size > INT_MAX) {
+      return SWIG_NewPointerObj(swig_const_cast(cptr,char*), 
+                               SWIG_TypeQuery("char *"), 0);
+    } else {
+      if (size != 0) {
+       return PyString_FromStringAndSize(cptr, size);
+      } else {
+       return PyString_FromString(cptr);
+      }
+    }
+  }
+  Py_INCREF(Py_None);
+  return Py_None;
+}
+
+
 #ifdef __WXMAC__
 
 // A dummy class that raises an exception if used...    
     PyObject *resultobj;
     wxRect *arg1 = (wxRect *) 0 ;
     wxRect *arg2 = 0 ;
-    wxRect *result;
+    wxRect result;
     wxRect temp2 ;
     PyObject * obj0 = 0 ;
     PyObject * obj1 = 0 ;
     }
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
-        {
-            wxRect &_result_ref = (arg1)->Intersect((wxRect const &)*arg2);
-            result = (wxRect *) &_result_ref;
-        }
+        result = (arg1)->Intersect((wxRect const &)*arg2);
         
         wxPyEndAllowThreads(__tstate);
         if (PyErr_Occurred()) SWIG_fail;
     }
-    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxRect, 0);
+    {
+        wxRect * resultptr;
+        resultptr = new wxRect((wxRect &) result);
+        resultobj = SWIG_NewPointerObj((void *)(resultptr), SWIGTYPE_p_wxRect, 1);
+    }
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Rect_Union(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxRect *arg1 = (wxRect *) 0 ;
+    wxRect *arg2 = 0 ;
+    wxRect result;
+    wxRect temp2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    char *kwnames[] = {
+        (char *) "self",(char *) "rect", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:Rect_Union",kwnames,&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxRect,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        arg2 = &temp2;
+        if ( ! wxRect_helper(obj1, &arg2)) SWIG_fail;
+    }
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (arg1)->Union((wxRect const &)*arg2);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    {
+        wxRect * resultptr;
+        resultptr = new wxRect((wxRect &) result);
+        resultobj = SWIG_NewPointerObj((void *)(resultptr), SWIGTYPE_p_wxRect, 1);
+    }
     return resultobj;
     fail:
     return NULL;
 }
 
 
+static PyObject *_wrap_SetDefaultPyEncoding(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    char *arg1 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "encoding", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SetDefaultPyEncoding",kwnames,&obj0)) goto fail;
+    if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        wxSetDefaultPyEncoding((char const *)arg1);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_GetDefaultPyEncoding(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    char *result;
+    char *kwnames[] = {
+        NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)":GetDefaultPyEncoding",kwnames)) goto fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (char *)wxGetDefaultPyEncoding();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_FromCharPtr(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_new_EventLoop(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxEventLoop *result;
         { (char *)"Rect_OffsetXY", (PyCFunction) _wrap_Rect_OffsetXY, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect_Offset", (PyCFunction) _wrap_Rect_Offset, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect_Intersect", (PyCFunction) _wrap_Rect_Intersect, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Rect_Union", (PyCFunction) _wrap_Rect_Union, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect___add__", (PyCFunction) _wrap_Rect___add__, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect___iadd__", (PyCFunction) _wrap_Rect___iadd__, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Rect___eq__", (PyCFunction) _wrap_Rect___eq__, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"PostEvent", (PyCFunction) _wrap_PostEvent, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"App_CleanUp", (PyCFunction) _wrap_App_CleanUp, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"GetApp", (PyCFunction) _wrap_GetApp, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SetDefaultPyEncoding", (PyCFunction) _wrap_SetDefaultPyEncoding, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"GetDefaultPyEncoding", (PyCFunction) _wrap_GetDefaultPyEncoding, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"new_EventLoop", (PyCFunction) _wrap_new_EventLoop, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"delete_EventLoop", (PyCFunction) _wrap_delete_EventLoop, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"EventLoop_Run", (PyCFunction) _wrap_EventLoop_Run, METH_VARARGS | METH_KEYWORDS, NULL },
 
         """GetRGB(self, int pixel) -> (R,G,B)"""
         return _gdi_.Palette_GetRGB(*args, **kwargs)
 
+    def GetColoursCount(*args, **kwargs):
+        """GetColoursCount(self) -> int"""
+        return _gdi_.Palette_GetColoursCount(*args, **kwargs)
+
     def Ok(*args, **kwargs):
         """Ok(self) -> bool"""
         return _gdi_.Palette_Ok(*args, **kwargs)
         """
         return _gdi_.DC_SetLogicalFunction(*args, **kwargs)
 
-    def SetOptimization(*args, **kwargs):
+    def ComputeScaleAndOrigin(*args, **kwargs):
         """
-        SetOptimization(self, bool optimize)
+        ComputeScaleAndOrigin(self)
 
-        If *optimize* is true this function sets optimization mode on. This
-        currently means that under X, the device context will not try to set a
-        pen or brush property if it is known to be set already. This approach
-        can fall down if non-wxWidgets code is using the same device context
-        or window, for example when the window is a panel on which the
-        windowing system draws panel items. The wxWidgets device context
-        'memory' will now be out of step with reality.
+        Performs all necessary computations for given platform and context
+        type after each change of scale and origin parameters. Usually called
+        automatically internally after such changes.
 
-        Setting optimization off, drawing, then setting it back on again, is a
-        trick that must occasionally be employed.
         """
-        return _gdi_.DC_SetOptimization(*args, **kwargs)
+        return _gdi_.DC_ComputeScaleAndOrigin(*args, **kwargs)
 
-    def GetOptimization(*args, **kwargs):
-        """
-        GetOptimization(self) -> bool
+    def SetOptimization(self, optimize):
+        pass
+    def GetOptimization(self):
+        return False
 
-        Returns true if device context optimization is on. See
-        `SetOptimization` for .
-        """
-        return _gdi_.DC_GetOptimization(*args, **kwargs)
+    SetOptimization = wx._deprecated(SetOptimization)
+    GetOptimization = wx._deprecated(GetOptimization)
 
     def CalcBoundingBox(*args, **kwargs):
         """
 
 }
 
 
+static PyObject *_wrap_Palette_GetColoursCount(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPalette *arg1 = (wxPalette *) 0 ;
+    int result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:Palette_GetColoursCount",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPalette,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (int)((wxPalette const *)arg1)->GetColoursCount();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_From_int((int)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_Palette_Ok(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxPalette *arg1 = (wxPalette *) 0 ;
 }
 
 
-static PyObject *_wrap_DC_SetOptimization(PyObject *, PyObject *args, PyObject *kwargs) {
+static PyObject *_wrap_DC_ComputeScaleAndOrigin(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxDC *arg1 = (wxDC *) 0 ;
-    bool arg2 ;
-    PyObject * obj0 = 0 ;
-    PyObject * obj1 = 0 ;
-    char *kwnames[] = {
-        (char *) "self",(char *) "optimize", NULL 
-    };
-    
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:DC_SetOptimization",kwnames,&obj0,&obj1)) goto fail;
-    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxDC,
-    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
-    arg2 = (bool)SWIG_As_bool(obj1); 
-    if (PyErr_Occurred()) SWIG_fail;
-    {
-        PyThreadState* __tstate = wxPyBeginAllowThreads();
-        (arg1)->SetOptimization(arg2);
-        
-        wxPyEndAllowThreads(__tstate);
-        if (PyErr_Occurred()) SWIG_fail;
-    }
-    Py_INCREF(Py_None); resultobj = Py_None;
-    return resultobj;
-    fail:
-    return NULL;
-}
-
-
-static PyObject *_wrap_DC_GetOptimization(PyObject *, PyObject *args, PyObject *kwargs) {
-    PyObject *resultobj;
-    wxDC *arg1 = (wxDC *) 0 ;
-    bool result;
     PyObject * obj0 = 0 ;
     char *kwnames[] = {
         (char *) "self", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:DC_GetOptimization",kwnames,&obj0)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:DC_ComputeScaleAndOrigin",kwnames,&obj0)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxDC,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
-        result = (bool)(arg1)->GetOptimization();
+        (arg1)->ComputeScaleAndOrigin();
         
         wxPyEndAllowThreads(__tstate);
         if (PyErr_Occurred()) SWIG_fail;
     }
-    {
-        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
-    }
+    Py_INCREF(Py_None); resultobj = Py_None;
     return resultobj;
     fail:
     return NULL;
         { (char *)"delete_Palette", (PyCFunction) _wrap_delete_Palette, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_GetPixel", (PyCFunction) _wrap_Palette_GetPixel, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_GetRGB", (PyCFunction) _wrap_Palette_GetRGB, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Palette_GetColoursCount", (PyCFunction) _wrap_Palette_GetColoursCount, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_Ok", (PyCFunction) _wrap_Palette_Ok, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Palette_swigregister", Palette_swigregister, METH_VARARGS, NULL },
         { (char *)"new_Pen", (PyCFunction) _wrap_new_Pen, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_SetAxisOrientation", (PyCFunction) _wrap_DC_SetAxisOrientation, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_GetLogicalFunction", (PyCFunction) _wrap_DC_GetLogicalFunction, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_SetLogicalFunction", (PyCFunction) _wrap_DC_SetLogicalFunction, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"DC_SetOptimization", (PyCFunction) _wrap_DC_SetOptimization, METH_VARARGS | METH_KEYWORDS, NULL },
-        { (char *)"DC_GetOptimization", (PyCFunction) _wrap_DC_GetOptimization, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"DC_ComputeScaleAndOrigin", (PyCFunction) _wrap_DC_ComputeScaleAndOrigin, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_CalcBoundingBox", (PyCFunction) _wrap_DC_CalcBoundingBox, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_CalcBoundingBoxPoint", (PyCFunction) _wrap_DC_CalcBoundingBoxPoint, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_ResetBoundingBox", (PyCFunction) _wrap_DC_ResetBoundingBox, METH_VARARGS | METH_KEYWORDS, NULL },
 
         """
         return _windows_.Panel_InitDialog(*args, **kwargs)
 
+    def SetFocus(*args, **kwargs):
+        """
+        SetFocus(self)
+
+        Overrides `wx.Window.SetFocus`.  This method uses the (undocumented)
+        mix-in class wxControlContainer which manages the focus and TAB logic
+        for controls which usually have child controls.  In practice, if you
+        call this method and the panel has at least one child window, then the
+        focus will be given to the child window.
+        """
+        return _windows_.Panel_SetFocus(*args, **kwargs)
+
+    def SetFocusIgnoringChildren(*args, **kwargs):
+        """
+        SetFocusIgnoringChildren(self)
+
+        In contrast to `SetFocus` (see above) this will set the focus to the
+        panel even of there are child windows in the panel. This is only
+        rarely needed.
+        """
+        return _windows_.Panel_SetFocusIgnoringChildren(*args, **kwargs)
+
     def GetClassDefaultAttributes(*args, **kwargs):
         """
         GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
         """
         return _windows_.SplitterWindow_GetSashPosition(*args, **kwargs)
 
+    def SetSashGravity(*args, **kwargs):
+        """
+        SetSashGravity(self, double gravity)
+
+        Set the sash gravity.  Gravity is a floating-point factor between 0.0
+        and 1.0 which controls position of sash while resizing the
+        `wx.SplitterWindow`.  The gravity specifies how much the left/top
+        window will grow while resizing.
+        """
+        return _windows_.SplitterWindow_SetSashGravity(*args, **kwargs)
+
+    def GetSashGravity(*args, **kwargs):
+        """
+        GetSashGravity(self) -> double
+
+        Gets the sash gravity.
+
+        :see: `SetSashGravity`
+
+        """
+        return _windows_.SplitterWindow_GetSashGravity(*args, **kwargs)
+
     def SetMinimumPaneSize(*args, **kwargs):
         """
         SetMinimumPaneSize(self, int min)
         return _windows_.MDIChildFrame_Activate(*args, **kwargs)
 
     def Maximize(*args, **kwargs):
-        """Maximize(self, bool maximize)"""
+        """Maximize(self, bool maximize=True)"""
         return _windows_.MDIChildFrame_Maximize(*args, **kwargs)
 
     def Restore(*args, **kwargs):
 
 }
 
 
+static PyObject *_wrap_Panel_SetFocus(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPanel *arg1 = (wxPanel *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:Panel_SetFocus",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPanel,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetFocus();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_Panel_SetFocusIgnoringChildren(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxPanel *arg1 = (wxPanel *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:Panel_SetFocusIgnoringChildren",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPanel,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetFocusIgnoringChildren();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_Panel_GetClassDefaultAttributes(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     int arg1 = (int) wxWINDOW_VARIANT_NORMAL ;
 }
 
 
+static PyObject *_wrap_SplitterWindow_SetSashGravity(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxSplitterWindow *arg1 = (wxSplitterWindow *) 0 ;
+    double arg2 ;
+    PyObject * obj0 = 0 ;
+    PyObject * obj1 = 0 ;
+    char *kwnames[] = {
+        (char *) "self",(char *) "gravity", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:SplitterWindow_SetSashGravity",kwnames,&obj0,&obj1)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxSplitterWindow,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    arg2 = (double)SWIG_As_double(obj1); 
+    if (PyErr_Occurred()) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->SetSashGravity(arg2);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_SplitterWindow_GetSashGravity(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxSplitterWindow *arg1 = (wxSplitterWindow *) 0 ;
+    double result;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SplitterWindow_GetSashGravity",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxSplitterWindow,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (double)((wxSplitterWindow const *)arg1)->GetSashGravity();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_From_double((double)result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_SplitterWindow_SetMinimumPaneSize(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxSplitterWindow *arg1 = (wxSplitterWindow *) 0 ;
 static PyObject *_wrap_MDIChildFrame_Maximize(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxMDIChildFrame *arg1 = (wxMDIChildFrame *) 0 ;
-    bool arg2 ;
+    bool arg2 = (bool) true ;
     PyObject * obj0 = 0 ;
     PyObject * obj1 = 0 ;
     char *kwnames[] = {
         (char *) "self",(char *) "maximize", NULL 
     };
     
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:MDIChildFrame_Maximize",kwnames,&obj0,&obj1)) goto fail;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O|O:MDIChildFrame_Maximize",kwnames,&obj0,&obj1)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxMDIChildFrame,
     SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
-    arg2 = (bool)SWIG_As_bool(obj1); 
-    if (PyErr_Occurred()) SWIG_fail;
+    if (obj1) {
+        arg2 = (bool)SWIG_As_bool(obj1); 
+        if (PyErr_Occurred()) SWIG_fail;
+    }
     {
         PyThreadState* __tstate = wxPyBeginAllowThreads();
         (arg1)->Maximize(arg2);
         { (char *)"new_PrePanel", (PyCFunction) _wrap_new_PrePanel, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_Create", (PyCFunction) _wrap_Panel_Create, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_InitDialog", (PyCFunction) _wrap_Panel_InitDialog, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Panel_SetFocus", (PyCFunction) _wrap_Panel_SetFocus, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"Panel_SetFocusIgnoringChildren", (PyCFunction) _wrap_Panel_SetFocusIgnoringChildren, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_GetClassDefaultAttributes", (PyCFunction) _wrap_Panel_GetClassDefaultAttributes, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"Panel_swigregister", Panel_swigregister, METH_VARARGS, NULL },
         { (char *)"new_ScrolledWindow", (PyCFunction) _wrap_new_ScrolledWindow, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_GetBorderSize", (PyCFunction) _wrap_SplitterWindow_GetBorderSize, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_SetSashPosition", (PyCFunction) _wrap_SplitterWindow_SetSashPosition, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_GetSashPosition", (PyCFunction) _wrap_SplitterWindow_GetSashPosition, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SplitterWindow_SetSashGravity", (PyCFunction) _wrap_SplitterWindow_SetSashGravity, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SplitterWindow_GetSashGravity", (PyCFunction) _wrap_SplitterWindow_GetSashGravity, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_SetMinimumPaneSize", (PyCFunction) _wrap_SplitterWindow_SetMinimumPaneSize, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_GetMinimumPaneSize", (PyCFunction) _wrap_SplitterWindow_GetMinimumPaneSize, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"SplitterWindow_SashHitTest", (PyCFunction) _wrap_SplitterWindow_SashHitTest, METH_VARARGS | METH_KEYWORDS, NULL },
 
     """PreGrid() -> Grid"""
     val = _grid.new_PreGrid(*args, **kwargs)
     val.thisown = 1
-    self._setOORInfo(self)
     return val
 
 def Grid_GetClassDefaultAttributes(*args, **kwargs):
 
     wxMEDIATIMEFORMAT_TIME=0
 };
 
-class WXDLLIMPEXP_MEDIA wxMediaEvent : public wxNotifyEvent
+class wxMediaEvent : public wxNotifyEvent
 {
 public:
     wxMediaEvent(wxEventType, int )    { wxPyRaiseNotImplemented(); }
 
     Return a reference to the current wx.App object.
     """
     return _core_.GetApp(*args, **kwargs)
+
+def SetDefaultPyEncoding(*args, **kwargs):
+    """
+    SetDefaultPyEncoding(string encoding)
+
+    Sets the encoding that wxPython will use when it needs to convert a
+    Python string or unicode object to or from a wxString.
+    """
+    return _core_.SetDefaultPyEncoding(*args, **kwargs)
+
+def GetDefaultPyEncoding(*args, **kwargs):
+    """
+    GetDefaultPyEncoding() -> string
+
+    Gets the current encoding that wxPython will use when it needs to
+    convert a Python string or unicode object to or from a wxString.
+    """
+    return _core_.GetDefaultPyEncoding(*args, **kwargs)
 #----------------------------------------------------------------------
 
 class PyOnDemandOutputWindow:
 
 #----------------------------------------------------------------------------
 
+# Set the default string conversion encoding from the locale
+import locale
+default = locale.getdefaultlocale()[1]
+if default:
+    wx.SetDefaultPyEncoding(default)
+del default
+del locale
+
+#----------------------------------------------------------------------------
+
 class PyDeadObjectError(AttributeError):
     pass
 
 
     wxPyApp* wxPyGetApp() { return (wxPyApp*)wxTheApp; }
 
 
+SWIGSTATICINLINE(int)
+SWIG_AsCharPtr(PyObject *obj, char **val)
+{
+  char* cptr = 0;
+  if (SWIG_AsCharPtrAndSize(obj, &cptr, (size_t*)(0))) {
+    if (val) *val = cptr;
+    return 1;
+  }
+  if (val) {
+    PyErr_SetString(PyExc_TypeError, "a char* is expected");
+  }
+  return 0;
+}
+
+
+SWIGSTATICINLINE(PyObject *)
+SWIG_FromCharPtr(const char* cptr)
+{ 
+  if (cptr) {
+    size_t size = strlen(cptr);
+    if (size > INT_MAX) {
+      return SWIG_NewPointerObj(swig_const_cast(cptr,char*), 
+                               SWIG_TypeQuery("char *"), 0);
+    } else {
+      if (size != 0) {
+       return PyString_FromStringAndSize(cptr, size);
+      } else {
+       return PyString_FromString(cptr);
+      }
+    }
+  }
+  Py_INCREF(Py_None);
+  return Py_None;
+}
+
+
 #ifdef __WXMAC__
 
 // A dummy class that raises an exception if used...    
 }
 
 
+static PyObject *_wrap_SetDefaultPyEncoding(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    char *arg1 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "encoding", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:SetDefaultPyEncoding",kwnames,&obj0)) goto fail;
+    if (!SWIG_AsCharPtr(obj0, (char**)&arg1)) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        wxSetDefaultPyEncoding((char const *)arg1);
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
+static PyObject *_wrap_GetDefaultPyEncoding(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    char *result;
+    char *kwnames[] = {
+        NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)":GetDefaultPyEncoding",kwnames)) goto fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        result = (char *)wxGetDefaultPyEncoding();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    resultobj = SWIG_FromCharPtr(result);
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_new_EventLoop(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxEventLoop *result;
         { (char *)"PostEvent", (PyCFunction) _wrap_PostEvent, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"App_CleanUp", (PyCFunction) _wrap_App_CleanUp, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"GetApp", (PyCFunction) _wrap_GetApp, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"SetDefaultPyEncoding", (PyCFunction) _wrap_SetDefaultPyEncoding, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"GetDefaultPyEncoding", (PyCFunction) _wrap_GetDefaultPyEncoding, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"new_EventLoop", (PyCFunction) _wrap_new_EventLoop, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"delete_EventLoop", (PyCFunction) _wrap_delete_EventLoop, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"EventLoop_Run", (PyCFunction) _wrap_EventLoop_Run, METH_VARARGS | METH_KEYWORDS, NULL },
 
         """
         return _gdi_.DC_SetLogicalFunction(*args, **kwargs)
 
+    def ComputeScaleAndOrigin(*args, **kwargs):
+        """
+        ComputeScaleAndOrigin(self)
+
+        Performs all necessary computations for given platform and context
+        type after each change of scale and origin parameters. Usually called
+        automatically internally after such changes.
+
+        """
+        return _gdi_.DC_ComputeScaleAndOrigin(*args, **kwargs)
+
     def SetOptimization(self, optimize):
         pass
     def GetOptimization(self):
 
 }
 
 
+static PyObject *_wrap_DC_ComputeScaleAndOrigin(PyObject *, PyObject *args, PyObject *kwargs) {
+    PyObject *resultobj;
+    wxDC *arg1 = (wxDC *) 0 ;
+    PyObject * obj0 = 0 ;
+    char *kwnames[] = {
+        (char *) "self", NULL 
+    };
+    
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:DC_ComputeScaleAndOrigin",kwnames,&obj0)) goto fail;
+    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxDC,
+    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
+    {
+        PyThreadState* __tstate = wxPyBeginAllowThreads();
+        (arg1)->ComputeScaleAndOrigin();
+        
+        wxPyEndAllowThreads(__tstate);
+        if (PyErr_Occurred()) SWIG_fail;
+    }
+    Py_INCREF(Py_None); resultobj = Py_None;
+    return resultobj;
+    fail:
+    return NULL;
+}
+
+
 static PyObject *_wrap_DC_CalcBoundingBox(PyObject *, PyObject *args, PyObject *kwargs) {
     PyObject *resultobj;
     wxDC *arg1 = (wxDC *) 0 ;
         { (char *)"DC_SetAxisOrientation", (PyCFunction) _wrap_DC_SetAxisOrientation, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_GetLogicalFunction", (PyCFunction) _wrap_DC_GetLogicalFunction, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_SetLogicalFunction", (PyCFunction) _wrap_DC_SetLogicalFunction, METH_VARARGS | METH_KEYWORDS, NULL },
+        { (char *)"DC_ComputeScaleAndOrigin", (PyCFunction) _wrap_DC_ComputeScaleAndOrigin, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_CalcBoundingBox", (PyCFunction) _wrap_DC_CalcBoundingBox, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_CalcBoundingBoxPoint", (PyCFunction) _wrap_DC_CalcBoundingBoxPoint, METH_VARARGS | METH_KEYWORDS, NULL },
         { (char *)"DC_ResetBoundingBox", (PyCFunction) _wrap_DC_ResetBoundingBox, METH_VARARGS | METH_KEYWORDS, NULL },
 
         """
         SetFocus(self)
 
-        Overrides `wx.Window.SetFocus`.  This method
-        uses the (undocumented) mix-in class wxControlContainer which manages
-        the focus and TAB logic for controls which usually have child controls.
-        In practice, if you call this method and the panel has at least
-        one child window, then the focus will be given to the child window.
-
+        Overrides `wx.Window.SetFocus`.  This method uses the (undocumented)
+        mix-in class wxControlContainer which manages the focus and TAB logic
+        for controls which usually have child controls.  In practice, if you
+        call this method and the panel has at least one child window, then the
+        focus will be given to the child window.
         """
         return _windows_.Panel_SetFocus(*args, **kwargs)