[core/theme] Add support for foreground and background colors
Themes can now define "fg" and "bg" attributes that are used for foreground (text) color and background color. see #23
This commit is contained in:
parent
0c7884d170
commit
c52cb99518
6 changed files with 58 additions and 2 deletions
|
@ -19,6 +19,8 @@ class TestI3BarOutput(unittest.TestCase):
|
|||
self.expectedStart = json.dumps({"version": 1, "click_events": True}) + "[\n"
|
||||
self.expectedStop = "]\n"
|
||||
self.someWidget = MockWidget("foo bar baz")
|
||||
self.anyColor = "#ababab"
|
||||
self.anotherColor = "#cccccc"
|
||||
|
||||
@mock.patch("sys.stdout", new_callable=StringIO)
|
||||
def test_start(self, stdout):
|
||||
|
@ -89,4 +91,14 @@ class TestI3BarOutput(unittest.TestCase):
|
|||
self.theme.suffix(self.someWidget)
|
||||
))
|
||||
|
||||
@mock.patch("sys.stdout", new_callable=StringIO)
|
||||
def test_colors(self, stdout):
|
||||
self.theme.set_fg(self.anyColor)
|
||||
self.theme.set_bg(self.anotherColor)
|
||||
self.output.draw(self.someWidget)
|
||||
self.output.flush()
|
||||
result = json.loads(stdout.getvalue())[0]
|
||||
self.assertEquals(result["color"], self.anyColor)
|
||||
self.assertEquals(result["background"], self.anotherColor)
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
|
@ -14,10 +14,14 @@ class TestTheme(unittest.TestCase):
|
|||
self.theme = Theme(self.validThemeName)
|
||||
|
||||
self.widgetTheme = "test-widget"
|
||||
self.defaultColor = "#000000"
|
||||
self.defaultBgColor = "#111111"
|
||||
self.widgetBgColor = "#222222"
|
||||
self.defaultPrefix = "default-prefix"
|
||||
self.defaultSuffix = "default-suffix"
|
||||
self.widgetPrefix = "widget-prefix"
|
||||
self.widgetSuffix = "widget-suffix"
|
||||
self.widgetColor = "#ababab"
|
||||
|
||||
def test_load_valid_theme(self):
|
||||
try:
|
||||
|
@ -43,4 +47,14 @@ class TestTheme(unittest.TestCase):
|
|||
self.someWidget.set_module(self.widgetTheme)
|
||||
self.assertEquals(self.theme.prefix(self.someWidget), self.widgetPrefix)
|
||||
|
||||
def test_widget_fg(self):
|
||||
self.assertEquals(self.theme.fg(self.someWidget), self.defaultColor)
|
||||
self.someWidget.set_module(self.widgetTheme)
|
||||
self.assertEquals(self.theme.fg(self.someWidget), self.widgetColor)
|
||||
|
||||
def test_widget_bg(self):
|
||||
self.assertEquals(self.theme.bg(self.someWidget), self.defaultBgColor)
|
||||
self.someWidget.set_module(self.widgetTheme)
|
||||
self.assertEquals(self.theme.bg(self.someWidget), self.widgetBgColor)
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
|
@ -49,6 +49,8 @@ class MockTheme(object):
|
|||
def __init__(self):
|
||||
self._prefix = None
|
||||
self._suffix = None
|
||||
self._fg = None
|
||||
self._bg = None
|
||||
|
||||
def set_prefix(self, value):
|
||||
self._prefix = value
|
||||
|
@ -56,10 +58,22 @@ class MockTheme(object):
|
|||
def set_suffix(self, value):
|
||||
self._suffix = value
|
||||
|
||||
def set_fg(self, value):
|
||||
self._fg = value
|
||||
|
||||
def set_bg(self, value):
|
||||
self._bg = value
|
||||
|
||||
def prefix(self, widget):
|
||||
return self._prefix
|
||||
|
||||
def suffix(self, widget):
|
||||
return self._suffix
|
||||
|
||||
def fg(self, widget):
|
||||
return self._fg
|
||||
|
||||
def bg(self, widget):
|
||||
return self._bg
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue