blob: 6b96bff4ddcde2a62c8eb578b6eb6a7627163aa7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class Event:
def __init__(self, start = None, stop = None):
self.list = [ ]
self.start = start
self.stop = stop
def __call__(self, *args, **kwargs):
for x in self.list:
x(*args, **kwargs)
def listen(self, fnc):
was_empty = len(self.list) == 0
self.list.append(fnc)
if was_empty:
if self.start:
self.start()
def unlisten(self, fnc):
self.list.remove(fnc)
if len(self.list) == 0:
if self.stop:
self.stop()
|