[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.
This commit is contained in:
Tobias Witek 2016-11-01 08:09:10 +01:00
parent 63e041259f
commit fca3171556
11 changed files with 20 additions and 15 deletions

View file

@ -11,7 +11,7 @@ def description():
return "Displays battery status, percentage and whether it's charging or discharging."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._battery = "BAT0" if not args else args[0]
self._capacity = 0

View file

@ -11,7 +11,7 @@ def description():
return "Displays CPU utilization across all CPUs."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._perc = psutil.cpu_percent(percpu=False)

View file

@ -12,10 +12,13 @@ def description():
return "Shows free diskspace, total diskspace and the percentage of free disk space."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._path = args[0] if args else "/"
output.add_callback(module=self.__module__,
button=1, cmd="nautilus {instance}")
def data(self):
st = os.statvfs(self._path)

View file

@ -50,7 +50,7 @@ def get_dnf_info(obj):
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._interval = args[0] if args else 30*60
self._counter = {}

View file

@ -12,7 +12,7 @@ def description():
return "Shows available RAM, total amount of RAM and the percentage of available RAM."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._mem = psutil.virtual_memory()

View file

@ -12,7 +12,7 @@ def description():
return "Displays the names, IP addresses and status of each available interface."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._exclude = ( "lo", "virbr" )
self._interfaces = [ i for i in netifaces.interfaces() if not i.startswith(self._exclude) ]

View file

@ -26,7 +26,7 @@ def description():
return "See 'pasource'."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
self._module = self.__module__.split(".")[-1]

View file

@ -11,7 +11,7 @@ def description():
return "Draws an empty field."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
def data(self):

View file

@ -18,7 +18,7 @@ def description():
return "Displays the current time, using the optional format string as input for strftime."
class Module(bumblebee.module.Module):
def __init__(self, args):
def __init__(self, output, args):
super(Module, self).__init__(args)
module = self.__module__.split(".")[-1]