From cf27687318294d9067459170e20dedcc4d1cebc8 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sat, 20 Jul 2002 19:45:24 +0000 Subject: [PATCH] Fix for wxPyTipProvider. Now it is possible to derive from it and implement GetTip. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/src/misc2.i | 3 +++ wxPython/src/msw/misc2.cpp | 39 ++++++++++++++++++++++++++++++++++++++ wxPython/src/msw/misc2.py | 4 ++++ 3 files changed, 46 insertions(+) diff --git a/wxPython/src/misc2.i b/wxPython/src/misc2.i index 2aa156803d..5e080982f0 100644 --- a/wxPython/src/misc2.i +++ b/wxPython/src/misc2.i @@ -468,6 +468,9 @@ IMP_PYCALLBACK_STRING__pure( wxPyTipProvider, wxTipProvider, GetTip); class wxPyTipProvider : public wxTipProvider { public: wxPyTipProvider(size_t currentTip); + + void _setCallbackInfo(PyObject* self, PyObject* _class); + %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyTipProvider)" }; diff --git a/wxPython/src/msw/misc2.cpp b/wxPython/src/msw/misc2.cpp index 51c47f1f95..2e05528dfe 100644 --- a/wxPython/src/msw/misc2.cpp +++ b/wxPython/src/msw/misc2.cpp @@ -3632,6 +3632,44 @@ static PyObject *_wrap_new_wxPyTipProvider(PyObject *self, PyObject *args, PyObj return _resultobj; } +#define wxPyTipProvider__setCallbackInfo(_swigobj,_swigarg0,_swigarg1) (_swigobj->_setCallbackInfo(_swigarg0,_swigarg1)) +static PyObject *_wrap_wxPyTipProvider__setCallbackInfo(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + wxPyTipProvider * _arg0; + PyObject * _arg1; + PyObject * _arg2; + PyObject * _argo0 = 0; + PyObject * _obj1 = 0; + PyObject * _obj2 = 0; + char *_kwnames[] = { "self","self","_class", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:wxPyTipProvider__setCallbackInfo",_kwnames,&_argo0,&_obj1,&_obj2)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxPyTipProvider_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTipProvider__setCallbackInfo. Expected _wxPyTipProvider_p."); + return NULL; + } + } +{ + _arg1 = _obj1; +} +{ + _arg2 = _obj2; +} +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + wxPyTipProvider__setCallbackInfo(_arg0,_arg1,_arg2); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} Py_INCREF(Py_None); + _resultobj = Py_None; + return _resultobj; +} + static void *SwigwxGenericDragImageTowxObject(void *ptr) { wxGenericDragImage *src; wxObject *dest; @@ -10537,6 +10575,7 @@ static PyMethodDef misc2cMethods[] = { { "new_wxDragString", (PyCFunction) _wrap_new_wxDragString, METH_VARARGS | METH_KEYWORDS }, { "new_wxDragIcon", (PyCFunction) _wrap_new_wxDragIcon, METH_VARARGS | METH_KEYWORDS }, { "new_wxDragImage", (PyCFunction) _wrap_new_wxDragImage, METH_VARARGS | METH_KEYWORDS }, + { "wxPyTipProvider__setCallbackInfo", (PyCFunction) _wrap_wxPyTipProvider__setCallbackInfo, METH_VARARGS | METH_KEYWORDS }, { "new_wxPyTipProvider", (PyCFunction) _wrap_new_wxPyTipProvider, METH_VARARGS | METH_KEYWORDS }, { "wxTipProvider_GetCurrentTip", (PyCFunction) _wrap_wxTipProvider_GetCurrentTip, METH_VARARGS | METH_KEYWORDS }, { "wxTipProvider_GetTip", (PyCFunction) _wrap_wxTipProvider_GetTip, METH_VARARGS | METH_KEYWORDS }, diff --git a/wxPython/src/msw/misc2.py b/wxPython/src/msw/misc2.py index 5d6dbb22f3..6d83b5cd64 100644 --- a/wxPython/src/msw/misc2.py +++ b/wxPython/src/msw/misc2.py @@ -187,12 +187,16 @@ class wxPyTipProviderPtr(wxTipProviderPtr): def __init__(self,this): self.this = this self.thisown = 0 + def _setCallbackInfo(self, *_args, **_kwargs): + val = apply(misc2c.wxPyTipProvider__setCallbackInfo,(self,) + _args, _kwargs) + return val def __repr__(self): return "" % (self.this,) class wxPyTipProvider(wxPyTipProviderPtr): def __init__(self,*_args,**_kwargs): self.this = apply(misc2c.new_wxPyTipProvider,_args,_kwargs) self.thisown = 1 + self._setCallbackInfo(self, wxPyTipProvider) -- 2.45.2