[core] Added min-width and alignment themeing
Added theme-options ("minwidth" and "align") for setting the minimum width and the alignment of a widget. Also, allow widget to provide defaults for the theme options by setting an attribute in their store called "theme-<name of the theme option>". For example, a widget can now define a default alignment by using: widget.set("theme-align", "default-value").
This commit is contained in:
parent
a9a6bcd015
commit
92be7d3020
2 changed files with 11 additions and 0 deletions
|
@ -89,6 +89,8 @@ class I3BarOutput(object):
|
||||||
"background": self._theme.bg(widget),
|
"background": self._theme.bg(widget),
|
||||||
"separator_block_width": self._theme.separator_block_width(widget),
|
"separator_block_width": self._theme.separator_block_width(widget),
|
||||||
"separator": True if separator is None else False,
|
"separator": True if separator is None else False,
|
||||||
|
"min_width": self._theme.minwidth(widget),
|
||||||
|
"align": self._theme.align(widget),
|
||||||
"instance": widget.id,
|
"instance": widget.id,
|
||||||
"name": module.id,
|
"name": module.id,
|
||||||
})
|
})
|
||||||
|
|
|
@ -74,6 +74,14 @@ class Theme(object):
|
||||||
"""Return the background color for this widget"""
|
"""Return the background color for this widget"""
|
||||||
return self._get(widget, "bg", None)
|
return self._get(widget, "bg", None)
|
||||||
|
|
||||||
|
def align(self, widget):
|
||||||
|
"""Return the widget alignment"""
|
||||||
|
return self._get(widget, "align", None)
|
||||||
|
|
||||||
|
def minwidth(self, widget):
|
||||||
|
"""Return the minimum width string for this widget"""
|
||||||
|
return self._get(widget, "minwidth", "")
|
||||||
|
|
||||||
def separator(self, widget):
|
def separator(self, widget):
|
||||||
"""Return the separator between widgets"""
|
"""Return the separator between widgets"""
|
||||||
return self._get(widget, "separator", None)
|
return self._get(widget, "separator", None)
|
||||||
|
@ -131,6 +139,7 @@ class Theme(object):
|
||||||
state_themes.append(self._get(widget, state, {}))
|
state_themes.append(self._get(widget, state, {}))
|
||||||
|
|
||||||
value = self._defaults.get(name, default)
|
value = self._defaults.get(name, default)
|
||||||
|
value = widget.get("theme-{}".format(name), value)
|
||||||
value = self._cycle.get(name, value)
|
value = self._cycle.get(name, value)
|
||||||
value = module_theme.get(name, value)
|
value = module_theme.get(name, value)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue