From 5a71b3c5fae7f2124c310a847fc54621e61485b3 Mon Sep 17 00:00:00 2001 From: "bernard.xiong" Date: Wed, 27 Jan 2010 00:06:09 +0000 Subject: [PATCH] add get_path routine in filelist view. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@341 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- rtgui/common/rtgui_theme.c | 4 ++-- rtgui/include/rtgui/widgets/filelist_view.h | 2 ++ rtgui/widgets/filelist_view.c | 8 ++++++++ rtgui/widgets/label.c | 3 +++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/rtgui/common/rtgui_theme.c b/rtgui/common/rtgui_theme.c index 28d5215573..b2f0128152 100644 --- a/rtgui/common/rtgui_theme.c +++ b/rtgui/common/rtgui_theme.c @@ -479,8 +479,8 @@ void rtgui_theme_draw_textbox(rtgui_textbox_t* box) rt_size_t len = rt_strlen(box->text); if (len > 0) { - char *text_mask = rtgui_malloc(len); - rt_memset(text_mask, '*', len); + char *text_mask = rtgui_malloc(len + 1); + rt_memset(text_mask, '*', len + 1); text_mask[len] = 0; rtgui_dc_draw_text(dc, text_mask, &rect); rt_free(text_mask); diff --git a/rtgui/include/rtgui/widgets/filelist_view.h b/rtgui/include/rtgui/widgets/filelist_view.h index c34b1e2032..e3fab1fc90 100644 --- a/rtgui/include/rtgui/widgets/filelist_view.h +++ b/rtgui/include/rtgui/widgets/filelist_view.h @@ -53,4 +53,6 @@ void rtgui_filelist_view_clear(rtgui_filelist_view_t* view); rt_bool_t rtgui_filelist_view_event_handler(struct rtgui_widget* widget, struct rtgui_event* event); void rtgui_filelist_view_set_directory(rtgui_filelist_view_t* view, const char* directory); +void rtgui_filelist_get_fullpath(rtgui_filelist_view_t* view, char* path, rt_size_t len); + #endif diff --git a/rtgui/widgets/filelist_view.c b/rtgui/widgets/filelist_view.c index eeba921d9f..75b75ac8f1 100644 --- a/rtgui/widgets/filelist_view.c +++ b/rtgui/widgets/filelist_view.c @@ -683,3 +683,11 @@ __return: /* update view */ rtgui_widget_update(RTGUI_WIDGET(view)); } + +void rtgui_filelist_get_fullpath(rtgui_filelist_view_t* view, char* path, rt_size_t len) +{ + RT_ASSERT(view != RT_NULL); + + rt_sprintf(path, "%s/%s", view->current_directory, + view->items[view->current_item].name); +} \ No newline at end of file diff --git a/rtgui/widgets/label.c b/rtgui/widgets/label.c index 68e41d0747..574ec7cea7 100644 --- a/rtgui/widgets/label.c +++ b/rtgui/widgets/label.c @@ -110,4 +110,7 @@ void rtgui_label_set_text(rtgui_label_t* label, const unsigned char* text) if (text != RT_NULL) label->text = (unsigned char*)rt_strdup((const char*)text); else label->text = RT_NULL; + + /* update widget */ + rtgui_theme_draw_label(label); } -- GitLab