]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/src/_event_ex.py
3 #---------------------------------------------------------------------------
5 class PyEventBinder(object):
7 Instances of this class are used to bind specific events to event
10 def __init__(self
, evtType
, expectedIDs
=0):
11 if expectedIDs
not in [0, 1, 2]:
12 raise ValueError, "Invalid number of expectedIDs"
13 self
.expectedIDs
= expectedIDs
15 if type(evtType
) == list or type(evtType
) == tuple:
16 self
.evtType
= evtType
18 self
.evtType
= [evtType
]
21 def Bind(self
, target
, id1
, id2
, function
):
22 """Bind this set of event types to target."""
23 for et
in self
.evtType
:
24 target
.Connect(id1
, id2
, et
, function
)
27 def Unbind(self
, target
, id1
, id2
):
28 """Remove an event binding."""
30 for et
in self
.evtType
:
31 success
+= target
.Disconnect(id1
, id2
, et
)
35 def __call__(self
, *args
):
37 For backwards compatibility with the old EVT_* functions.
38 Should be called with either (window, func), (window, ID,
39 func) or (window, ID1, ID2, func) parameters depending on the
42 assert len(args
) == 2 + self
.expectedIDs
46 if self
.expectedIDs
== 0:
48 elif self
.expectedIDs
== 1:
51 elif self
.expectedIDs
== 2:
56 raise ValueError, "Unexpected number of IDs"
58 self
.Bind(target
, id1
, id2
, func
)
61 # These two are square pegs that don't fit the PyEventBinder hole...
62 def EVT_COMMAND(win
, id, cmd
, func
):
63 win
.Connect(id, -1, cmd
, func
)
64 def EVT_COMMAND_RANGE(win
, id1
, id2
, cmd
, func
):
65 win
.Connect(id1
, id2
, cmd
, func
)
68 #---------------------------------------------------------------------------