]>
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 __call__(self
, *args
):
29 For backwards compatibility with the old EVT_* functions.
30 Should be called with either (window, func), (window, ID,
31 func) or (window, ID1, ID2, func) parameters depending on the
34 assert len(args
) == 2 + self
.expectedIDs
38 if self
.expectedIDs
== 0:
40 elif self
.expectedIDs
== 1:
43 elif self
.expectedIDs
== 2:
48 raise ValueError, "Unexpected number of IDs"
50 self
.Bind(target
, id1
, id2
, func
)
53 # These two are square pegs that don't fit the PyEventBinder hole...
54 def EVT_COMMAND(win
, id, cmd
, func
):
55 win
.Connect(id, -1, cmd
, func
)
56 def EVT_COMMAND_RANGE(win
, id1
, id2
, cmd
, func
):
57 win
.Connect(id1
, id2
, cmd
, func
)
60 #---------------------------------------------------------------------------