From 2d98c0e7be8e0803de4b4e8e9ba03635bcef91c8 Mon Sep 17 00:00:00 2001 From: yangfasheng Date: Tue, 12 Dec 2017 19:46:38 +0800 Subject: gui 引擎代码更新; MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/gui/src/dc.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'components/gui/src/dc.c') diff --git a/components/gui/src/dc.c b/components/gui/src/dc.c index b7d16d30fa..004195a43f 100644 --- a/components/gui/src/dc.c +++ b/components/gui/src/dc.c @@ -313,7 +313,6 @@ void rtgui_dc_draw_text(struct rtgui_dc *dc, const char *text, struct rtgui_rect { rt_uint32_t len; struct rtgui_font *font; - struct rtgui_rect text_rect; RT_ASSERT(dc != RT_NULL); @@ -324,12 +323,11 @@ void rtgui_dc_draw_text(struct rtgui_dc *dc, const char *text, struct rtgui_rect font = rtgui_font_default(); } - /* text align */ - rtgui_font_get_metrics(font, text, &text_rect); - rtgui_rect_moveto_align(rect, &text_rect, RTGUI_DC_TEXTALIGN(dc)); - len = strlen((const char *)text); - rtgui_font_draw(font, dc, text, len, &text_rect); + if (len == 0) + return; + + rtgui_font_draw(font, dc, text, len, rect); } RTM_EXPORT(rtgui_dc_draw_text); @@ -349,7 +347,7 @@ void rtgui_dc_draw_text_stroke(struct rtgui_dc *dc, const char *text, struct rtg for (y = -1; y < 2; y++) { r = *rect; - rtgui_rect_moveto(&r, x, y); + rtgui_rect_move(&r, x, y); rtgui_dc_draw_text(dc, text, &r); } } @@ -1781,7 +1779,7 @@ void rtgui_dc_rect_to_device(struct rtgui_dc *dc, struct rtgui_rect *rect) /* get owner */ owner = RTGUI_CONTAINER_OF(dc, struct rtgui_widget, dc_type); - rtgui_rect_moveto(rect, owner->extent.x1, owner->extent.y1); + rtgui_rect_move(rect, owner->extent.x1, owner->extent.y1); break; } case RTGUI_DC_HW: @@ -1791,7 +1789,7 @@ void rtgui_dc_rect_to_device(struct rtgui_dc *dc, struct rtgui_rect *rect) dc_hw = (struct rtgui_dc_hw *) dc; owner = dc_hw->owner; - rtgui_rect_moveto(rect, owner->extent.x1, owner->extent.y1); + rtgui_rect_move(rect, owner->extent.x1, owner->extent.y1); break; } @@ -1920,7 +1918,7 @@ void rtgui_dc_end_drawing(struct rtgui_dc *dc, rt_bool_t update) RTGUI_OBJECT(win)->event_handler(RTGUI_OBJECT(win), (struct rtgui_event *)&ewin_update); } - if (rtgui_graphic_driver_is_vmode() == RT_FALSE && update) + if (rtgui_graphic_driver_is_vmode() == RT_FALSE && win->update == 0 && update) { #ifdef RTGUI_USING_MOUSE_CURSOR rt_mutex_release(&cursor_mutex); -- cgit v1.3.1