Browse Source

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
bernard.xiong@gmail.com 14 years ago
parent
commit
5837cd792c
2 changed files with 30 additions and 24 deletions
  1. 24 20
      components/rtgui/common/rtgui_system.c
  2. 6 4
      components/rtgui/widgets/list_view.c

+ 24 - 20
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()

+ 6 - 4
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;