mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-01-24 14:20:57 +00:00
embed/extmod/modtrezorui: distinguish font ids from colors
This commit is contained in:
parent
c9a58ba22c
commit
2603c477c5
@ -33,13 +33,13 @@
|
|||||||
#define FONT_SIZE 20
|
#define FONT_SIZE 20
|
||||||
|
|
||||||
#ifdef TREZOR_FONT_MONO_ENABLE
|
#ifdef TREZOR_FONT_MONO_ENABLE
|
||||||
#define FONT_MONO 0
|
#define FONT_MONO 1
|
||||||
#endif
|
#endif
|
||||||
#ifdef TREZOR_FONT_NORMAL_ENABLE
|
#ifdef TREZOR_FONT_NORMAL_ENABLE
|
||||||
#define FONT_NORMAL 1
|
#define FONT_NORMAL 2
|
||||||
#endif
|
#endif
|
||||||
#ifdef TREZOR_FONT_BOLD_ENABLE
|
#ifdef TREZOR_FONT_BOLD_ENABLE
|
||||||
#define FONT_BOLD 2
|
#define FONT_BOLD 3
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define AVATAR_IMAGE_SIZE 144
|
#define AVATAR_IMAGE_SIZE 144
|
||||||
|
@ -21,6 +21,9 @@
|
|||||||
|
|
||||||
#include "display.h"
|
#include "display.h"
|
||||||
|
|
||||||
|
#define FONT_PY_TO_C(f) (-(f))
|
||||||
|
#define FONT_C_TO_PY(f) (-(f))
|
||||||
|
|
||||||
/// class Display:
|
/// class Display:
|
||||||
/// '''
|
/// '''
|
||||||
/// Provide access to device 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_int_t y = mp_obj_get_int(args[2]);
|
||||||
mp_buffer_info_t text;
|
mp_buffer_info_t text;
|
||||||
mp_get_buffer_raise(args[3], &text, MP_BUFFER_READ);
|
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 fgcolor = mp_obj_get_int(args[5]);
|
||||||
mp_int_t bgcolor = mp_obj_get_int(args[6]);
|
mp_int_t bgcolor = mp_obj_get_int(args[6]);
|
||||||
mp_int_t minwidth = (n_args > 7) ? mp_obj_get_int(args[7]) : 0;
|
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_int_t y = mp_obj_get_int(args[2]);
|
||||||
mp_buffer_info_t text;
|
mp_buffer_info_t text;
|
||||||
mp_get_buffer_raise(args[3], &text, MP_BUFFER_READ);
|
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 fgcolor = mp_obj_get_int(args[5]);
|
||||||
mp_int_t bgcolor = mp_obj_get_int(args[6]);
|
mp_int_t bgcolor = mp_obj_get_int(args[6]);
|
||||||
mp_int_t minwidth = (n_args > 7) ? mp_obj_get_int(args[7]) : 0;
|
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_int_t y = mp_obj_get_int(args[2]);
|
||||||
mp_buffer_info_t text;
|
mp_buffer_info_t text;
|
||||||
mp_get_buffer_raise(args[3], &text, MP_BUFFER_READ);
|
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 fgcolor = mp_obj_get_int(args[5]);
|
||||||
mp_int_t bgcolor = mp_obj_get_int(args[6]);
|
mp_int_t bgcolor = mp_obj_get_int(args[6]);
|
||||||
mp_int_t minwidth = (n_args > 7) ? mp_obj_get_int(args[7]) : 0;
|
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) {
|
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_buffer_info_t txt;
|
||||||
mp_get_buffer_raise(text, &txt, MP_BUFFER_READ);
|
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);
|
int w = display_text_width(txt.buf, txt.len, f);
|
||||||
return mp_obj_new_int(w);
|
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_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_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_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_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_NORMAL) },
|
{ 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_BOLD) },
|
{ 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);
|
STATIC MP_DEFINE_CONST_DICT(mod_trezorui_Display_locals_dict, mod_trezorui_Display_locals_dict_table);
|
||||||
|
|
||||||
|
@ -6,7 +6,8 @@ TEXT_LINE_HEIGHT = const(26)
|
|||||||
TEXT_MARGIN_LEFT = const(14)
|
TEXT_MARGIN_LEFT = const(14)
|
||||||
TEXT_MAX_LINES = const(4)
|
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:
|
def render_words(words: list, new_lines: bool, max_lines: int) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user