bumblebee-status/bumblebee/output.py
Tobias Witek fca3171556 [modules] Allow modules to provide default click actions
Pass the "output" object to the modules' constructor to allow them to
define their own callbacks.
Any user-provided callbacks take precedence and override those of the
module.
2016-11-01 08:09:10 +01:00

42 lines
894 B
Python

class Output(object):
def __init__(self, theme):
self._theme = theme
self._callbacks = {}
def add_callback(self, cmd, button, module=None):
if module:
module = module.replace("bumblebee.modules.", "")
self._callbacks[(
button,
module,
)] = cmd
def callback(self, event):
cb = self._callbacks.get((
event.get("button", -1),
event.get("name", None),
), None)
if cb is not None: return cb
cb = self._callbacks.get((
event.get("button", -1),
None,
), None)
return cb
def theme(self):
return self._theme
def start(self):
pass
def add(self, obj):
pass
def get(self):
pass
def stop(self):
pass
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4