bumblebee-status/core/event.py
2020-04-04 13:57:54 +02:00

21 lines
513 B
Python

__callbacks = {}
def register(event, callback, *args, **kwargs):
cb = callback
if len(args) + len(kwargs) > 0:
cb = lambda: callback(*args, **kwargs)
__callbacks.setdefault(event, []).append(cb)
def clear():
__callbacks.clear()
def trigger(event, *args, **kwargs):
for callback in __callbacks.get(event, []):
if len(args) + len(kwargs) == 0:
callback()
else:
callback(*args, **kwargs)
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4