From db0ff83efbd6105c04d5ab84c85094e887e97b9a Mon Sep 17 00:00:00 2001 From: Robin Dunn <robin@alldunn.com> Date: Mon, 8 Apr 2002 20:56:34 +0000 Subject: [PATCH] Updates to match recent CVS changes. Plugged some resource count leaks. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15042 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/src/controls.i | 4 + wxPython/src/controls2.i | 4 + wxPython/src/events.i | 22 +++-- wxPython/src/fonts.i | 6 +- wxPython/src/grid.i | 17 +++- wxPython/src/helpers.cpp | 46 +++++++-- wxPython/src/helpers.h | 18 +++- wxPython/src/image.i | 10 +- wxPython/src/msw/controls.cpp | 38 +++++++ wxPython/src/msw/controls.py | 3 + wxPython/src/msw/controls2.cpp | 3 + wxPython/src/msw/controls2.py | 3 + wxPython/src/msw/events.cpp | 176 +++++++++++++++++++++++++++++++++ wxPython/src/msw/events.py | 16 +++ wxPython/src/msw/fonts.cpp | 62 +++++++++++- wxPython/src/msw/fonts.py | 10 ++ wxPython/src/msw/grid.cpp | 17 +++- wxPython/src/msw/image.cpp | 50 ---------- wxPython/src/msw/image.py | 3 - 19 files changed, 427 insertions(+), 81 deletions(-) diff --git a/wxPython/src/controls.i b/wxPython/src/controls.i index bb8a78bfff..64e69048f4 100644 --- a/wxPython/src/controls.i +++ b/wxPython/src/controls.i @@ -809,6 +809,10 @@ public: void WriteText(const wxString& text); void AppendText(const wxString& text); + // insert the character which would have resulted from this key event, + // return TRUE if anything has been inserted + bool EmulateKeyPress(const wxKeyEvent& event); + // text control under some platforms supports the text styles: these // methods allow to apply the given text style to the given selection or to // set/get the style which will be used for all appended text diff --git a/wxPython/src/controls2.i b/wxPython/src/controls2.i index 2ad60661cc..36512cc58b 100644 --- a/wxPython/src/controls2.i +++ b/wxPython/src/controls2.i @@ -1325,6 +1325,10 @@ enum { wxDIRCTRL_SELECT_FIRST, wxDIRCTRL_SHOW_FILTERS, wxDIRCTRL_3D_INTERNAL, + wxDIRCTRL_EDITABLE, + + wxID_TREECTRL, + wxID_FILTERLISTCTRL, }; diff --git a/wxPython/src/events.i b/wxPython/src/events.i index b735d07ae3..c270a652bc 100644 --- a/wxPython/src/events.i +++ b/wxPython/src/events.i @@ -206,18 +206,26 @@ public: long GetKeyCode(); bool HasModifiers(); + // get the raw key code (platform-dependent) + long GetRawKeyCode() const; + + // get the raw key flags (platform-dependent) + long GetRawKeyFlags() const; + long GetX(); long GetY(); wxPoint GetPosition(); %name(GetPositionTuple) void GetPosition(long* OUTPUT, long* OUTPUT); - long m_x, m_y; - long m_keyCode; - bool m_controlDown; - bool m_shiftDown; - bool m_altDown; - bool m_metaDown; - bool m_scanCode; + long m_x, m_y; + long m_keyCode; + bool m_controlDown; + bool m_shiftDown; + bool m_altDown; + bool m_metaDown; + bool m_scanCode; + long m_rawCode; + long m_rawFlags; }; diff --git a/wxPython/src/fonts.i b/wxPython/src/fonts.i index 454e4af1bc..7506801a9d 100644 --- a/wxPython/src/fonts.i +++ b/wxPython/src/fonts.i @@ -17,7 +17,6 @@ #include "helpers.h" #include <wx/fontmap.h> #include <wx/fontenc.h> -#include <wx/fontmap.h> #include <wx/fontutil.h> #include <wx/fontenum.h> #include <wx/intl.h> @@ -223,6 +222,11 @@ public: wxFontMapper(); ~wxFontMapper(); + // return instance of the wxFontMapper singleton + static wxFontMapper *Get(); + // set the sigleton to 'mapper' instance and return previous one + static wxFontMapper *Set(wxFontMapper *mapper); + // find an alternative for the given encoding (which is supposed to not be // available on this system). If successful, return TRUE and rwxFontEcoding diff --git a/wxPython/src/grid.i b/wxPython/src/grid.i index b5af636a9d..b0249ef931 100644 --- a/wxPython/src/grid.i +++ b/wxPython/src/grid.i @@ -531,8 +531,23 @@ public: wxPyConstructObject((void*)&dc, "wxDC", 0), row, col)); if (ro) { - if (!SWIG_GetPtrObj(ro, (void **)&ptr, "_wxSize_p")) + const char* errmsg = "GetBestSize should return a 2-tuple of integers or a wxSize object."; + if (!SWIG_GetPtrObj(ro, (void **)&ptr, "_wxSize_p")) { rval = *ptr; + } + else if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { + PyObject* o1 = PySequence_GetItem(ro, 0); + PyObject* o2 = PySequence_GetItem(ro, 1); + if (PyNumber_Check(o1) && PyNumber_Check(o2)) + rval = wxSize(PyInt_AsLong(o1), PyInt_AsLong(o2)); + else + PyErr_SetString(PyExc_TypeError, errmsg); + Py_DECREF(o1); + Py_DECREF(o2); + } + else { + PyErr_SetString(PyExc_TypeError, errmsg); + } Py_DECREF(ro); } } diff --git a/wxPython/src/helpers.cpp b/wxPython/src/helpers.cpp index 8d602244e0..aa48fa7128 100644 --- a/wxPython/src/helpers.cpp +++ b/wxPython/src/helpers.cpp @@ -1777,7 +1777,14 @@ bool wxSize_helper(PyObject* source, wxSize** obj) { else if (PySequence_Check(source) && PyObject_Length(source) == 2) { PyObject* o1 = PySequence_GetItem(source, 0); PyObject* o2 = PySequence_GetItem(source, 1); + if (!PyNumber_Check(o1) || !PyNumber_Check(o2)) { + Py_DECREF(o1); + Py_DECREF(o2); + goto error; + } **obj = wxSize(PyInt_AsLong(o1), PyInt_AsLong(o2)); + Py_DECREF(o1); + Py_DECREF(o2); return TRUE; } @@ -1800,15 +1807,15 @@ bool wxPoint_helper(PyObject* source, wxPoint** obj) { if (PySequence_Check(source) && PySequence_Length(source) == 2) { PyObject* o1 = PySequence_GetItem(source, 0); PyObject* o2 = PySequence_GetItem(source, 1); - // This should really check for integers, not numbers -- but that would break code. - if (!PyNumber_Check(o1) || !PyNumber_Check(o2)) { - Py_DECREF(o1); - Py_DECREF(o2); - goto error; - } - **obj = wxPoint(PyInt_AsLong(o1), PyInt_AsLong(o2)); - Py_DECREF(o1); - Py_DECREF(o2); + // This should really check for integers, not numbers -- but that would break code. + if (!PyNumber_Check(o1) || !PyNumber_Check(o2)) { + Py_DECREF(o1); + Py_DECREF(o2); + goto error; + } + **obj = wxPoint(PyInt_AsLong(o1), PyInt_AsLong(o2)); + Py_DECREF(o1); + Py_DECREF(o2); return TRUE; } error: @@ -1832,7 +1839,14 @@ bool wxRealPoint_helper(PyObject* source, wxRealPoint** obj) { else if (PySequence_Check(source) && PyObject_Length(source) == 2) { PyObject* o1 = PySequence_GetItem(source, 0); PyObject* o2 = PySequence_GetItem(source, 1); + if (!PyNumber_Check(o1) || !PyNumber_Check(o2)) { + Py_DECREF(o1); + Py_DECREF(o2); + goto error; + } **obj = wxRealPoint(PyFloat_AsDouble(o1), PyFloat_AsDouble(o2)); + Py_DECREF(o1); + Py_DECREF(o2); return TRUE; } @@ -1860,8 +1874,20 @@ bool wxRect_helper(PyObject* source, wxRect** obj) { PyObject* o2 = PySequence_GetItem(source, 1); PyObject* o3 = PySequence_GetItem(source, 2); PyObject* o4 = PySequence_GetItem(source, 3); + if (!PyNumber_Check(o1) || !PyNumber_Check(o2) || + !PyNumber_Check(o3) || !PyNumber_Check(o4)) { + Py_DECREF(o1); + Py_DECREF(o2); + Py_DECREF(o3); + Py_DECREF(o4); + goto error; + } **obj = wxRect(PyInt_AsLong(o1), PyInt_AsLong(o2), - PyInt_AsLong(o3), PyInt_AsLong(o4)); + PyInt_AsLong(o3), PyInt_AsLong(o4)); + Py_DECREF(o1); + Py_DECREF(o2); + Py_DECREF(o3); + Py_DECREF(o4); return TRUE; } diff --git a/wxPython/src/helpers.h b/wxPython/src/helpers.h index 64d394ef00..50ba510883 100644 --- a/wxPython/src/helpers.h +++ b/wxPython/src/helpers.h @@ -1070,8 +1070,9 @@ public: #define IMP_PYCALLBACK_wxSize__pure(CLASS, PCLASS, CBNAME) \ wxSize CLASS::CBNAME() { \ + const char* errmsg = #CBNAME " should return a 2-tuple of integers or a wxSize object."; \ wxSize rval(0,0); \ - wxPyBeginBlockThreads(); \ + wxPyBeginBlockThreads(); \ if (wxPyCBH_findCallback(m_myInst, #CBNAME)) { \ PyObject* ro; \ wxSize* ptr; \ @@ -1079,10 +1080,23 @@ public: if (ro) { \ if (! SWIG_GetPtrObj(ro, (void **)&ptr, "_wxSize_p")) \ rval = *ptr; \ + else if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { \ + PyObject* o1 = PySequence_GetItem(ro, 0); \ + PyObject* o2 = PySequence_GetItem(ro, 1); \ + if (PyNumber_Check(o1) && PyNumber_Check(o2)) \ + rval = wxSize(PyInt_AsLong(o1), PyInt_AsLong(o2)); \ + else \ + PyErr_SetString(PyExc_TypeError, errmsg); \ + Py_DECREF(o1); \ + Py_DECREF(o2); \ + } \ + else { \ + PyErr_SetString(PyExc_TypeError, errmsg); \ + } \ Py_DECREF(ro); \ } \ } \ - wxPyEndBlockThreads(); \ + wxPyEndBlockThreads(); \ return rval; \ } diff --git a/wxPython/src/image.i b/wxPython/src/image.i index f3d7dc9294..837336efe8 100644 --- a/wxPython/src/image.i +++ b/wxPython/src/image.i @@ -136,11 +136,11 @@ public: bool SetMaskFromImage(const wxImage & mask, byte mr, byte mg, byte mb); - void DoFloodFill (wxCoord x, wxCoord y, - const wxBrush & fillBrush, - const wxColour& testColour, - int style = wxFLOOD_SURFACE, - int LogicalFunction = wxCOPY /* currently unused */ ) ; +// void DoFloodFill (wxCoord x, wxCoord y, +// const wxBrush & fillBrush, +// const wxColour& testColour, +// int style = wxFLOOD_SURFACE, +// int LogicalFunction = wxCOPY /* currently unused */ ) ; static bool CanRead( const wxString& name ); static int GetImageCount( const wxString& name, long type = wxBITMAP_TYPE_ANY ); diff --git a/wxPython/src/msw/controls.cpp b/wxPython/src/msw/controls.cpp index 5861abf826..a0fe2a045b 100644 --- a/wxPython/src/msw/controls.cpp +++ b/wxPython/src/msw/controls.cpp @@ -7014,6 +7014,43 @@ static PyObject *_wrap_wxTextCtrl_AppendText(PyObject *self, PyObject *args, PyO return _resultobj; } +#define wxTextCtrl_EmulateKeyPress(_swigobj,_swigarg0) (_swigobj->EmulateKeyPress(_swigarg0)) +static PyObject *_wrap_wxTextCtrl_EmulateKeyPress(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + bool _result; + wxTextCtrl * _arg0; + wxKeyEvent * _arg1; + PyObject * _argo0 = 0; + PyObject * _argo1 = 0; + char *_kwnames[] = { "self","event", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxTextCtrl_EmulateKeyPress",_kwnames,&_argo0,&_argo1)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxTextCtrl_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_EmulateKeyPress. Expected _wxTextCtrl_p."); + return NULL; + } + } + if (_argo1) { + if (_argo1 == Py_None) { _arg1 = NULL; } + else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTextCtrl_EmulateKeyPress. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (bool )wxTextCtrl_EmulateKeyPress(_arg0,*_arg1); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("i",_result); + return _resultobj; +} + #define wxTextCtrl_SetStyle(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetStyle(_swigarg0,_swigarg1,_swigarg2)) static PyObject *_wrap_wxTextCtrl_SetStyle(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -11475,6 +11512,7 @@ static PyMethodDef controlscMethods[] = { { "wxTextCtrl_GetDefaultStyle", (PyCFunction) _wrap_wxTextCtrl_GetDefaultStyle, METH_VARARGS | METH_KEYWORDS }, { "wxTextCtrl_SetDefaultStyle", (PyCFunction) _wrap_wxTextCtrl_SetDefaultStyle, METH_VARARGS | METH_KEYWORDS }, { "wxTextCtrl_SetStyle", (PyCFunction) _wrap_wxTextCtrl_SetStyle, METH_VARARGS | METH_KEYWORDS }, + { "wxTextCtrl_EmulateKeyPress", (PyCFunction) _wrap_wxTextCtrl_EmulateKeyPress, METH_VARARGS | METH_KEYWORDS }, { "wxTextCtrl_AppendText", (PyCFunction) _wrap_wxTextCtrl_AppendText, METH_VARARGS | METH_KEYWORDS }, { "wxTextCtrl_WriteText", (PyCFunction) _wrap_wxTextCtrl_WriteText, METH_VARARGS | METH_KEYWORDS }, { "wxTextCtrl_SetMaxLength", (PyCFunction) _wrap_wxTextCtrl_SetMaxLength, METH_VARARGS | METH_KEYWORDS }, diff --git a/wxPython/src/msw/controls.py b/wxPython/src/msw/controls.py index 0469e1edce..ccdd4ce7f7 100644 --- a/wxPython/src/msw/controls.py +++ b/wxPython/src/msw/controls.py @@ -673,6 +673,9 @@ class wxTextCtrlPtr(wxControlPtr): def AppendText(self, *_args, **_kwargs): val = apply(controlsc.wxTextCtrl_AppendText,(self,) + _args, _kwargs) return val + def EmulateKeyPress(self, *_args, **_kwargs): + val = apply(controlsc.wxTextCtrl_EmulateKeyPress,(self,) + _args, _kwargs) + return val def SetStyle(self, *_args, **_kwargs): val = apply(controlsc.wxTextCtrl_SetStyle,(self,) + _args, _kwargs) return val diff --git a/wxPython/src/msw/controls2.cpp b/wxPython/src/msw/controls2.cpp index 37b50d5c43..8e514a4f4f 100644 --- a/wxPython/src/msw/controls2.cpp +++ b/wxPython/src/msw/controls2.cpp @@ -11381,6 +11381,9 @@ SWIGEXPORT(void) initcontrols2c() { PyDict_SetItemString(d,"wxDIRCTRL_SELECT_FIRST", PyInt_FromLong((long) wxDIRCTRL_SELECT_FIRST)); PyDict_SetItemString(d,"wxDIRCTRL_SHOW_FILTERS", PyInt_FromLong((long) wxDIRCTRL_SHOW_FILTERS)); PyDict_SetItemString(d,"wxDIRCTRL_3D_INTERNAL", PyInt_FromLong((long) wxDIRCTRL_3D_INTERNAL)); + PyDict_SetItemString(d,"wxDIRCTRL_EDITABLE", PyInt_FromLong((long) wxDIRCTRL_EDITABLE)); + PyDict_SetItemString(d,"wxID_TREECTRL", PyInt_FromLong((long) wxID_TREECTRL)); + PyDict_SetItemString(d,"wxID_FILTERLISTCTRL", PyInt_FromLong((long) wxID_FILTERLISTCTRL)); // Map renamed classes back to their common name for OOR wxPyPtrTypeMap_Add("wxTreeItemData", "wxPyTreeItemData"); diff --git a/wxPython/src/msw/controls2.py b/wxPython/src/msw/controls2.py index 41d9056f0f..f5dc4bd723 100644 --- a/wxPython/src/msw/controls2.py +++ b/wxPython/src/msw/controls2.py @@ -1433,3 +1433,6 @@ wxDIRCTRL_DIR_ONLY = controls2c.wxDIRCTRL_DIR_ONLY wxDIRCTRL_SELECT_FIRST = controls2c.wxDIRCTRL_SELECT_FIRST wxDIRCTRL_SHOW_FILTERS = controls2c.wxDIRCTRL_SHOW_FILTERS wxDIRCTRL_3D_INTERNAL = controls2c.wxDIRCTRL_3D_INTERNAL +wxDIRCTRL_EDITABLE = controls2c.wxDIRCTRL_EDITABLE +wxID_TREECTRL = controls2c.wxID_TREECTRL +wxID_FILTERLISTCTRL = controls2c.wxID_FILTERLISTCTRL diff --git a/wxPython/src/msw/events.cpp b/wxPython/src/msw/events.cpp index 7dd5e886c3..d50d9e5b3b 100644 --- a/wxPython/src/msw/events.cpp +++ b/wxPython/src/msw/events.cpp @@ -3371,6 +3371,62 @@ static PyObject *_wrap_wxKeyEvent_HasModifiers(PyObject *self, PyObject *args, P return _resultobj; } +#define wxKeyEvent_GetRawKeyCode(_swigobj) (_swigobj->GetRawKeyCode()) +static PyObject *_wrap_wxKeyEvent_GetRawKeyCode(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + long _result; + wxKeyEvent * _arg0; + PyObject * _argo0 = 0; + char *_kwnames[] = { "self", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxKeyEvent_GetRawKeyCode",_kwnames,&_argo0)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_GetRawKeyCode. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (long )wxKeyEvent_GetRawKeyCode(_arg0); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("l",_result); + return _resultobj; +} + +#define wxKeyEvent_GetRawKeyFlags(_swigobj) (_swigobj->GetRawKeyFlags()) +static PyObject *_wrap_wxKeyEvent_GetRawKeyFlags(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + long _result; + wxKeyEvent * _arg0; + PyObject * _argo0 = 0; + char *_kwnames[] = { "self", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxKeyEvent_GetRawKeyFlags",_kwnames,&_argo0)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_GetRawKeyFlags. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (long )wxKeyEvent_GetRawKeyFlags(_arg0); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("l",_result); + return _resultobj; +} + #define wxKeyEvent_GetX(_swigobj) (_swigobj->GetX()) static PyObject *_wrap_wxKeyEvent_GetX(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -3971,6 +4027,120 @@ static PyObject *_wrap_wxKeyEvent_m_scanCode_get(PyObject *self, PyObject *args, return _resultobj; } +#define wxKeyEvent_m_rawCode_set(_swigobj,_swigval) (_swigobj->m_rawCode = _swigval,_swigval) +static PyObject *_wrap_wxKeyEvent_m_rawCode_set(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + long _result; + wxKeyEvent * _arg0; + long _arg1; + PyObject * _argo0 = 0; + char *_kwnames[] = { "self","m_rawCode", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxKeyEvent_m_rawCode_set",_kwnames,&_argo0,&_arg1)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_m_rawCode_set. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (long )wxKeyEvent_m_rawCode_set(_arg0,_arg1); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("l",_result); + return _resultobj; +} + +#define wxKeyEvent_m_rawCode_get(_swigobj) ((long ) _swigobj->m_rawCode) +static PyObject *_wrap_wxKeyEvent_m_rawCode_get(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + long _result; + wxKeyEvent * _arg0; + PyObject * _argo0 = 0; + char *_kwnames[] = { "self", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxKeyEvent_m_rawCode_get",_kwnames,&_argo0)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_m_rawCode_get. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (long )wxKeyEvent_m_rawCode_get(_arg0); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("l",_result); + return _resultobj; +} + +#define wxKeyEvent_m_rawFlags_set(_swigobj,_swigval) (_swigobj->m_rawFlags = _swigval,_swigval) +static PyObject *_wrap_wxKeyEvent_m_rawFlags_set(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + long _result; + wxKeyEvent * _arg0; + long _arg1; + PyObject * _argo0 = 0; + char *_kwnames[] = { "self","m_rawFlags", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxKeyEvent_m_rawFlags_set",_kwnames,&_argo0,&_arg1)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_m_rawFlags_set. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (long )wxKeyEvent_m_rawFlags_set(_arg0,_arg1); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("l",_result); + return _resultobj; +} + +#define wxKeyEvent_m_rawFlags_get(_swigobj) ((long ) _swigobj->m_rawFlags) +static PyObject *_wrap_wxKeyEvent_m_rawFlags_get(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + long _result; + wxKeyEvent * _arg0; + PyObject * _argo0 = 0; + char *_kwnames[] = { "self", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxKeyEvent_m_rawFlags_get",_kwnames,&_argo0)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxKeyEvent_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_m_rawFlags_get. Expected _wxKeyEvent_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (long )wxKeyEvent_m_rawFlags_get(_arg0); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} _resultobj = Py_BuildValue("l",_result); + return _resultobj; +} + static void *SwigwxNavigationKeyEventTowxEvent(void *ptr) { wxNavigationKeyEvent *src; wxEvent *dest; @@ -7213,6 +7383,10 @@ static PyMethodDef eventscMethods[] = { { "wxNavigationKeyEvent_SetDirection", (PyCFunction) _wrap_wxNavigationKeyEvent_SetDirection, METH_VARARGS | METH_KEYWORDS }, { "wxNavigationKeyEvent_GetDirection", (PyCFunction) _wrap_wxNavigationKeyEvent_GetDirection, METH_VARARGS | METH_KEYWORDS }, { "new_wxNavigationKeyEvent", (PyCFunction) _wrap_new_wxNavigationKeyEvent, METH_VARARGS | METH_KEYWORDS }, + { "wxKeyEvent_m_rawFlags_get", (PyCFunction) _wrap_wxKeyEvent_m_rawFlags_get, METH_VARARGS | METH_KEYWORDS }, + { "wxKeyEvent_m_rawFlags_set", (PyCFunction) _wrap_wxKeyEvent_m_rawFlags_set, METH_VARARGS | METH_KEYWORDS }, + { "wxKeyEvent_m_rawCode_get", (PyCFunction) _wrap_wxKeyEvent_m_rawCode_get, METH_VARARGS | METH_KEYWORDS }, + { "wxKeyEvent_m_rawCode_set", (PyCFunction) _wrap_wxKeyEvent_m_rawCode_set, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_m_scanCode_get", (PyCFunction) _wrap_wxKeyEvent_m_scanCode_get, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_m_scanCode_set", (PyCFunction) _wrap_wxKeyEvent_m_scanCode_set, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_m_metaDown_get", (PyCFunction) _wrap_wxKeyEvent_m_metaDown_get, METH_VARARGS | METH_KEYWORDS }, @@ -7233,6 +7407,8 @@ static PyMethodDef eventscMethods[] = { { "wxKeyEvent_GetPosition", (PyCFunction) _wrap_wxKeyEvent_GetPosition, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_GetY", (PyCFunction) _wrap_wxKeyEvent_GetY, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_GetX", (PyCFunction) _wrap_wxKeyEvent_GetX, METH_VARARGS | METH_KEYWORDS }, + { "wxKeyEvent_GetRawKeyFlags", (PyCFunction) _wrap_wxKeyEvent_GetRawKeyFlags, METH_VARARGS | METH_KEYWORDS }, + { "wxKeyEvent_GetRawKeyCode", (PyCFunction) _wrap_wxKeyEvent_GetRawKeyCode, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_HasModifiers", (PyCFunction) _wrap_wxKeyEvent_HasModifiers, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_GetKeyCode", (PyCFunction) _wrap_wxKeyEvent_GetKeyCode, METH_VARARGS | METH_KEYWORDS }, { "wxKeyEvent_KeyCode", (PyCFunction) _wrap_wxKeyEvent_KeyCode, METH_VARARGS | METH_KEYWORDS }, diff --git a/wxPython/src/msw/events.py b/wxPython/src/msw/events.py index abb06e397a..f92eb87163 100644 --- a/wxPython/src/msw/events.py +++ b/wxPython/src/msw/events.py @@ -414,6 +414,12 @@ class wxKeyEventPtr(wxEventPtr): def HasModifiers(self, *_args, **_kwargs): val = apply(eventsc.wxKeyEvent_HasModifiers,(self,) + _args, _kwargs) return val + def GetRawKeyCode(self, *_args, **_kwargs): + val = apply(eventsc.wxKeyEvent_GetRawKeyCode,(self,) + _args, _kwargs) + return val + def GetRawKeyFlags(self, *_args, **_kwargs): + val = apply(eventsc.wxKeyEvent_GetRawKeyFlags,(self,) + _args, _kwargs) + return val def GetX(self, *_args, **_kwargs): val = apply(eventsc.wxKeyEvent_GetX,(self,) + _args, _kwargs) return val @@ -452,6 +458,12 @@ class wxKeyEventPtr(wxEventPtr): if name == "m_scanCode" : eventsc.wxKeyEvent_m_scanCode_set(self,value) return + if name == "m_rawCode" : + eventsc.wxKeyEvent_m_rawCode_set(self,value) + return + if name == "m_rawFlags" : + eventsc.wxKeyEvent_m_rawFlags_set(self,value) + return self.__dict__[name] = value def __getattr__(self,name): if name == "m_x" : @@ -470,6 +482,10 @@ class wxKeyEventPtr(wxEventPtr): return eventsc.wxKeyEvent_m_metaDown_get(self) if name == "m_scanCode" : return eventsc.wxKeyEvent_m_scanCode_get(self) + if name == "m_rawCode" : + return eventsc.wxKeyEvent_m_rawCode_get(self) + if name == "m_rawFlags" : + return eventsc.wxKeyEvent_m_rawFlags_get(self) raise AttributeError,name def __repr__(self): return "<C wxKeyEvent instance at %s>" % (self.this,) diff --git a/wxPython/src/msw/fonts.cpp b/wxPython/src/msw/fonts.cpp index 39b827d2dd..665cd6bee6 100644 --- a/wxPython/src/msw/fonts.cpp +++ b/wxPython/src/msw/fonts.cpp @@ -58,7 +58,6 @@ extern PyObject *SWIG_newvarlink(void); #include "helpers.h" #include <wx/fontmap.h> #include <wx/fontenc.h> -#include <wx/fontmap.h> #include <wx/fontutil.h> #include <wx/fontenum.h> #include <wx/intl.h> @@ -893,6 +892,65 @@ static PyObject *_wrap_delete_wxFontMapper(PyObject *self, PyObject *args, PyObj return _resultobj; } +static PyObject *_wrap_wxFontMapper_Get(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + wxFontMapper * _result; + char *_kwnames[] = { NULL }; + char _ptemp[128]; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,":wxFontMapper_Get",_kwnames)) + return NULL; +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (wxFontMapper *)wxFontMapper::Get(); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} if (_result) { + SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontMapper_p"); + _resultobj = Py_BuildValue("s",_ptemp); + } else { + Py_INCREF(Py_None); + _resultobj = Py_None; + } + return _resultobj; +} + +static PyObject *_wrap_wxFontMapper_Set(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + wxFontMapper * _result; + wxFontMapper * _arg0; + PyObject * _argo0 = 0; + char *_kwnames[] = { "mapper", NULL }; + char _ptemp[128]; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxFontMapper_Set",_kwnames,&_argo0)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxFontMapper_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontMapper_Set. Expected _wxFontMapper_p."); + return NULL; + } + } +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (wxFontMapper *)wxFontMapper::Set(_arg0); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} if (_result) { + SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontMapper_p"); + _resultobj = Py_BuildValue("s",_ptemp); + } else { + Py_INCREF(Py_None); + _resultobj = Py_None; + } + return _resultobj; +} + static PyObject * wxFontMapper_GetAltForEncoding(wxFontMapper *self,wxFontEncoding encoding,const wxString & facename,bool interactive) { wxFontEncoding alt_enc; if (self->GetAltForEncoding(encoding, &alt_enc, facename, interactive)) @@ -3660,6 +3718,8 @@ static PyMethodDef fontscMethods[] = { { "wxFontMapper_CharsetToEncoding", (PyCFunction) _wrap_wxFontMapper_CharsetToEncoding, METH_VARARGS | METH_KEYWORDS }, { "wxFontMapper_IsEncodingAvailable", (PyCFunction) _wrap_wxFontMapper_IsEncodingAvailable, METH_VARARGS | METH_KEYWORDS }, { "wxFontMapper_GetAltForEncoding", (PyCFunction) _wrap_wxFontMapper_GetAltForEncoding, METH_VARARGS | METH_KEYWORDS }, + { "wxFontMapper_Set", (PyCFunction) _wrap_wxFontMapper_Set, METH_VARARGS | METH_KEYWORDS }, + { "wxFontMapper_Get", (PyCFunction) _wrap_wxFontMapper_Get, METH_VARARGS | METH_KEYWORDS }, { "delete_wxFontMapper", (PyCFunction) _wrap_delete_wxFontMapper, METH_VARARGS | METH_KEYWORDS }, { "new_wxFontMapper", (PyCFunction) _wrap_new_wxFontMapper, METH_VARARGS | METH_KEYWORDS }, { "wxNativeFontInfo_ToUserString", (PyCFunction) _wrap_wxNativeFontInfo_ToUserString, METH_VARARGS | METH_KEYWORDS }, diff --git a/wxPython/src/msw/fonts.py b/wxPython/src/msw/fonts.py index 6b237f4e73..67f10f0940 100644 --- a/wxPython/src/msw/fonts.py +++ b/wxPython/src/msw/fonts.py @@ -381,6 +381,16 @@ def wxGetLocale(*_args, **_kwargs): wxGetTranslation = fontsc.wxGetTranslation +def wxFontMapper_Get(*_args, **_kwargs): + val = apply(fontsc.wxFontMapper_Get,_args,_kwargs) + if val: val = wxFontMapperPtr(val) + return val + +def wxFontMapper_Set(*_args, **_kwargs): + val = apply(fontsc.wxFontMapper_Set,_args,_kwargs) + if val: val = wxFontMapperPtr(val) + return val + wxFontMapper_GetEncodingName = fontsc.wxFontMapper_GetEncodingName wxFontMapper_GetEncodingDescription = fontsc.wxFontMapper_GetEncodingDescription diff --git a/wxPython/src/msw/grid.cpp b/wxPython/src/msw/grid.cpp index 1fbab3b304..82af203c89 100644 --- a/wxPython/src/msw/grid.cpp +++ b/wxPython/src/msw/grid.cpp @@ -519,8 +519,23 @@ public: wxPyConstructObject((void*)&dc, "wxDC", 0), row, col)); if (ro) { - if (!SWIG_GetPtrObj(ro, (void **)&ptr, "_wxSize_p")) + const char* errmsg = "GetBestSize should return a 2-tuple of integers or a wxSize object."; + if (!SWIG_GetPtrObj(ro, (void **)&ptr, "_wxSize_p")) { rval = *ptr; + } + else if (PySequence_Check(ro) && PyObject_Length(ro) == 2) { + PyObject* o1 = PySequence_GetItem(ro, 0); + PyObject* o2 = PySequence_GetItem(ro, 1); + if (PyNumber_Check(o1) && PyNumber_Check(o2)) + rval = wxSize(PyInt_AsLong(o1), PyInt_AsLong(o2)); + else + PyErr_SetString(PyExc_TypeError, errmsg); + Py_DECREF(o1); + Py_DECREF(o2); + } + else { + PyErr_SetString(PyExc_TypeError, errmsg); + } Py_DECREF(ro); } } diff --git a/wxPython/src/msw/image.cpp b/wxPython/src/msw/image.cpp index 648bd9b26a..4bffe16f97 100644 --- a/wxPython/src/msw/image.cpp +++ b/wxPython/src/msw/image.cpp @@ -1685,55 +1685,6 @@ static PyObject *_wrap_wxImage_SetMaskFromImage(PyObject *self, PyObject *args, return _resultobj; } -#define wxImage_DoFloodFill(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->DoFloodFill(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxImage_DoFloodFill(PyObject *self, PyObject *args, PyObject *kwargs) { - PyObject * _resultobj; - wxImage * _arg0; - wxCoord _arg1; - wxCoord _arg2; - wxBrush * _arg3; - wxColour * _arg4; - int _arg5 = (int ) wxFLOOD_SURFACE; - int _arg6 = (int ) wxCOPY; - PyObject * _argo0 = 0; - PyObject * _argo3 = 0; - wxColour temp; - PyObject * _obj4 = 0; - char *_kwnames[] = { "self","x","y","fillBrush","testColour","style","LogicalFunction", NULL }; - - self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiiOO|ii:wxImage_DoFloodFill",_kwnames,&_argo0,&_arg1,&_arg2,&_argo3,&_obj4,&_arg5,&_arg6)) - return NULL; - if (_argo0) { - if (_argo0 == Py_None) { _arg0 = NULL; } - else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_DoFloodFill. Expected _wxImage_p."); - return NULL; - } - } - if (_argo3) { - if (_argo3 == Py_None) { _arg3 = NULL; } - else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxImage_DoFloodFill. Expected _wxBrush_p."); - return NULL; - } - } -{ - _arg4 = &temp; - if (! wxColour_helper(_obj4, &_arg4)) - return NULL; -} -{ - PyThreadState* __tstate = wxPyBeginAllowThreads(); - wxImage_DoFloodFill(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPyEndAllowThreads(__tstate); - if (PyErr_Occurred()) return NULL; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - static PyObject *_wrap_wxImage_CanRead(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; bool _result; @@ -3192,7 +3143,6 @@ static PyMethodDef imagecMethods[] = { { "wxImage_LoadFile", (PyCFunction) _wrap_wxImage_LoadFile, METH_VARARGS | METH_KEYWORDS }, { "wxImage_GetImageCount", (PyCFunction) _wrap_wxImage_GetImageCount, METH_VARARGS | METH_KEYWORDS }, { "wxImage_CanRead", (PyCFunction) _wrap_wxImage_CanRead, METH_VARARGS | METH_KEYWORDS }, - { "wxImage_DoFloodFill", (PyCFunction) _wrap_wxImage_DoFloodFill, METH_VARARGS | METH_KEYWORDS }, { "wxImage_SetMaskFromImage", (PyCFunction) _wrap_wxImage_SetMaskFromImage, METH_VARARGS | METH_KEYWORDS }, { "wxImage_FindFirstUnusedColour", (PyCFunction) _wrap_wxImage_FindFirstUnusedColour, METH_VARARGS | METH_KEYWORDS }, { "wxImage_GetBlue", (PyCFunction) _wrap_wxImage_GetBlue, METH_VARARGS | METH_KEYWORDS }, diff --git a/wxPython/src/msw/image.py b/wxPython/src/msw/image.py index a96f5b3829..844a22e954 100644 --- a/wxPython/src/msw/image.py +++ b/wxPython/src/msw/image.py @@ -227,9 +227,6 @@ class wxImagePtr(wxObjectPtr): def SetMaskFromImage(self, *_args, **_kwargs): val = apply(imagec.wxImage_SetMaskFromImage,(self,) + _args, _kwargs) return val - def DoFloodFill(self, *_args, **_kwargs): - val = apply(imagec.wxImage_DoFloodFill,(self,) + _args, _kwargs) - return val def LoadFile(self, *_args, **_kwargs): val = apply(imagec.wxImage_LoadFile,(self,) + _args, _kwargs) return val -- 2.47.2