// 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);
// 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) {
}
}
+ %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();
"""
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()
event.Bind(self, id, id2, handler)
+ def Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
+ """
+ Disconencts the event handler binding for event from self.
+ Returns True if successful.
+ """
+ if source is not None:
+ id = source.GetId()
+ 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`");
};