X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b39c3fa09a936e6a3f386a67c0fc7cfd84df0168..5f2502393e042e6e2c871ff94b7ccaf7a78b264d:/wxPython/src/_evthandler.i diff --git a/wxPython/src/_evthandler.i b/wxPython/src/_evthandler.i index 5cbe3734c9..8820696dcf 100644 --- a/wxPython/src/_evthandler.i +++ b/wxPython/src/_evthandler.i @@ -22,6 +22,7 @@ public: // turn off this typemap %typemap(out) wxEvtHandler*; + %pythonAppend wxEvtHandler "self._setOORInfo(self)" wxEvtHandler(); // Turn it back on again @@ -45,6 +46,11 @@ public: // process all pending events void ProcessPendingEvents(); + // reentrance guard + void AllowReentrance( bool allow = true ); + bool IsReentranceAllowed(); + bool IsEventHandlingInProgress(); + %extend { // Dynamic association of a member function handler with the event handler void Connect( int id, int lastId, int eventType, PyObject* func) { @@ -72,10 +78,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(); @@ -127,6 +134,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`"); };