4b6b4b9052
Add a new set of parameters to allow modules to be customly minimized. It works like this: If a module has the parameter "minimize" set to a true value, it will *not* use the built-in minimizer, and instead look for "minimized" parameters (e.g. if date has the "format" parameter, it would look for "minimized.format" when in minimized state). This allows the user to have different parametrization for different states. Also, using the "start-minimized" parameter allows for modules to start minimized. Note: This is hinging off the *module*, not the *widget* (the current, hard-coded hiding is per-widget). This means that modules using this method will only show a single widget - the first one - when in minimized state. The module author has to account for that. see #791
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
# pylint: disable=C0111,R0903
|
|
|
|
"""Displays the current date and time.
|
|
|
|
Parameters:
|
|
* datetime.format: strftime()-compatible formatting string
|
|
* datetime.locale: locale to use rather than the system default
|
|
"""
|
|
|
|
from __future__ import absolute_import
|
|
import datetime
|
|
import locale
|
|
|
|
import core.module
|
|
import core.widget
|
|
import core.input
|
|
|
|
|
|
class Module(core.module.Module):
|
|
def __init__(self, config, theme):
|
|
super().__init__(config, theme, core.widget.Widget(self.full_text))
|
|
|
|
core.input.register(self, button=core.input.LEFT_MOUSE, cmd="calendar")
|
|
l = locale.getdefaultlocale()
|
|
if not l or l == (None, None):
|
|
l = ("en_US", "UTF-8")
|
|
lcl = self.parameter("locale", ".".join(l))
|
|
try:
|
|
locale.setlocale(locale.LC_TIME, lcl.split("."))
|
|
except Exception as e:
|
|
locale.setlocale(locale.LC_TIME, ("en_US", "UTF-8"))
|
|
|
|
def default_format(self):
|
|
return "%x %X"
|
|
|
|
def full_text(self, widget):
|
|
enc = locale.getpreferredencoding()
|
|
fmt = self.parameter("format", self.default_format())
|
|
retval = datetime.datetime.now().strftime(fmt)
|
|
if hasattr(retval, "decode"):
|
|
return retval.decode(enc)
|
|
return retval
|
|
|
|
|
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|