Skip to content

Commit ff1f80a

Browse files
committed
- using mui_canvas_set_clip_window & mui_canvas_draw_utf8_clip to fit nickname into ui
1 parent 8ced836 commit ff1f80a

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

fw/application/src/app/chameleon/view/chameleon_view.c

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,26 @@ static void chameleon_view_on_draw(mui_view_t *p_view, mui_canvas_t *p_canvas) {
4343

4444
mui_canvas_set_draw_color(p_canvas, 1);
4545

46+
mui_rect_t clip_win_prev;
47+
mui_rect_t clip_win_cur;
48+
mui_canvas_get_clip_window(p_canvas, &clip_win_prev);
49+
x = 8;
50+
clip_win_cur.x = x;
51+
clip_win_cur.y = 0;
52+
clip_win_cur.w = mui_canvas_get_width(p_canvas) - x * 2;
53+
clip_win_cur.h = mui_canvas_get_height(p_canvas);
54+
mui_canvas_set_clip_window(p_canvas, &clip_win_cur);
55+
4656
tag_helper_get_nickname(buff, sizeof(buff));
4757

48-
size_t i = sizeof(buff);
49-
while (mui_canvas_get_width(p_canvas) - 14 < mui_canvas_get_utf8_width(p_canvas, buff))
50-
{
51-
buff[--i] = '\0';
52-
}
53-
5458
y = 13 + (mui_canvas_get_height(p_canvas) - 16) / 2;
55-
x = (mui_canvas_get_width(p_canvas) - mui_canvas_get_utf8_width(p_canvas, buff)) / 2;
56-
mui_canvas_draw_utf8(p_canvas, x, y, buff);
59+
if (clip_win_cur.w > mui_canvas_get_utf8_width(p_canvas, buff)) {
60+
x += (clip_win_cur.w - mui_canvas_get_utf8_width(p_canvas, buff)) / 2;
61+
}
62+
mui_canvas_draw_utf8_clip(p_canvas, x, y, buff);
63+
64+
mui_canvas_set_clip_window(p_canvas, &clip_win_prev);
65+
5766
mui_canvas_draw_utf8(p_canvas, 0, y, "<");
5867
mui_canvas_draw_utf8(p_canvas, mui_canvas_get_width(p_canvas) - 5, y, ">");
5968

0 commit comments

Comments
 (0)