diff --git a/components/rtgui/common/image.c b/components/rtgui/common/image.c index 0160c990ea13b5eeee4f91c9182687958ad410f1..1ae57e0ece9885f4f139eb664fd12fec0f7a52c0 100644 --- a/components/rtgui/common/image.c +++ b/components/rtgui/common/image.c @@ -64,47 +64,47 @@ void rtgui_system_image_init(void) #endif } -static struct rtgui_image_engine* rtgui_image_get_engine_by_filename(const char* fn) +static struct rtgui_image_engine* rtgui_image_get_engine(const char* type) { struct rtgui_list_node *node; struct rtgui_image_engine *engine; - const char* ext; - - ext = fn + rt_strlen(fn); - while (ext != fn) - { - if (*ext == '.') { ext ++; break; } - ext --; - } - if (ext == fn) return RT_NULL; /* no ext */ rtgui_list_foreach(node, &_rtgui_system_image_list) { engine = rtgui_list_entry(node, struct rtgui_image_engine, list); - if (strncasecmp(engine->name, ext, strlen(engine->name)) == 0) + + if (strncasecmp(engine->name, type, strlen(engine->name)) ==0) return engine; } return RT_NULL; } -static struct rtgui_image_engine* rtgui_image_get_engine(const char* type) +#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW) +static struct rtgui_image_engine* rtgui_image_get_engine_by_filename(const char* fn) { struct rtgui_list_node *node; struct rtgui_image_engine *engine; + const char* ext; + + ext = fn + rt_strlen(fn); + while (ext != fn) + { + if (*ext == '.') { ext ++; break; } + ext --; + } + if (ext == fn) return RT_NULL; /* no ext */ rtgui_list_foreach(node, &_rtgui_system_image_list) { engine = rtgui_list_entry(node, struct rtgui_image_engine, list); - - if (strncasecmp(engine->name, type, strlen(engine->name)) ==0) + if (strncasecmp(engine->name, ext, strlen(engine->name)) == 0) return engine; } return RT_NULL; } -#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW) struct rtgui_image* rtgui_image_create_from_file(const char* type, const char* filename, rt_bool_t load) { struct rtgui_filerw* filerw; diff --git a/components/rtgui/include/rtgui/widgets/list_view.h b/components/rtgui/include/rtgui/widgets/list_view.h index 7f03098bc27a781326cd09631158c2c0538d917e..1ab062d26331e66799e36c8468c0a23d0cc1d8f7 100644 --- a/components/rtgui/include/rtgui/widgets/list_view.h +++ b/components/rtgui/include/rtgui/widgets/list_view.h @@ -59,7 +59,7 @@ struct rtgui_list_view /* the number of item in a page */ rt_uint16_t page_items; /* current item */ - rt_uint16_t current_item; + rt_int16_t current_item; /* icon layout */ rt_uint8_t row_items, col_items; diff --git a/components/rtgui/widgets/list_view.c b/components/rtgui/widgets/list_view.c index 1b453652716e36264e146b7c75692d74afb5617f..6012d350e7dcd9b430881a524a96c8807ac50e94 100644 --- a/components/rtgui/widgets/list_view.c +++ b/components/rtgui/widgets/list_view.c @@ -96,7 +96,7 @@ static void rtgui_list_view_onicondraw(struct rtgui_list_view* view, struct rtgu } } -static void rtgui_list_view_update_icon(struct rtgui_list_view* view, rt_uint16_t old_item) +static void rtgui_list_view_update_icon(struct rtgui_list_view* view, rt_int16_t old_item) { struct rtgui_rect rect, item_rect, drawing_rect; rt_ubase_t c, r; /* col and row index */ @@ -230,7 +230,7 @@ static void rtgui_list_view_onlistdraw(struct rtgui_list_view* view, struct rtgu } } -void rtgui_list_view_update_list(struct rtgui_list_view* view, rt_uint16_t old_item) +void rtgui_list_view_update_list(struct rtgui_list_view* view, rt_int16_t old_item) { struct rtgui_dc* dc; const struct rtgui_list_item* item;