diff --git a/embed/extmod/modtrezorui/display.h b/embed/extmod/modtrezorui/display.h index ea9befdbb5..3891c1d886 100644 --- a/embed/extmod/modtrezorui/display.h +++ b/embed/extmod/modtrezorui/display.h @@ -33,13 +33,13 @@ #define FONT_SIZE 20 #ifdef TREZOR_FONT_MONO_ENABLE -#define FONT_MONO 0 +#define FONT_MONO 1 #endif #ifdef TREZOR_FONT_NORMAL_ENABLE -#define FONT_NORMAL 1 +#define FONT_NORMAL 2 #endif #ifdef TREZOR_FONT_BOLD_ENABLE -#define FONT_BOLD 2 +#define FONT_BOLD 3 #endif #define AVATAR_IMAGE_SIZE 144 diff --git a/embed/extmod/modtrezorui/modtrezorui-display.h b/embed/extmod/modtrezorui/modtrezorui-display.h index e0dbe6d60a..547278da87 100644 --- a/embed/extmod/modtrezorui/modtrezorui-display.h +++ b/embed/extmod/modtrezorui/modtrezorui-display.h @@ -21,6 +21,9 @@ #include "display.h" +#define FONT_PY_TO_C(f) (-(f)) +#define FONT_C_TO_PY(f) (-(f)) + /// class Display: /// ''' /// Provide access to device display. @@ -206,7 +209,7 @@ STATIC mp_obj_t mod_trezorui_Display_text(size_t n_args, const mp_obj_t *args) { mp_int_t y = mp_obj_get_int(args[2]); mp_buffer_info_t text; mp_get_buffer_raise(args[3], &text, MP_BUFFER_READ); - mp_int_t font = mp_obj_get_int(args[4]); + mp_int_t font = FONT_PY_TO_C(mp_obj_get_int(args[4])); mp_int_t fgcolor = mp_obj_get_int(args[5]); mp_int_t bgcolor = mp_obj_get_int(args[6]); mp_int_t minwidth = (n_args > 7) ? mp_obj_get_int(args[7]) : 0; @@ -232,7 +235,7 @@ STATIC mp_obj_t mod_trezorui_Display_text_center(size_t n_args, const mp_obj_t * mp_int_t y = mp_obj_get_int(args[2]); mp_buffer_info_t text; mp_get_buffer_raise(args[3], &text, MP_BUFFER_READ); - mp_int_t font = mp_obj_get_int(args[4]); + mp_int_t font = FONT_PY_TO_C(mp_obj_get_int(args[4])); mp_int_t fgcolor = mp_obj_get_int(args[5]); mp_int_t bgcolor = mp_obj_get_int(args[6]); mp_int_t minwidth = (n_args > 7) ? mp_obj_get_int(args[7]) : 0; @@ -258,7 +261,7 @@ STATIC mp_obj_t mod_trezorui_Display_text_right(size_t n_args, const mp_obj_t *a mp_int_t y = mp_obj_get_int(args[2]); mp_buffer_info_t text; mp_get_buffer_raise(args[3], &text, MP_BUFFER_READ); - mp_int_t font = mp_obj_get_int(args[4]); + mp_int_t font = FONT_PY_TO_C(mp_obj_get_int(args[4])); mp_int_t fgcolor = mp_obj_get_int(args[5]); mp_int_t bgcolor = mp_obj_get_int(args[6]); mp_int_t minwidth = (n_args > 7) ? mp_obj_get_int(args[7]) : 0; @@ -279,7 +282,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_trezorui_Display_text_right_obj, STATIC mp_obj_t mod_trezorui_Display_text_width(mp_obj_t self, mp_obj_t text, mp_obj_t font) { mp_buffer_info_t txt; mp_get_buffer_raise(text, &txt, MP_BUFFER_READ); - mp_int_t f = mp_obj_get_int(font); + mp_int_t f = FONT_PY_TO_C(mp_obj_get_int(font)); int w = display_text_width(txt.buf, txt.len, f); return mp_obj_new_int(w); } @@ -456,9 +459,9 @@ STATIC const mp_rom_map_elem_t mod_trezorui_Display_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_WIDTH), MP_OBJ_NEW_SMALL_INT(DISPLAY_RESX) }, { MP_ROM_QSTR(MP_QSTR_HEIGHT), MP_OBJ_NEW_SMALL_INT(DISPLAY_RESY) }, { MP_ROM_QSTR(MP_QSTR_FONT_SIZE), MP_OBJ_NEW_SMALL_INT(FONT_SIZE) }, - { MP_ROM_QSTR(MP_QSTR_FONT_MONO), MP_OBJ_NEW_SMALL_INT(FONT_MONO) }, - { MP_ROM_QSTR(MP_QSTR_FONT_NORMAL), MP_OBJ_NEW_SMALL_INT(FONT_NORMAL) }, - { MP_ROM_QSTR(MP_QSTR_FONT_BOLD), MP_OBJ_NEW_SMALL_INT(FONT_BOLD) }, + { MP_ROM_QSTR(MP_QSTR_FONT_MONO), MP_OBJ_NEW_SMALL_INT(FONT_C_TO_PY(FONT_MONO)) }, + { MP_ROM_QSTR(MP_QSTR_FONT_NORMAL), MP_OBJ_NEW_SMALL_INT(FONT_C_TO_PY(FONT_NORMAL)) }, + { MP_ROM_QSTR(MP_QSTR_FONT_BOLD), MP_OBJ_NEW_SMALL_INT(FONT_C_TO_PY(FONT_BOLD)) }, }; STATIC MP_DEFINE_CONST_DICT(mod_trezorui_Display_locals_dict, mod_trezorui_Display_locals_dict_table); diff --git a/src/trezor/ui/text.py b/src/trezor/ui/text.py index eeabc91ce1..3ed2ed87e4 100644 --- a/src/trezor/ui/text.py +++ b/src/trezor/ui/text.py @@ -6,7 +6,8 @@ TEXT_LINE_HEIGHT = const(26) TEXT_MARGIN_LEFT = const(14) TEXT_MAX_LINES = const(4) -BR = const(-1) +# needs to be different from all colors and font ids +BR = const(-256) def render_words(words: list, new_lines: bool, max_lines: int) -> None: