1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIG interface for wxEventHandler
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
16 //---------------------------------------------------------------------------
19 // wxEvtHandler: the base class for all objects handling wxWindows events
20 class wxEvtHandler : public wxObject {
24 wxEvtHandler* GetNextHandler();
25 wxEvtHandler* GetPreviousHandler();
26 void SetNextHandler(wxEvtHandler* handler);
27 void SetPreviousHandler(wxEvtHandler* handler);
29 bool GetEvtHandlerEnabled();
30 void SetEvtHandlerEnabled(bool enabled);
33 // process an event right now
34 bool ProcessEvent(wxEvent& event);
36 // add an event to be processed later
37 void AddPendingEvent(wxEvent& event);
39 // process all pending events
40 void ProcessPendingEvents();
43 // Dynamic association of a member function handler with the event handler
44 void Connect( int id, int lastId, int eventType, PyObject* func) {
45 if (PyCallable_Check(func)) {
46 self->Connect(id, lastId, eventType,
47 (wxObjectEventFunction) &wxPyCallback::EventThunker,
48 new wxPyCallback(func));
50 else if (func == Py_None) {
51 self->Disconnect(id, lastId, eventType,
52 (wxObjectEventFunction)
53 &wxPyCallback::EventThunker);
57 PyErr_SetString(PyExc_TypeError, "Expected callable object or None."));
61 bool Disconnect(int id, int lastId = -1,
62 wxEventType eventType = wxEVT_NULL) {
63 return self->Disconnect(id, lastId, eventType,
64 (wxObjectEventFunction)
65 &wxPyCallback::EventThunker);
70 void _setOORInfo(PyObject* _self) {
71 if (_self && _self != Py_None) {
72 self->SetClientObject(new wxPyOORClientData(_self));
75 wxPyOORClientData* data = (wxPyOORClientData*)self->GetClientObject();
77 self->SetClientObject(NULL); // This will delete it too
84 def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
86 Bind an event to an event handler.
88 event One of the EVT_* objects that specifies the
89 type of event to bind,
91 handler A callable object to be invoked when the event
92 is delivered to self. Pass None to disconnect an
95 source Sometimes the event originates from a different window
96 than self, but you still want to catch it in self. (For
97 example, a button event delivered to a frame.) By
98 passing the source of the event, the event handling
99 system is able to differentiate between the same event
100 type from different controls.
102 id,id2 Used for menu IDs or for event types that require a
105 if source is not None:
107 event.Bind(self, id, id2, handler)
109 def Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
111 Disconencts the event handler binding for event from self.
112 Returns True if successful.
114 if source is not None:
116 return event.Unbind(self, id, id2)
122 //---------------------------------------------------------------------------