diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/gui/list.c | 10 | ||||
-rw-r--r-- | apps/menu.c | 14 | ||||
-rw-r--r-- | apps/root_menu.c | 4 |
3 files changed, 22 insertions, 6 deletions
diff --git a/apps/gui/list.c b/apps/gui/list.c index 950878bd60..6a784b4998 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c @@ -32,6 +32,7 @@ #include "scrollbar.h" #include "statusbar.h" #include "textarea.h" +#include "lang.h" #ifdef HAVE_LCD_CHARCELLS #define SCROLL_LIMIT 1 @@ -310,6 +311,7 @@ static void gui_list_draw(struct gui_list * gui_list) while (i < display->nb_lines) { + unsigned char *s; char entry_buffer[MAX_PATH]; unsigned char *entry_name; int current_item = gui_list->start_item + @@ -319,9 +321,11 @@ static void gui_list_draw(struct gui_list * gui_list) * current available space on the screen, we stop*/ if(current_item >= gui_list->nb_items) break; - entry_name = gui_list->callback_get_item_name(current_item, - gui_list->data, - entry_buffer); + s = gui_list->callback_get_item_name(current_item, + gui_list->data, + entry_buffer); + entry_name = P2STR(s); + #ifdef HAVE_LCD_BITMAP /* position the string at the correct offset place */ int item_width,h; diff --git a/apps/menu.c b/apps/menu.c index df786dde55..03fb1ac54c 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -440,6 +440,8 @@ static void talk_menu_item(const struct menu_item_ex *menu, { int id = -1; int type; + unsigned char *str; + if (global_settings.talk_menu) { int sel = get_menu_selection(gui_synclist_get_sel_pos(lists),menu); @@ -450,7 +452,17 @@ static void talk_menu_item(const struct menu_item_ex *menu, talk_setting(menu->submenus[sel]->variable); else { - id = P2ID(menu->submenus[sel]->callback_and_desc->desc); + if (menu->submenus[sel]->flags&(MENU_DYNAMIC_DESC)) + { + char buffer[80]; + str = menu->submenus[sel]->menu_get_name_and_icon-> + list_get_name(sel, menu->submenus[sel]-> + menu_get_name_and_icon-> + list_get_name_data, buffer); + id = P2ID(str); + } + else + id = P2ID(menu->submenus[sel]->callback_and_desc->desc); if (id != -1) talk_id(id,false); } diff --git a/apps/root_menu.c b/apps/root_menu.c index f71eec7e53..4f279c94a6 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c @@ -233,8 +233,8 @@ char *get_wps_item_name(int selected_item, void * data, char *buffer) { (void)selected_item; (void)data; (void)buffer; if (audio_status()) - return str(LANG_NOW_PLAYING); - return str(LANG_RESUME_PLAYBACK); + return ID2P(LANG_NOW_PLAYING); + return ID2P(LANG_RESUME_PLAYBACK); } MENUITEM_RETURNVALUE_DYNTEXT(wps_item, GO_TO_WPS, NULL, get_wps_item_name, NULL, Icon_Playback_menu); |