trezor-core/src/trezor/ui/text.py

33 lines
1012 B
Python

from micropython import const
from trezor import ui
TEXT_HEADER_HEIGHT = const(48)
TEXT_LINE_HEIGHT = const(26)
TEXT_MARGIN_LEFT = const(14)
class Text(ui.Widget):
def __init__(self, header_text, header_icon, *content, icon_color=ui.ORANGE_ICON):
self.header_text = header_text
self.header_icon = header_icon
self.icon_color = icon_color
self.content = content
def render(self):
offset_x = TEXT_MARGIN_LEFT
offset_y = TEXT_LINE_HEIGHT + TEXT_HEADER_HEIGHT
style = ui.NORMAL
fg = ui.FG
bg = ui.BG
ui.header(self.header_text, self.header_icon, ui.TITLE_GREY, ui.BG, self.icon_color)
for item in self.content:
if isinstance(item, str):
ui.display.text(offset_x, offset_y, item, style, fg, bg)
offset_y += TEXT_LINE_HEIGHT
elif item == ui.MONO or item == ui.NORMAL or item == ui.BOLD:
style = item
else:
fg = item