return _resultobj;
 }
 
-#define wxStyledTextCtrl_SetCursor(_swigobj,_swigarg0)  (_swigobj->SetCursor(_swigarg0))
-static PyObject *_wrap_wxStyledTextCtrl_SetCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
+#define wxStyledTextCtrl_SetSTCCursor(_swigobj,_swigarg0)  (_swigobj->SetSTCCursor(_swigarg0))
+static PyObject *_wrap_wxStyledTextCtrl_SetSTCCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     wxStyledTextCtrl * _arg0;
     int  _arg1;
     char *_kwnames[] = { "self","cursorType", NULL };
 
     self = self;
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxStyledTextCtrl_SetCursor",_kwnames,&_argo0,&_arg1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxStyledTextCtrl_SetSTCCursor",_kwnames,&_argo0,&_arg1)) 
         return NULL;
     if (_argo0) {
         if (_argo0 == Py_None) { _arg0 = NULL; }
         else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStyledTextCtrl_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStyledTextCtrl_SetCursor. Expected _wxStyledTextCtrl_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStyledTextCtrl_SetSTCCursor. Expected _wxStyledTextCtrl_p.");
         return NULL;
         }
     }
 {
     PyThreadState* __tstate = wxPyBeginAllowThreads();
-    wxStyledTextCtrl_SetCursor(_arg0,_arg1);
+    wxStyledTextCtrl_SetSTCCursor(_arg0,_arg1);
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
     return _resultobj;
 }
 
-#define wxStyledTextCtrl_GetCursor(_swigobj)  (_swigobj->GetCursor())
-static PyObject *_wrap_wxStyledTextCtrl_GetCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
+#define wxStyledTextCtrl_GetSTCCursor(_swigobj)  (_swigobj->GetSTCCursor())
+static PyObject *_wrap_wxStyledTextCtrl_GetSTCCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
     PyObject * _resultobj;
     int  _result;
     wxStyledTextCtrl * _arg0;
     char *_kwnames[] = { "self", NULL };
 
     self = self;
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxStyledTextCtrl_GetCursor",_kwnames,&_argo0)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxStyledTextCtrl_GetSTCCursor",_kwnames,&_argo0)) 
         return NULL;
     if (_argo0) {
         if (_argo0 == Py_None) { _arg0 = NULL; }
         else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStyledTextCtrl_p")) {
-            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStyledTextCtrl_GetCursor. Expected _wxStyledTextCtrl_p.");
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStyledTextCtrl_GetSTCCursor. Expected _wxStyledTextCtrl_p.");
         return NULL;
         }
     }
 {
     PyThreadState* __tstate = wxPyBeginAllowThreads();
-    _result = (int )wxStyledTextCtrl_GetCursor(_arg0);
+    _result = (int )wxStyledTextCtrl_GetSTCCursor(_arg0);
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;
     return _resultobj;
 }
 
+#define wxStyledTextCtrl_DoDragOver(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DoDragOver(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxStyledTextCtrl_DoDragOver(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    wxDragResult  _result;
+    wxStyledTextCtrl * _arg0;
+    wxCoord  _arg1;
+    wxCoord  _arg2;
+    wxDragResult  _arg3;
+    PyObject * _argo0 = 0;
+    char *_kwnames[] = { "self","x","y","def", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiii:wxStyledTextCtrl_DoDragOver",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStyledTextCtrl_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStyledTextCtrl_DoDragOver. Expected _wxStyledTextCtrl_p.");
+        return NULL;
+        }
+    }
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    _result = (wxDragResult )wxStyledTextCtrl_DoDragOver(_arg0,_arg1,_arg2,_arg3);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    _resultobj = Py_BuildValue("i",_result);
+    return _resultobj;
+}
+
+#define wxStyledTextCtrl_DoDropText(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->DoDropText(_swigarg0,_swigarg1,_swigarg2))
+static PyObject *_wrap_wxStyledTextCtrl_DoDropText(PyObject *self, PyObject *args, PyObject *kwargs) {
+    PyObject * _resultobj;
+    bool  _result;
+    wxStyledTextCtrl * _arg0;
+    long  _arg1;
+    long  _arg2;
+    wxString * _arg3;
+    PyObject * _argo0 = 0;
+    PyObject * _obj3 = 0;
+    char *_kwnames[] = { "self","x","y","data", NULL };
+
+    self = self;
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OllO:wxStyledTextCtrl_DoDropText",_kwnames,&_argo0,&_arg1,&_arg2,&_obj3)) 
+        return NULL;
+    if (_argo0) {
+        if (_argo0 == Py_None) { _arg0 = NULL; }
+        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxStyledTextCtrl_p")) {
+            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStyledTextCtrl_DoDropText. Expected _wxStyledTextCtrl_p.");
+        return NULL;
+        }
+    }
+{
+    _arg3 = wxString_in_helper(_obj3);
+    if (_arg3 == NULL)
+        return NULL;
+}
+{
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    _result = (bool )wxStyledTextCtrl_DoDropText(_arg0,_arg1,_arg2,*_arg3);
+
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) return NULL;
+}    _resultobj = Py_BuildValue("i",_result);
+{
+    if (_obj3)
+        delete _arg3;
+}
+    return _resultobj;
+}
+
 static void *SwigwxStyledTextEventTowxCommandEvent(void *ptr) {
     wxStyledTextEvent *src;
     wxCommandEvent *dest;
         { "wxStyledTextEvent_SetPosition", (PyCFunction) _wrap_wxStyledTextEvent_SetPosition, METH_VARARGS | METH_KEYWORDS },
         { "delete_wxStyledTextEvent", (PyCFunction) _wrap_delete_wxStyledTextEvent, METH_VARARGS | METH_KEYWORDS },
         { "new_wxStyledTextEvent", (PyCFunction) _wrap_new_wxStyledTextEvent, METH_VARARGS | METH_KEYWORDS },
+        { "wxStyledTextCtrl_DoDropText", (PyCFunction) _wrap_wxStyledTextCtrl_DoDropText, METH_VARARGS | METH_KEYWORDS },
+        { "wxStyledTextCtrl_DoDragOver", (PyCFunction) _wrap_wxStyledTextCtrl_DoDragOver, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_LoadFile", (PyCFunction) _wrap_wxStyledTextCtrl_LoadFile, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_SaveFile", (PyCFunction) _wrap_wxStyledTextCtrl_SaveFile, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_SetLastKeydownProcessed", (PyCFunction) _wrap_wxStyledTextCtrl_SetLastKeydownProcessed, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_WordPartLeft", (PyCFunction) _wrap_wxStyledTextCtrl_WordPartLeft, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_GetControlCharSymbol", (PyCFunction) _wrap_wxStyledTextCtrl_GetControlCharSymbol, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_SetControlCharSymbol", (PyCFunction) _wrap_wxStyledTextCtrl_SetControlCharSymbol, METH_VARARGS | METH_KEYWORDS },
-        { "wxStyledTextCtrl_GetCursor", (PyCFunction) _wrap_wxStyledTextCtrl_GetCursor, METH_VARARGS | METH_KEYWORDS },
-        { "wxStyledTextCtrl_SetCursor", (PyCFunction) _wrap_wxStyledTextCtrl_SetCursor, METH_VARARGS | METH_KEYWORDS },
+        { "wxStyledTextCtrl_GetSTCCursor", (PyCFunction) _wrap_wxStyledTextCtrl_GetSTCCursor, METH_VARARGS | METH_KEYWORDS },
+        { "wxStyledTextCtrl_SetSTCCursor", (PyCFunction) _wrap_wxStyledTextCtrl_SetSTCCursor, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_GetMouseDownCaptures", (PyCFunction) _wrap_wxStyledTextCtrl_GetMouseDownCaptures, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_SetMouseDownCaptures", (PyCFunction) _wrap_wxStyledTextCtrl_SetMouseDownCaptures, METH_VARARGS | METH_KEYWORDS },
         { "wxStyledTextCtrl_GetStatus", (PyCFunction) _wrap_wxStyledTextCtrl_GetStatus, METH_VARARGS | METH_KEYWORDS },
         PyDict_SetItemString(d,"wxSTC_INDIC_TT", PyInt_FromLong((long) 2));
         PyDict_SetItemString(d,"wxSTC_INDIC_DIAGONAL", PyInt_FromLong((long) 3));
         PyDict_SetItemString(d,"wxSTC_INDIC_STRIKE", PyInt_FromLong((long) 4));
+        PyDict_SetItemString(d,"wxSTC_INDIC_HIDDEN", PyInt_FromLong((long) 5));
         PyDict_SetItemString(d,"wxSTC_INDIC0_MASK", PyInt_FromLong((long) 0x20));
         PyDict_SetItemString(d,"wxSTC_INDIC1_MASK", PyInt_FromLong((long) 0x40));
         PyDict_SetItemString(d,"wxSTC_INDIC2_MASK", PyInt_FromLong((long) 0x80));
         PyDict_SetItemString(d,"wxSTC_CARET_STRICT", PyInt_FromLong((long) 0x04));
         PyDict_SetItemString(d,"wxSTC_CARET_JUMPS", PyInt_FromLong((long) 0x10));
         PyDict_SetItemString(d,"wxSTC_CARET_EVEN", PyInt_FromLong((long) 0x08));
+        PyDict_SetItemString(d,"wxSTC_KEYWORDSET_MAX", PyInt_FromLong((long) 8));
         PyDict_SetItemString(d,"wxSTC_MOD_INSERTTEXT", PyInt_FromLong((long) 0x1));
         PyDict_SetItemString(d,"wxSTC_MOD_DELETETEXT", PyInt_FromLong((long) 0x2));
         PyDict_SetItemString(d,"wxSTC_MOD_CHANGESTYLE", PyInt_FromLong((long) 0x4));
         PyDict_SetItemString(d,"wxSTC_LEX_POV", PyInt_FromLong((long) 39));
         PyDict_SetItemString(d,"wxSTC_LEX_LOUT", PyInt_FromLong((long) 40));
         PyDict_SetItemString(d,"wxSTC_LEX_ESCRIPT", PyInt_FromLong((long) 41));
+        PyDict_SetItemString(d,"wxSTC_LEX_PS", PyInt_FromLong((long) 42));
+        PyDict_SetItemString(d,"wxSTC_LEX_NSIS", PyInt_FromLong((long) 43));
+        PyDict_SetItemString(d,"wxSTC_LEX_MMIXAL", PyInt_FromLong((long) 44));
         PyDict_SetItemString(d,"wxSTC_LEX_AUTOMATIC", PyInt_FromLong((long) 1000));
         PyDict_SetItemString(d,"wxSTC_P_DEFAULT", PyInt_FromLong((long) 0));
         PyDict_SetItemString(d,"wxSTC_P_COMMENTLINE", PyInt_FromLong((long) 1));
         PyDict_SetItemString(d,"wxSTC_LUA_WORD4", PyInt_FromLong((long) 15));
         PyDict_SetItemString(d,"wxSTC_LUA_WORD5", PyInt_FromLong((long) 16));
         PyDict_SetItemString(d,"wxSTC_LUA_WORD6", PyInt_FromLong((long) 17));
+        PyDict_SetItemString(d,"wxSTC_LUA_WORD7", PyInt_FromLong((long) 18));
+        PyDict_SetItemString(d,"wxSTC_LUA_WORD8", PyInt_FromLong((long) 19));
         PyDict_SetItemString(d,"wxSTC_ERR_DEFAULT", PyInt_FromLong((long) 0));
         PyDict_SetItemString(d,"wxSTC_ERR_PYTHON", PyInt_FromLong((long) 1));
         PyDict_SetItemString(d,"wxSTC_ERR_GCC", PyInt_FromLong((long) 2));
         PyDict_SetItemString(d,"wxSTC_POV_DEFAULT", PyInt_FromLong((long) 0));
         PyDict_SetItemString(d,"wxSTC_POV_COMMENT", PyInt_FromLong((long) 1));
         PyDict_SetItemString(d,"wxSTC_POV_COMMENTLINE", PyInt_FromLong((long) 2));
-        PyDict_SetItemString(d,"wxSTC_POV_COMMENTDOC", PyInt_FromLong((long) 3));
-        PyDict_SetItemString(d,"wxSTC_POV_NUMBER", PyInt_FromLong((long) 4));
-        PyDict_SetItemString(d,"wxSTC_POV_WORD", PyInt_FromLong((long) 5));
+        PyDict_SetItemString(d,"wxSTC_POV_NUMBER", PyInt_FromLong((long) 3));
+        PyDict_SetItemString(d,"wxSTC_POV_OPERATOR", PyInt_FromLong((long) 4));
+        PyDict_SetItemString(d,"wxSTC_POV_IDENTIFIER", PyInt_FromLong((long) 5));
         PyDict_SetItemString(d,"wxSTC_POV_STRING", PyInt_FromLong((long) 6));
-        PyDict_SetItemString(d,"wxSTC_POV_OPERATOR", PyInt_FromLong((long) 7));
-        PyDict_SetItemString(d,"wxSTC_POV_IDENTIFIER", PyInt_FromLong((long) 8));
-        PyDict_SetItemString(d,"wxSTC_POV_BRACE", PyInt_FromLong((long) 9));
+        PyDict_SetItemString(d,"wxSTC_POV_STRINGEOL", PyInt_FromLong((long) 7));
+        PyDict_SetItemString(d,"wxSTC_POV_DIRECTIVE", PyInt_FromLong((long) 8));
+        PyDict_SetItemString(d,"wxSTC_POV_BADDIRECTIVE", PyInt_FromLong((long) 9));
         PyDict_SetItemString(d,"wxSTC_POV_WORD2", PyInt_FromLong((long) 10));
+        PyDict_SetItemString(d,"wxSTC_POV_WORD3", PyInt_FromLong((long) 11));
+        PyDict_SetItemString(d,"wxSTC_POV_WORD4", PyInt_FromLong((long) 12));
+        PyDict_SetItemString(d,"wxSTC_POV_WORD5", PyInt_FromLong((long) 13));
+        PyDict_SetItemString(d,"wxSTC_POV_WORD6", PyInt_FromLong((long) 14));
+        PyDict_SetItemString(d,"wxSTC_POV_WORD7", PyInt_FromLong((long) 15));
+        PyDict_SetItemString(d,"wxSTC_POV_WORD8", PyInt_FromLong((long) 16));
         PyDict_SetItemString(d,"wxSTC_LOUT_DEFAULT", PyInt_FromLong((long) 0));
         PyDict_SetItemString(d,"wxSTC_LOUT_COMMENT", PyInt_FromLong((long) 1));
         PyDict_SetItemString(d,"wxSTC_LOUT_NUMBER", PyInt_FromLong((long) 2));
         PyDict_SetItemString(d,"wxSTC_ESCRIPT_BRACE", PyInt_FromLong((long) 9));
         PyDict_SetItemString(d,"wxSTC_ESCRIPT_WORD2", PyInt_FromLong((long) 10));
         PyDict_SetItemString(d,"wxSTC_ESCRIPT_WORD3", PyInt_FromLong((long) 11));
+        PyDict_SetItemString(d,"wxSTC_PS_DEFAULT", PyInt_FromLong((long) 0));
+        PyDict_SetItemString(d,"wxSTC_PS_COMMENT", PyInt_FromLong((long) 1));
+        PyDict_SetItemString(d,"wxSTC_PS_DSC_COMMENT", PyInt_FromLong((long) 2));
+        PyDict_SetItemString(d,"wxSTC_PS_DSC_VALUE", PyInt_FromLong((long) 3));
+        PyDict_SetItemString(d,"wxSTC_PS_NUMBER", PyInt_FromLong((long) 4));
+        PyDict_SetItemString(d,"wxSTC_PS_NAME", PyInt_FromLong((long) 5));
+        PyDict_SetItemString(d,"wxSTC_PS_KEYWORD", PyInt_FromLong((long) 6));
+        PyDict_SetItemString(d,"wxSTC_PS_LITERAL", PyInt_FromLong((long) 7));
+        PyDict_SetItemString(d,"wxSTC_PS_IMMEVAL", PyInt_FromLong((long) 8));
+        PyDict_SetItemString(d,"wxSTC_PS_PAREN_ARRAY", PyInt_FromLong((long) 9));
+        PyDict_SetItemString(d,"wxSTC_PS_PAREN_DICT", PyInt_FromLong((long) 10));
+        PyDict_SetItemString(d,"wxSTC_PS_PAREN_PROC", PyInt_FromLong((long) 11));
+        PyDict_SetItemString(d,"wxSTC_PS_TEXT", PyInt_FromLong((long) 12));
+        PyDict_SetItemString(d,"wxSTC_PS_HEXSTRING", PyInt_FromLong((long) 13));
+        PyDict_SetItemString(d,"wxSTC_PS_BASE85STRING", PyInt_FromLong((long) 14));
+        PyDict_SetItemString(d,"wxSTC_PS_BADSTRINGCHAR", PyInt_FromLong((long) 15));
+        PyDict_SetItemString(d,"wxSTC_NSIS_DEFAULT", PyInt_FromLong((long) 0));
+        PyDict_SetItemString(d,"wxSTC_NSIS_COMMENT", PyInt_FromLong((long) 1));
+        PyDict_SetItemString(d,"wxSTC_NSIS_STRINGDQ", PyInt_FromLong((long) 2));
+        PyDict_SetItemString(d,"wxSTC_NSIS_STRINGLQ", PyInt_FromLong((long) 3));
+        PyDict_SetItemString(d,"wxSTC_NSIS_STRINGRQ", PyInt_FromLong((long) 4));
+        PyDict_SetItemString(d,"wxSTC_NSIS_FUNCTION", PyInt_FromLong((long) 5));
+        PyDict_SetItemString(d,"wxSTC_NSIS_VARIABLE", PyInt_FromLong((long) 6));
+        PyDict_SetItemString(d,"wxSTC_NSIS_LABEL", PyInt_FromLong((long) 7));
+        PyDict_SetItemString(d,"wxSTC_NSIS_USERDEFINED", PyInt_FromLong((long) 8));
+        PyDict_SetItemString(d,"wxSTC_NSIS_SECTIONDEF", PyInt_FromLong((long) 9));
+        PyDict_SetItemString(d,"wxSTC_NSIS_SUBSECTIONDEF", PyInt_FromLong((long) 10));
+        PyDict_SetItemString(d,"wxSTC_NSIS_IFDEFINEDEF", PyInt_FromLong((long) 11));
+        PyDict_SetItemString(d,"wxSTC_NSIS_MACRODEF", PyInt_FromLong((long) 12));
+        PyDict_SetItemString(d,"wxSTC_NSIS_STRINGVAR", PyInt_FromLong((long) 13));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_LEADWS", PyInt_FromLong((long) 0));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_COMMENT", PyInt_FromLong((long) 1));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_LABEL", PyInt_FromLong((long) 2));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPCODE", PyInt_FromLong((long) 3));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPCODE_PRE", PyInt_FromLong((long) 4));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPCODE_VALID", PyInt_FromLong((long) 5));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPCODE_UNKNOWN", PyInt_FromLong((long) 6));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPCODE_POST", PyInt_FromLong((long) 7));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPERANDS", PyInt_FromLong((long) 8));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_NUMBER", PyInt_FromLong((long) 9));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_REF", PyInt_FromLong((long) 10));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_CHAR", PyInt_FromLong((long) 11));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_STRING", PyInt_FromLong((long) 12));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_REGISTER", PyInt_FromLong((long) 13));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_HEX", PyInt_FromLong((long) 14));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_OPERATOR", PyInt_FromLong((long) 15));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_SYMBOL", PyInt_FromLong((long) 16));
+        PyDict_SetItemString(d,"wxSTC_MMIXAL_INCLUDE", PyInt_FromLong((long) 17));
         PyDict_SetItemString(d,"wxSTC_CMD_REDO", PyInt_FromLong((long) 2011));
         PyDict_SetItemString(d,"wxSTC_CMD_SELECTALL", PyInt_FromLong((long) 2013));
         PyDict_SetItemString(d,"wxSTC_CMD_UNDO", PyInt_FromLong((long) 2176));
 
     def GetMouseDownCaptures(self, *_args, **_kwargs):
         val = stc_c.wxStyledTextCtrl_GetMouseDownCaptures(self, *_args, **_kwargs)
         return val
-    def SetCursor(self, *_args, **_kwargs):
-        val = stc_c.wxStyledTextCtrl_SetCursor(self, *_args, **_kwargs)
+    def SetSTCCursor(self, *_args, **_kwargs):
+        val = stc_c.wxStyledTextCtrl_SetSTCCursor(self, *_args, **_kwargs)
         return val
-    def GetCursor(self, *_args, **_kwargs):
-        val = stc_c.wxStyledTextCtrl_GetCursor(self, *_args, **_kwargs)
+    def GetSTCCursor(self, *_args, **_kwargs):
+        val = stc_c.wxStyledTextCtrl_GetSTCCursor(self, *_args, **_kwargs)
         return val
     def SetControlCharSymbol(self, *_args, **_kwargs):
         val = stc_c.wxStyledTextCtrl_SetControlCharSymbol(self, *_args, **_kwargs)
     def LoadFile(self, *_args, **_kwargs):
         val = stc_c.wxStyledTextCtrl_LoadFile(self, *_args, **_kwargs)
         return val
+    def DoDragOver(self, *_args, **_kwargs):
+        val = stc_c.wxStyledTextCtrl_DoDragOver(self, *_args, **_kwargs)
+        return val
+    def DoDropText(self, *_args, **_kwargs):
+        val = stc_c.wxStyledTextCtrl_DoDropText(self, *_args, **_kwargs)
+        return val
     def __repr__(self):
         return "<%s.%s instance; proxy of C++ wxStyledTextCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this)
 class wxStyledTextCtrl(wxStyledTextCtrlPtr):
 wxSTC_INDIC_TT = stc_c.wxSTC_INDIC_TT
 wxSTC_INDIC_DIAGONAL = stc_c.wxSTC_INDIC_DIAGONAL
 wxSTC_INDIC_STRIKE = stc_c.wxSTC_INDIC_STRIKE
+wxSTC_INDIC_HIDDEN = stc_c.wxSTC_INDIC_HIDDEN
 wxSTC_INDIC0_MASK = stc_c.wxSTC_INDIC0_MASK
 wxSTC_INDIC1_MASK = stc_c.wxSTC_INDIC1_MASK
 wxSTC_INDIC2_MASK = stc_c.wxSTC_INDIC2_MASK
 wxSTC_CARET_STRICT = stc_c.wxSTC_CARET_STRICT
 wxSTC_CARET_JUMPS = stc_c.wxSTC_CARET_JUMPS
 wxSTC_CARET_EVEN = stc_c.wxSTC_CARET_EVEN
+wxSTC_KEYWORDSET_MAX = stc_c.wxSTC_KEYWORDSET_MAX
 wxSTC_MOD_INSERTTEXT = stc_c.wxSTC_MOD_INSERTTEXT
 wxSTC_MOD_DELETETEXT = stc_c.wxSTC_MOD_DELETETEXT
 wxSTC_MOD_CHANGESTYLE = stc_c.wxSTC_MOD_CHANGESTYLE
 wxSTC_LEX_POV = stc_c.wxSTC_LEX_POV
 wxSTC_LEX_LOUT = stc_c.wxSTC_LEX_LOUT
 wxSTC_LEX_ESCRIPT = stc_c.wxSTC_LEX_ESCRIPT
+wxSTC_LEX_PS = stc_c.wxSTC_LEX_PS
+wxSTC_LEX_NSIS = stc_c.wxSTC_LEX_NSIS
+wxSTC_LEX_MMIXAL = stc_c.wxSTC_LEX_MMIXAL
 wxSTC_LEX_AUTOMATIC = stc_c.wxSTC_LEX_AUTOMATIC
 wxSTC_P_DEFAULT = stc_c.wxSTC_P_DEFAULT
 wxSTC_P_COMMENTLINE = stc_c.wxSTC_P_COMMENTLINE
 wxSTC_LUA_WORD4 = stc_c.wxSTC_LUA_WORD4
 wxSTC_LUA_WORD5 = stc_c.wxSTC_LUA_WORD5
 wxSTC_LUA_WORD6 = stc_c.wxSTC_LUA_WORD6
+wxSTC_LUA_WORD7 = stc_c.wxSTC_LUA_WORD7
+wxSTC_LUA_WORD8 = stc_c.wxSTC_LUA_WORD8
 wxSTC_ERR_DEFAULT = stc_c.wxSTC_ERR_DEFAULT
 wxSTC_ERR_PYTHON = stc_c.wxSTC_ERR_PYTHON
 wxSTC_ERR_GCC = stc_c.wxSTC_ERR_GCC
 wxSTC_POV_DEFAULT = stc_c.wxSTC_POV_DEFAULT
 wxSTC_POV_COMMENT = stc_c.wxSTC_POV_COMMENT
 wxSTC_POV_COMMENTLINE = stc_c.wxSTC_POV_COMMENTLINE
-wxSTC_POV_COMMENTDOC = stc_c.wxSTC_POV_COMMENTDOC
 wxSTC_POV_NUMBER = stc_c.wxSTC_POV_NUMBER
-wxSTC_POV_WORD = stc_c.wxSTC_POV_WORD
-wxSTC_POV_STRING = stc_c.wxSTC_POV_STRING
 wxSTC_POV_OPERATOR = stc_c.wxSTC_POV_OPERATOR
 wxSTC_POV_IDENTIFIER = stc_c.wxSTC_POV_IDENTIFIER
-wxSTC_POV_BRACE = stc_c.wxSTC_POV_BRACE
+wxSTC_POV_STRING = stc_c.wxSTC_POV_STRING
+wxSTC_POV_STRINGEOL = stc_c.wxSTC_POV_STRINGEOL
+wxSTC_POV_DIRECTIVE = stc_c.wxSTC_POV_DIRECTIVE
+wxSTC_POV_BADDIRECTIVE = stc_c.wxSTC_POV_BADDIRECTIVE
 wxSTC_POV_WORD2 = stc_c.wxSTC_POV_WORD2
+wxSTC_POV_WORD3 = stc_c.wxSTC_POV_WORD3
+wxSTC_POV_WORD4 = stc_c.wxSTC_POV_WORD4
+wxSTC_POV_WORD5 = stc_c.wxSTC_POV_WORD5
+wxSTC_POV_WORD6 = stc_c.wxSTC_POV_WORD6
+wxSTC_POV_WORD7 = stc_c.wxSTC_POV_WORD7
+wxSTC_POV_WORD8 = stc_c.wxSTC_POV_WORD8
 wxSTC_LOUT_DEFAULT = stc_c.wxSTC_LOUT_DEFAULT
 wxSTC_LOUT_COMMENT = stc_c.wxSTC_LOUT_COMMENT
 wxSTC_LOUT_NUMBER = stc_c.wxSTC_LOUT_NUMBER
 wxSTC_ESCRIPT_BRACE = stc_c.wxSTC_ESCRIPT_BRACE
 wxSTC_ESCRIPT_WORD2 = stc_c.wxSTC_ESCRIPT_WORD2
 wxSTC_ESCRIPT_WORD3 = stc_c.wxSTC_ESCRIPT_WORD3
+wxSTC_PS_DEFAULT = stc_c.wxSTC_PS_DEFAULT
+wxSTC_PS_COMMENT = stc_c.wxSTC_PS_COMMENT
+wxSTC_PS_DSC_COMMENT = stc_c.wxSTC_PS_DSC_COMMENT
+wxSTC_PS_DSC_VALUE = stc_c.wxSTC_PS_DSC_VALUE
+wxSTC_PS_NUMBER = stc_c.wxSTC_PS_NUMBER
+wxSTC_PS_NAME = stc_c.wxSTC_PS_NAME
+wxSTC_PS_KEYWORD = stc_c.wxSTC_PS_KEYWORD
+wxSTC_PS_LITERAL = stc_c.wxSTC_PS_LITERAL
+wxSTC_PS_IMMEVAL = stc_c.wxSTC_PS_IMMEVAL
+wxSTC_PS_PAREN_ARRAY = stc_c.wxSTC_PS_PAREN_ARRAY
+wxSTC_PS_PAREN_DICT = stc_c.wxSTC_PS_PAREN_DICT
+wxSTC_PS_PAREN_PROC = stc_c.wxSTC_PS_PAREN_PROC
+wxSTC_PS_TEXT = stc_c.wxSTC_PS_TEXT
+wxSTC_PS_HEXSTRING = stc_c.wxSTC_PS_HEXSTRING
+wxSTC_PS_BASE85STRING = stc_c.wxSTC_PS_BASE85STRING
+wxSTC_PS_BADSTRINGCHAR = stc_c.wxSTC_PS_BADSTRINGCHAR
+wxSTC_NSIS_DEFAULT = stc_c.wxSTC_NSIS_DEFAULT
+wxSTC_NSIS_COMMENT = stc_c.wxSTC_NSIS_COMMENT
+wxSTC_NSIS_STRINGDQ = stc_c.wxSTC_NSIS_STRINGDQ
+wxSTC_NSIS_STRINGLQ = stc_c.wxSTC_NSIS_STRINGLQ
+wxSTC_NSIS_STRINGRQ = stc_c.wxSTC_NSIS_STRINGRQ
+wxSTC_NSIS_FUNCTION = stc_c.wxSTC_NSIS_FUNCTION
+wxSTC_NSIS_VARIABLE = stc_c.wxSTC_NSIS_VARIABLE
+wxSTC_NSIS_LABEL = stc_c.wxSTC_NSIS_LABEL
+wxSTC_NSIS_USERDEFINED = stc_c.wxSTC_NSIS_USERDEFINED
+wxSTC_NSIS_SECTIONDEF = stc_c.wxSTC_NSIS_SECTIONDEF
+wxSTC_NSIS_SUBSECTIONDEF = stc_c.wxSTC_NSIS_SUBSECTIONDEF
+wxSTC_NSIS_IFDEFINEDEF = stc_c.wxSTC_NSIS_IFDEFINEDEF
+wxSTC_NSIS_MACRODEF = stc_c.wxSTC_NSIS_MACRODEF
+wxSTC_NSIS_STRINGVAR = stc_c.wxSTC_NSIS_STRINGVAR
+wxSTC_MMIXAL_LEADWS = stc_c.wxSTC_MMIXAL_LEADWS
+wxSTC_MMIXAL_COMMENT = stc_c.wxSTC_MMIXAL_COMMENT
+wxSTC_MMIXAL_LABEL = stc_c.wxSTC_MMIXAL_LABEL
+wxSTC_MMIXAL_OPCODE = stc_c.wxSTC_MMIXAL_OPCODE
+wxSTC_MMIXAL_OPCODE_PRE = stc_c.wxSTC_MMIXAL_OPCODE_PRE
+wxSTC_MMIXAL_OPCODE_VALID = stc_c.wxSTC_MMIXAL_OPCODE_VALID
+wxSTC_MMIXAL_OPCODE_UNKNOWN = stc_c.wxSTC_MMIXAL_OPCODE_UNKNOWN
+wxSTC_MMIXAL_OPCODE_POST = stc_c.wxSTC_MMIXAL_OPCODE_POST
+wxSTC_MMIXAL_OPERANDS = stc_c.wxSTC_MMIXAL_OPERANDS
+wxSTC_MMIXAL_NUMBER = stc_c.wxSTC_MMIXAL_NUMBER
+wxSTC_MMIXAL_REF = stc_c.wxSTC_MMIXAL_REF
+wxSTC_MMIXAL_CHAR = stc_c.wxSTC_MMIXAL_CHAR
+wxSTC_MMIXAL_STRING = stc_c.wxSTC_MMIXAL_STRING
+wxSTC_MMIXAL_REGISTER = stc_c.wxSTC_MMIXAL_REGISTER
+wxSTC_MMIXAL_HEX = stc_c.wxSTC_MMIXAL_HEX
+wxSTC_MMIXAL_OPERATOR = stc_c.wxSTC_MMIXAL_OPERATOR
+wxSTC_MMIXAL_SYMBOL = stc_c.wxSTC_MMIXAL_SYMBOL
+wxSTC_MMIXAL_INCLUDE = stc_c.wxSTC_MMIXAL_INCLUDE
 wxSTC_CMD_REDO = stc_c.wxSTC_CMD_REDO
 wxSTC_CMD_SELECTALL = stc_c.wxSTC_CMD_SELECTALL
 wxSTC_CMD_UNDO = stc_c.wxSTC_CMD_UNDO
 
 
 #ifdef __WXMSW__
 #include <wx/msw/private.h>
+#include <wx/dynload.h>
 #endif
 
 
-void wxDrawWindowOnDC(wxWindow* window, const wxDC& dc)
+void wxDrawWindowOnDC(wxWindow* window, const wxDC& dc, int method)
 {
 #ifdef __WXMSW__
-    ::SendMessage(GetHwndOf(window), WM_PAINT, (long)GetHdcOf(dc), 0);
-//     ::SendMessage(GetHwndOf(window), WM_PRINTCLIENT, (long)GetHdcOf(dc),
-//                   PRF_CLIENT | PRF_NONCLIENT | PRF_CHILDREN );
+
+    switch (method)
+    {
+        case 1:
+            // This one only partially works.  Appears to be an undocumented
+            // "standard" convention that not all widgets adhear to.  For
+            // example, for some widgets backgrounds or non-client areas may
+            // not be painted.
+            ::SendMessage(GetHwndOf(window), WM_PAINT, (long)GetHdcOf(dc), 0);
+            break;
+
+        case 2:
+            // This one works much better, except for on XP.  On Win2k nearly
+            // all widgets and their children are captured correctly[**].  On
+            // XP with Themes activated most native widgets draw only
+            // partially, if at all.  Without themes it works just like on
+            // Win2k.
+            //
+            // ** For example the radio buttons in a wxRadioBox are not its
+            // children by default, but you can capture it via the panel
+            // instead, or change RADIOBTN_PARENT_IS_RADIOBOX in radiobox.cpp.
+            ::SendMessage(GetHwndOf(window), WM_PRINT, (long)GetHdcOf(dc),
+                          PRF_CLIENT | PRF_NONCLIENT | PRF_CHILDREN |
+                          PRF_ERASEBKGND | PRF_OWNED );
+            break;
+
+        case 3:
+            // This one is only defined in the latest SDK and is only
+            // available on XP.  MSDN says it is similar to sending WM_PRINT
+            // so I expect that it will work similar to the above.  Since it
+            // is avaialble only on XP, it can't be compiled like this and
+            // will have to be loaded dynamically.
+            // //::PrintWindow(GetHwndOf(window), GetHdcOf(dc), 0); //break;
+
+            // fall through
+
+        case 4:
+            // Use PrintWindow if available, or fallback to WM_PRINT
+            // otherwise.  Unfortunately using PrintWindow is even worse than
+            // WM_PRINT.  For most native widgets nothing is drawn to the dc
+            // at all, with or without Themes.
+            typedef BOOL (WINAPI *PrintWindow_t)(HWND, HDC, UINT);
+            static bool s_triedToLoad = false;
+            static PrintWindow_t pfnPrintWindow = NULL;
+            if ( !s_triedToLoad )
+            {
+
+                s_triedToLoad = true;
+                wxDynamicLibrary dllUser32(_T("user32.dll"));
+                if ( dllUser32.IsLoaded() )
+                {
+                    wxLogNull nolog;  // Don't report errors here
+                    pfnPrintWindow = (PrintWindow_t)dllUser32.GetSymbol(_T("PrintWindow"));
+                }
+            }
+            if (pfnPrintWindow)
+            {
+                printf("Using PrintWindow\n");
+                pfnPrintWindow(GetHwndOf(window), GetHdcOf(dc), 0);
+            }
+            else
+            {
+                printf("Using WM_PRINT\n");
+                ::SendMessage(GetHwndOf(window), WM_PRINT, (long)GetHdcOf(dc),
+                              PRF_CLIENT | PRF_NONCLIENT | PRF_CHILDREN | PRF_ERASEBKGND | PRF_OWNED );
+            }
+    }
 #endif
 }
 
     PyObject * _resultobj;
     wxWindow * _arg0;
     wxDC * _arg1;
+    int  _arg2;
     PyObject * _argo0 = 0;
     PyObject * _argo1 = 0;
-    char *_kwnames[] = { "window","dc", NULL };
+    char *_kwnames[] = { "window","dc","method", NULL };
 
     self = self;
-    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDrawWindowOnDC",_kwnames,&_argo0,&_argo1)) 
+    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOi:wxDrawWindowOnDC",_kwnames,&_argo0,&_argo1,&_arg2)) 
         return NULL;
     if (_argo0) {
         if (_argo0 == Py_None) { _arg0 = NULL; }
     }
 {
     PyThreadState* __tstate = wxPyBeginAllowThreads();
-    wxDrawWindowOnDC(_arg0,*_arg1);
+    wxDrawWindowOnDC(_arg0,*_arg1,_arg2);
 
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) return NULL;