diff options
| author | bernard.xiong <[email protected]> | 2011-08-17 08:23:59 +0000 |
|---|---|---|
| committer | bernard.xiong <[email protected]> | 2011-08-17 08:23:59 +0000 |
| commit | e1e75c4572cb1e1971d5c636e582d6608ca4aa22 (patch) | |
| tree | c67b70f80950916480c3f88583dac19136f2ae59 /components/rtgui/common | |
| parent | c834d7cdbdde6b28cbc13dc9cfca1456b2d317cb (diff) | |
fixed Chinese font issue; fixed keyboard event handler issue in list widgets.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1673 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/rtgui/common')
| -rw-r--r-- | components/rtgui/common/font_hz_bmp.c | 8 | ||||
| -rw-r--r-- | components/rtgui/common/font_hz_file.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/components/rtgui/common/font_hz_bmp.c b/components/rtgui/common/font_hz_bmp.c index d4b9637e75..fd8ea9b058 100644 --- a/components/rtgui/common/font_hz_bmp.c +++ b/components/rtgui/common/font_hz_bmp.c @@ -19,7 +19,7 @@ static void _rtgui_hz_bitmap_font_draw_text(struct rtgui_font_bitmap* bmp_font, rt_uint8_t* str; rtgui_color_t bc; rt_uint16_t style; - register rt_base_t h, word_bytes; + register rt_base_t h, word_bytes, font_bytes; RT_ASSERT(bmp_font != RT_NULL); @@ -30,6 +30,7 @@ static void _rtgui_hz_bitmap_font_draw_text(struct rtgui_font_bitmap* bmp_font, /* drawing height */ h = (bmp_font->height + rect->y1 > rect->y2)? rect->y2 - rect->y1 : bmp_font->height; word_bytes = (bmp_font->width + 7)/8; + font_bytes = word_bytes * bmp_font->height; str = (rt_uint8_t*)text; @@ -44,15 +45,14 @@ static void _rtgui_hz_bitmap_font_draw_text(struct rtgui_font_bitmap* bmp_font, index = *(str+1) - 0xA0; /* get font pixel data */ - font_ptr = bmp_font->bmp + ( 94*(sect-1) + (index-1) )*(bmp_font->width + bmp_font->height); - + font_ptr = bmp_font->bmp + (94 * (sect - 1) + (index - 1)) * font_bytes; /* draw word */ for (i=0; i < h; i ++) { for (j=0; j < word_bytes; j++) for (k=0; k < 8; k++) { - if ( ((font_ptr[i*2 + j] >> (7-k)) & 0x01) != 0 && + if ( ((font_ptr[i*word_bytes + j] >> (7-k)) & 0x01) != 0 && (rect->x1 + 8 * j + k < rect->x2)) { rtgui_dc_draw_point(dc, rect->x1 + 8*j + k, rect->y1 + i); diff --git a/components/rtgui/common/font_hz_file.c b/components/rtgui/common/font_hz_file.c index ff32b542e9..35e878f24a 100644 --- a/components/rtgui/common/font_hz_file.c +++ b/components/rtgui/common/font_hz_file.c @@ -142,7 +142,7 @@ static void _rtgui_hz_file_font_draw_text(struct rtgui_hz_file_font* hz_file_fon for (j=0; j < word_bytes; j++) for (k=0; k < 8; k++) { - if ( ((font_ptr[i*2 + j] >> (7-k)) & 0x01) != 0 && + if ( ((font_ptr[i*word_bytes + j] >> (7-k)) & 0x01) != 0 && (rect->x1 + 8 * j + k < rect->x2)) { rtgui_dc_draw_point(dc, rect->x1 + 8*j + k, rect->y1 + i); |
