X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04633c190f5a6eafe607a5712647aaa131522b1f..dbe6f5f00beefc0901945758693b6d79295904ad:/wxPython/src/_evthandler.i diff --git a/wxPython/src/_evthandler.i b/wxPython/src/_evthandler.i index 915d659f4d..3dd673a315 100644 --- a/wxPython/src/_evthandler.i +++ b/wxPython/src/_evthandler.i @@ -19,8 +19,15 @@ // wxEvtHandler: the base class for all objects handling wxWindows events class wxEvtHandler : public wxObject { public: + // turn off this typemap + %typemap(out) wxEvtHandler*; + + %pythonAppend wxEvtHandler "self._setOORInfo(self)" wxEvtHandler(); + // Turn it back on again + %typemap(out) wxEvtHandler* { $result = wxPyMake_wxObject($1, $owner); } + wxEvtHandler* GetNextHandler(); wxEvtHandler* GetPreviousHandler(); void SetNextHandler(wxEvtHandler* handler); @@ -66,10 +73,11 @@ public: } } + %pythonAppend _setOORInfo "args[0].thisown = 0"; %extend { - void _setOORInfo(PyObject* _self) { + void _setOORInfo(PyObject* _self, bool incref=true) { if (_self && _self != Py_None) { - self->SetClientObject(new wxPyOORClientData(_self)); + self->SetClientObject(new wxPyOORClientData(_self, incref)); } else { wxPyOORClientData* data = (wxPyOORClientData*)self->GetClientObject(); @@ -121,6 +129,9 @@ public: return event.Unbind(self, id, id2) } + %property(EvtHandlerEnabled, GetEvtHandlerEnabled, SetEvtHandlerEnabled, doc="See `GetEvtHandlerEnabled` and `SetEvtHandlerEnabled`"); + %property(NextHandler, GetNextHandler, SetNextHandler, doc="See `GetNextHandler` and `SetNextHandler`"); + %property(PreviousHandler, GetPreviousHandler, SetPreviousHandler, doc="See `GetPreviousHandler` and `SetPreviousHandler`"); };