X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ded6ea2319707a84da85043a2c5b1dcd6750be6c..70b63a9909bd6accf8ffd385ada2243ba44423b7:/wxPython/src/_evthandler.i diff --git a/wxPython/src/_evthandler.i b/wxPython/src/_evthandler.i index 5a12a452d8..afff9bc445 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].this.own(False)"; %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(); @@ -85,22 +93,27 @@ public: """ Bind an event to an event handler. - event One of the EVT_* objects that specifies the - type of event to bind, + :param event: One of the EVT_* objects that specifies the + type of event to bind, + + :param handler: A callable object to be invoked when the + event is delivered to self. Pass None to + disconnect an event handler. - handler A callable object to be invoked when the event - is delivered to self. Pass None to disconnect an - event handler. + :param source: Sometimes the event originates from a + different window than self, but you still + want to catch it in self. (For example, a + button event delivered to a frame.) By + passing the source of the event, the event + handling system is able to differentiate + between the same event type from different + controls. - source Sometimes the event originates from a different window - than self, but you still want to catch it in self. (For - example, a button event delivered to a frame.) By - passing the source of the event, the event handling - system is able to differentiate between the same event - type from different controls. + :param id: Used to spcify the event source by ID instead + of instance. - id,id2 Used for menu IDs or for event types that require a - range of IDs + :param id2: Used when it is desirable to bind a handler + to a range of IDs, such as with EVT_MENU_RANGE. """ if source is not None: id = source.GetId() @@ -113,9 +126,12 @@ public: """ if source is not None: id = source.GetId() - event.Unbind(self, id, id2) + 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`"); };