From 6ceb3f2770f6d772e57a484e3d546be30f24dfa8 Mon Sep 17 00:00:00 2001 From: Jan Pochyla Date: Wed, 30 May 2018 18:47:33 +0200 Subject: [PATCH] embed/extmod/modtrezorui: text functions return width --- .../extmod/modtrezorui/modtrezorui-display.h | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/embed/extmod/modtrezorui/modtrezorui-display.h b/embed/extmod/modtrezorui/modtrezorui-display.h index 5e2f484917..e0dbe6d60a 100644 --- a/embed/extmod/modtrezorui/modtrezorui-display.h +++ b/embed/extmod/modtrezorui/modtrezorui-display.h @@ -194,10 +194,12 @@ STATIC mp_obj_t mod_trezorui_Display_print(mp_obj_t self, mp_obj_t text) { } STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorui_Display_print_obj, mod_trezorui_Display_print); -/// def text(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> None: +/// def text(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> int: /// ''' /// Renders left-aligned text at position (x,y) where x is left position and y is baseline. /// Font font is used for rendering, fgcolor is used as foreground color, bgcolor as background. +/// Fills at least minwidth pixels with bgcolor. +/// Returns width of rendered text in pixels. /// ''' STATIC mp_obj_t mod_trezorui_Display_text(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); @@ -214,14 +216,16 @@ STATIC mp_obj_t mod_trezorui_Display_text(size_t n_args, const mp_obj_t *args) { display_bar(x, y - 18, barwidth, 23, bgcolor); // prefill end display_text(x, y, text.buf, text.len, font, fgcolor, bgcolor); - return mp_const_none; + return mp_obj_new_int(w); } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_trezorui_Display_text_obj, 7, 8, mod_trezorui_Display_text); -/// def text_center(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> None: +/// def text_center(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> int: /// ''' /// Renders text centered at position (x,y) where x is text center and y is baseline. /// Font font is used for rendering, fgcolor is used as foreground color, bgcolor as background. +/// Fills at least minwidth pixels with bgcolor. +/// Returns width of rendered text in pixels. /// ''' STATIC mp_obj_t mod_trezorui_Display_text_center(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); @@ -238,14 +242,16 @@ STATIC mp_obj_t mod_trezorui_Display_text_center(size_t n_args, const mp_obj_t * display_bar(x - barwidth / 2, y - 18, barwidth, 23, bgcolor); // prefill end display_text_center(x, y, text.buf, text.len, font, fgcolor, bgcolor); - return mp_const_none; + return mp_obj_new_int(w); } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_trezorui_Display_text_center_obj, 7, 8, mod_trezorui_Display_text_center); -/// def text_right(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> None: +/// def text_right(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> int: /// ''' /// Renders right-aligned text at position (x,y) where x is right position and y is baseline. /// Font font is used for rendering, fgcolor is used as foreground color, bgcolor as background. +/// Fills at least minwidth pixels with bgcolor. +/// Returns width of rendered text in pixels. /// ''' STATIC mp_obj_t mod_trezorui_Display_text_right(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); @@ -262,7 +268,7 @@ STATIC mp_obj_t mod_trezorui_Display_text_right(size_t n_args, const mp_obj_t *a display_bar(x - barwidth, y - 18, barwidth, 23, bgcolor); // prefill end display_text_right(x, y, text.buf, text.len, font, fgcolor, bgcolor); - return mp_const_none; + return mp_obj_new_int(w); } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_trezorui_Display_text_right_obj, 7, 8, mod_trezorui_Display_text_right); @@ -275,7 +281,7 @@ STATIC mp_obj_t mod_trezorui_Display_text_width(mp_obj_t self, mp_obj_t text, mp mp_get_buffer_raise(text, &txt, MP_BUFFER_READ); mp_int_t f = mp_obj_get_int(font); int w = display_text_width(txt.buf, txt.len, f); - return MP_OBJ_NEW_SMALL_INT(w); + return mp_obj_new_int(w); } STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_trezorui_Display_text_width_obj, mod_trezorui_Display_text_width);