summaryrefslogtreecommitdiff
path: root/components/rtgui/widgets
diff options
context:
space:
mode:
author[email protected] <[email protected]>2011-06-11 06:18:46 +0000
committer[email protected] <[email protected]>2011-06-11 06:18:46 +0000
commit14c2f8c0399d2041d75fac43c42d87bf6a2e3b93 (patch)
treea7a5de9eb33296b476eeb813be8df28baf4384ef /components/rtgui/widgets
parente8d7220682b061846844f98eb0f8d891c89c0e37 (diff)
add rtgui_listbox_set_current_item function; fix draw rect issue on the border; fix progress bar drawing issue; fix on_item issue in menu if the sub_menu is shown;
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1488 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/rtgui/widgets')
-rw-r--r--components/rtgui/widgets/filelist_view.c4
-rw-r--r--components/rtgui/widgets/listbox.c15
-rw-r--r--components/rtgui/widgets/menu.c9
-rw-r--r--components/rtgui/widgets/progressbar.c9
4 files changed, 21 insertions, 16 deletions
diff --git a/components/rtgui/widgets/filelist_view.c b/components/rtgui/widgets/filelist_view.c
index 9d8b89dee1..3e38cb193f 100644
--- a/components/rtgui/widgets/filelist_view.c
+++ b/components/rtgui/widgets/filelist_view.c
@@ -311,9 +311,9 @@ static void rtgui_filelist_view_menu_pop(rtgui_widget_t *parent)
listbox = rtgui_listbox_create(items, sizeof(items)/sizeof(items[0]), &rect);
rtgui_listbox_set_onitem(listbox, rtgui_filelist_view_on_folder_item);
rtgui_container_add_child(RTGUI_CONTAINER(menu), RTGUI_WIDGET(listbox));
- rtgui_widget_focus(RTGUI_WIDGET(listbox));
-
rtgui_win_show(menu, RT_FALSE);
+ rtgui_widget_focus(RTGUI_WIDGET(listbox));
+ rtgui_listbox_set_current_item(listbox, 0);
}
}
diff --git a/components/rtgui/widgets/listbox.c b/components/rtgui/widgets/listbox.c
index cf2532771d..f68ec02efe 100644
--- a/components/rtgui/widgets/listbox.c
+++ b/components/rtgui/widgets/listbox.c
@@ -359,3 +359,18 @@ void rtgui_listbox_set_items(rtgui_listbox_t* box, struct rtgui_listbox_item* it
rtgui_widget_update(RTGUI_WIDGET(box));
}
+void rtgui_listbox_set_current_item(rtgui_listbox_t* box, int index)
+{
+ RT_ASSERT(box != RT_NULL);
+
+ if (index != box->current_item)
+ {
+ int old_item;
+
+ old_item = box->current_item;
+ box->current_item = index;
+
+ rtgui_listbox_update_current(box, old_item);
+ }
+}
+
diff --git a/components/rtgui/widgets/menu.c b/components/rtgui/widgets/menu.c
index a68ca9e39f..7d8b02dd3b 100644
--- a/components/rtgui/widgets/menu.c
+++ b/components/rtgui/widgets/menu.c
@@ -81,17 +81,14 @@ static void _rtgui_menu_onitem(struct rtgui_widget* widget, struct rtgui_event*
}
else /* other menu item */
{
- rt_ubase_t index;
-
/* invoke action */
if (menu->items[menu->items_list->current_item].on_menuaction != RT_NULL)
menu->items[menu->items_list->current_item].on_menuaction(RTGUI_WIDGET(menu), RT_NULL);
- /* hide all of sub-menu */
- for (index = 0; index < menu->items_count; index ++)
+ /* hide sub-menu */
+ if (menu->sub_menu != RT_NULL)
{
- if (menu->items[index].submenu != RT_NULL)
- rtgui_menu_hiden(menu->items[index].submenu);
+ rtgui_menu_hiden(menu->sub_menu);
}
rtgui_menu_hiden(menu);
}
diff --git a/components/rtgui/widgets/progressbar.c b/components/rtgui/widgets/progressbar.c
index 2d7ddc0ed2..84e2adea1d 100644
--- a/components/rtgui/widgets/progressbar.c
+++ b/components/rtgui/widgets/progressbar.c
@@ -33,14 +33,7 @@ rt_bool_t rtgui_progressbar_event_handler(struct rtgui_widget* widget,
switch (event->type)
{
case RTGUI_EVENT_PAINT:
-#ifndef RTGUI_USING_SMALL_SIZE
- if (widget->on_draw != RT_NULL) widget->on_draw(widget, event);
- else
-#endif
- {
- rtgui_theme_draw_progressbar(bar);
- }
-
+ rtgui_theme_draw_progressbar(bar);
break;
}