summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/list.c10
-rw-r--r--apps/menu.c14
-rw-r--r--apps/root_menu.c4
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);