diff --git a/subiquity/ui/utils.py b/subiquity/ui/utils.py index 97066a24..2860e02c 100644 --- a/subiquity/ui/utils.py +++ b/subiquity/ui/utils.py @@ -16,7 +16,9 @@ """ UI utilities """ from urwid import Padding as _Padding +from urwid import AttrMap from functools import partialmethod +from subiquity.palette import STYLES def apply_padders(cls): @@ -45,14 +47,32 @@ def apply_padders(cls): partialmethod(_Padding, align='center', width=('relative', i))) setattr(cls, 'left_{}'.format(i), - partialmethod(_Padding, align='left', - width=('relative', i))) + partialmethod(_Padding, left=i)) setattr(cls, 'right_{}'.format(i), - partialmethod(_Padding, align='right', - width=('relative', i))) + partialmethod(_Padding, right=i)) return cls @apply_padders class Padding: + """ Partial methods for :class:`urwid.Padding` """ + pass + + +def apply_style_map(cls): + """ Applies AttrMap attributes to Color class + + Eg: + + Color.frame_header(Text("I'm text in the Orange frame header")) + Color.body(Text("Im text in wrapped with the body color")) + """ + for k in STYLES: + setattr(cls, k[0], partialmethod(AttrMap, attr_map=k[0])) + return cls + + +@apply_style_map +class Color: + """ Partial methods for :class:`urwid.AttrMap` """ pass