bumblebee-status/bumblebee/theme.py
Tobi-wan Kenobi 64f5fc100e [core/theme] Add prefix/postfix methods
Add a way to specify prefix and postfix strings to the full text of a
widget's text. Currently, the theme does not fill those yet.

see #23
2016-12-08 11:31:20 +01:00

38 lines
1.1 KiB
Python

"""Theme support"""
import os
import json
import bumblebee.error
def theme_path():
"""Return the path of the theme directory"""
return os.path.dirname("{}/../themes/".format(os.path.dirname(os.path.realpath(__file__))))
class Theme(object):
"""Represents a collection of icons and colors"""
def __init__(self, name):
self._theme = self.load(name)
def prefix(self):
"""Return the theme prefix for a widget's full text"""
return None
def suffix(self):
"""Return the theme suffix for a widget's full text"""
return None
def load(self, name):
"""Load and parse a theme file"""
path = theme_path()
themefile = "{}/{}.json".format(path, name)
if os.path.isfile(themefile):
try:
with open(themefile) as data:
return json.load(data)
except ValueError as exception:
raise bumblebee.error.ThemeLoadError("JSON error: {}".format(exception))
else:
raise bumblebee.error.ThemeLoadError("no such theme: {}".format(name))
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4