From 5837cd792ccd5862bd9de0a2b0909b580116aa90 Mon Sep 17 00:00:00 2001 From: "bernard.xiong@gmail.com" Date: Sun, 7 Nov 2010 23:27:08 +0000 Subject: [PATCH] change the selection block to square in list_view icon mode. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1042 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- components/rtgui/common/rtgui_system.c | 44 ++++++++++++++------------ components/rtgui/widgets/list_view.c | 10 +++--- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/components/rtgui/common/rtgui_system.c b/components/rtgui/common/rtgui_system.c index cb04189266..28071e6c28 100644 --- a/components/rtgui/common/rtgui_system.c +++ b/components/rtgui/common/rtgui_system.c @@ -104,7 +104,9 @@ static void rtgui_event_dump(rt_thread_t tid, rtgui_event_t* event) if (event->sender != RT_NULL) sender = event->sender->name; - if (event->type == RTGUI_EVENT_TIMER) + if ((event->type == RTGUI_EVENT_TIMER) || + (event->type == RTGUI_EVENT_UPDATE_BEGIN) || + (event->type == RTGUI_EVENT_UPDATE_END)) { /* don't dump timer event */ return ; @@ -127,6 +129,8 @@ static void rtgui_event_dump(rt_thread_t tid, rtgui_event_t* event) struct rtgui_event_kbd *ekbd = (struct rtgui_event_kbd*) event; if (ekbd->wid != RT_NULL) rt_kprintf("win: %s", ekbd->wid->title); + if (RTGUI_KBD_IS_UP(ekbd)) rt_kprintf(", up"); + else rt_kprintf(", down"); } break; @@ -324,25 +328,25 @@ rtgui_thread_t* rtgui_thread_self() return thread; } -void rtgui_thread_set_onidle(rtgui_idle_func onidle) -{ - struct rtgui_thread* thread; - - thread = rtgui_thread_self(); - RT_ASSERT(thread != RT_NULL); - - thread->on_idle = onidle; -} - -rtgui_idle_func rtgui_thread_get_onidle() -{ - struct rtgui_thread* thread; - - thread = rtgui_thread_self(); - RT_ASSERT(thread != RT_NULL); - - return thread->on_idle; -} +void rtgui_thread_set_onidle(rtgui_idle_func onidle) +{ + struct rtgui_thread* thread; + + thread = rtgui_thread_self(); + RT_ASSERT(thread != RT_NULL); + + thread->on_idle = onidle; +} + +rtgui_idle_func rtgui_thread_get_onidle() +{ + struct rtgui_thread* thread; + + thread = rtgui_thread_self(); + RT_ASSERT(thread != RT_NULL); + + return thread->on_idle; +} extern rt_thread_t rt_thread_find(char* name); rt_thread_t rtgui_thread_get_server() diff --git a/components/rtgui/widgets/list_view.c b/components/rtgui/widgets/list_view.c index f29671d155..bbac1e69e5 100644 --- a/components/rtgui/widgets/list_view.c +++ b/components/rtgui/widgets/list_view.c @@ -86,7 +86,7 @@ static void rtgui_list_view_onicondraw(struct rtgui_list_view* view, struct rtgu drawing_rect.x2 = image->w; drawing_rect.y2 = image->h; rtgui_rect_moveto_align(&item_rect, &drawing_rect, RTGUI_ALIGN_CENTER_HORIZONTAL); - drawing_rect.y1 += 3; drawing_rect.y2 += 3; + drawing_rect.y1 += 5; drawing_rect.y2 += 5; rtgui_image_blit(view->items[item_index].image, dc, &drawing_rect); item_rect.y1 = drawing_rect.y2 + LIST_MARGIN; @@ -145,7 +145,7 @@ static void rtgui_list_view_update_icon(struct rtgui_list_view* view, rt_uint16_ drawing_rect.x2 = image->w; drawing_rect.y2 = image->h; rtgui_rect_moveto_align(&item_rect, &drawing_rect, RTGUI_ALIGN_CENTER_HORIZONTAL); - drawing_rect.y1 += 3; drawing_rect.y2 += 3; + drawing_rect.y1 += 5; drawing_rect.y2 += 5; rtgui_image_blit(view->items[old_item].image, dc, &drawing_rect); /* draw text */ @@ -576,8 +576,10 @@ static void rtgui_list_view_calc(struct rtgui_list_view* view) item_width = (image->w + LIST_MARGIN); if (item_width < (text_width + LIST_MARGIN)) item_width = text_width + LIST_MARGIN; - item_height = image->h + 3 + text_height + LIST_MARGIN; - + item_height = image->h + 8 + text_height + LIST_MARGIN; + if (item_width > item_height) item_height = item_width; + else item_width = item_height; + view->row_items = (rtgui_rect_height(rect) - 2 * LIST_MARGIN) / item_height; view->col_items = (rtgui_rect_width(rect) - 2 * LIST_MARGIN) / item_width; view->page_items = view->row_items * view->col_items; -- GitLab