Provide Color class mapping
Dynamically generate the AttrMap's based on our palette keys. Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
This commit is contained in:
parent
bbc0e317f5
commit
6702ae87cc
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue