mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-03 21:32:33 +00:00
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
from micropython import const
|
|
|
|
from trezor import loop, ui
|
|
from trezor.ui import Widget
|
|
from trezor.ui.button import BTN_CLICKED, Button
|
|
|
|
if __debug__:
|
|
from apps.debug import input_signal
|
|
|
|
|
|
_W12 = const(12)
|
|
_W18 = const(18)
|
|
_W24 = const(24)
|
|
|
|
|
|
class WordSelector(Widget):
|
|
|
|
def __init__(self, content):
|
|
self.content = content
|
|
self.w12 = Button(ui.grid(6, n_y=4, n_x=3, cells_y=2), str(_W12),
|
|
style=ui.BTN_KEY)
|
|
self.w18 = Button(ui.grid(7, n_y=4, n_x=3, cells_y=2), str(_W18),
|
|
style=ui.BTN_KEY)
|
|
self.w24 = Button(ui.grid(8, n_y=4, n_x=3, cells_y=2), str(_W24),
|
|
style=ui.BTN_KEY)
|
|
|
|
def render(self):
|
|
self.w12.render()
|
|
self.w18.render()
|
|
self.w24.render()
|
|
|
|
def touch(self, event, pos):
|
|
if self.w12.touch(event, pos) == BTN_CLICKED:
|
|
return _W12
|
|
if self.w18.touch(event, pos) == BTN_CLICKED:
|
|
return _W18
|
|
if self.w24.touch(event, pos) == BTN_CLICKED:
|
|
return _W24
|
|
|
|
async def __iter__(self):
|
|
if __debug__:
|
|
result = await loop.spawn(super().__iter__(), self.content, input_signal)
|
|
if isinstance(result, str):
|
|
return int(result)
|
|
else:
|
|
return result
|
|
else:
|
|
return await loop.spawn(super().__iter__(), self.content)
|