summaryrefslogtreecommitdiffstats
path: root/powerline/renderers/pango_markup.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 16:40:16 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 16:40:16 +0000
commit3f25952c13d5847d510c0cae22a8ba876638d570 (patch)
tree02f505f016ed5a1029277dcae520d5e2a75906fb /powerline/renderers/pango_markup.py
parentInitial commit. (diff)
downloadpowerline-3f25952c13d5847d510c0cae22a8ba876638d570.tar.xz
powerline-3f25952c13d5847d510c0cae22a8ba876638d570.zip
Adding upstream version 2.8.3.upstream/2.8.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'powerline/renderers/pango_markup.py')
-rw-r--r--powerline/renderers/pango_markup.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/powerline/renderers/pango_markup.py b/powerline/renderers/pango_markup.py
new file mode 100644
index 0000000..3c1a675
--- /dev/null
+++ b/powerline/renderers/pango_markup.py
@@ -0,0 +1,39 @@
+# vim:fileencoding=utf-8:noet
+from __future__ import (unicode_literals, division, absolute_import, print_function)
+
+from xml.sax.saxutils import escape as _escape
+
+from powerline.renderer import Renderer
+from powerline.colorscheme import ATTR_BOLD, ATTR_ITALIC, ATTR_UNDERLINE
+
+
+class PangoMarkupRenderer(Renderer):
+ '''Powerline Pango markup segment renderer.'''
+
+ @staticmethod
+ def hlstyle(*args, **kwargs):
+ # We don’t need to explicitly reset attributes, so skip those calls
+ return ''
+
+ def hl(self, contents, fg=None, bg=None, attrs=None, **kwargs):
+ '''Highlight a segment.'''
+ awesome_attr = []
+ if fg is not None:
+ if fg is not False and fg[1] is not False:
+ awesome_attr += ['foreground="#{0:06x}"'.format(fg[1])]
+ if bg is not None:
+ if bg is not False and bg[1] is not False:
+ awesome_attr += ['background="#{0:06x}"'.format(bg[1])]
+ if attrs is not None and attrs is not False:
+ if attrs & ATTR_BOLD:
+ awesome_attr += ['font_weight="bold"']
+ if attrs & ATTR_ITALIC:
+ awesome_attr += ['font_style="italic"']
+ if attrs & ATTR_UNDERLINE:
+ awesome_attr += ['underline="single"']
+ return '<span ' + ' '.join(awesome_attr) + '>' + contents + '</span>'
+
+ escape = staticmethod(_escape)
+
+
+renderer = PangoMarkupRenderer