summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/apps/menu.c b/apps/menu.c
index a205615802..48f6fa3d0b 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -104,13 +104,12 @@ static const char* get_menu_item_name(int selected_item,
104 int type = (menu->flags&MENU_TYPE_MASK); 104 int type = (menu->flags&MENU_TYPE_MASK);
105 selected_item = get_menu_selection(selected_item, menu); 105 selected_item = get_menu_selection(selected_item, menu);
106 106
107 (void)buffer_len;
108 /* only MT_MENU or MT_RETURN_ID is allowed in here */ 107 /* only MT_MENU or MT_RETURN_ID is allowed in here */
109 if (type == MT_RETURN_ID) 108 if (type == MT_RETURN_ID)
110 { 109 {
111 if (menu->flags&MENU_DYNAMIC_DESC) 110 if (menu->flags&MENU_DYNAMIC_DESC)
112 return menu->menu_get_name_and_icon->list_get_name(selected_item, 111 return menu->menu_get_name_and_icon->list_get_name(selected_item,
113 menu->menu_get_name_and_icon->list_get_name_data, buffer); 112 menu->menu_get_name_and_icon->list_get_name_data, buffer, buffer_len);
114 return menu->strings[selected_item]; 113 return menu->strings[selected_item];
115 } 114 }
116 115
@@ -118,7 +117,7 @@ static const char* get_menu_item_name(int selected_item,
118 117
119 if ((menu->flags&MENU_DYNAMIC_DESC) && (type != MT_SETTING_W_TEXT)) 118 if ((menu->flags&MENU_DYNAMIC_DESC) && (type != MT_SETTING_W_TEXT))
120 return menu->menu_get_name_and_icon->list_get_name(selected_item, 119 return menu->menu_get_name_and_icon->list_get_name(selected_item,
121 menu->menu_get_name_and_icon->list_get_name_data, buffer); 120 menu->menu_get_name_and_icon->list_get_name_data, buffer, buffer_len);
122 121
123 type = (menu->flags&MENU_TYPE_MASK); 122 type = (menu->flags&MENU_TYPE_MASK);
124 if ((type == MT_SETTING) || (type == MT_SETTING_W_TEXT)) 123 if ((type == MT_SETTING) || (type == MT_SETTING_W_TEXT))
@@ -177,6 +176,7 @@ static void init_menu_lists(const struct menu_item_ex *menu,
177 int type = (menu->flags&MENU_TYPE_MASK); 176 int type = (menu->flags&MENU_TYPE_MASK);
178 menu_callback_type menu_callback = NULL; 177 menu_callback_type menu_callback = NULL;
179 int icon; 178 int icon;
179 char * title;
180 current_subitems_count = 0; 180 current_subitems_count = 0;
181 181
182 if (type == MT_RETURN_ID) 182 if (type == MT_RETURN_ID)
@@ -206,14 +206,33 @@ static void init_menu_lists(const struct menu_item_ex *menu,
206 206
207 gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1, parent); 207 gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1, parent);
208#ifdef HAVE_LCD_BITMAP 208#ifdef HAVE_LCD_BITMAP
209 if (menu->callback_and_desc->icon_id == Icon_NOICON) 209
210 icon = Icon_Submenu_Entered; 210 if (menu->flags&MENU_HAS_DESC)
211 else 211 {
212 icon = menu->callback_and_desc->icon_id; 212 icon = menu->callback_and_desc->icon_id;
213 gui_synclist_set_title(lists, P2STR(menu->callback_and_desc->desc), icon); 213 title = P2STR(menu->callback_and_desc->desc);
214 }
215 else if (menu->flags&MENU_DYNAMIC_DESC)
216 {
217 char buffer[80];
218 icon = menu->menu_get_name_and_icon->icon_id;
219 title = menu->menu_get_name_and_icon->
220 list_get_name(-1, menu->menu_get_name_and_icon->
221 list_get_name_data, buffer, sizeof(buffer));
222 }
223 else
224 {
225 icon = Icon_NOICON;
226 title = "";
227 }
228
229 if (icon == Icon_NOICON)
230 icon = Icon_Submenu_Entered;
231 gui_synclist_set_title(lists, title, icon);
214 gui_synclist_set_icon_callback(lists, global_settings.show_icons?menu_get_icon:NULL); 232 gui_synclist_set_icon_callback(lists, global_settings.show_icons?menu_get_icon:NULL);
215#else 233#else
216 (void)icon; 234 (void)icon;
235 (void)title;
217 gui_synclist_set_icon_callback(lists, NULL); 236 gui_synclist_set_icon_callback(lists, NULL);
218#endif 237#endif
219 if(global_settings.talk_menu) 238 if(global_settings.talk_menu)
@@ -256,8 +275,8 @@ static int talk_menu_item(int selected_item, void *data)
256 char buffer[80]; 275 char buffer[80];
257 str = menu->submenus[sel]->menu_get_name_and_icon-> 276 str = menu->submenus[sel]->menu_get_name_and_icon->
258 list_get_name(sel, menu->submenus[sel]-> 277 list_get_name(sel, menu->submenus[sel]->
259 menu_get_name_and_icon-> 278 menu_get_name_and_icon->
260 list_get_name_data, buffer); 279 list_get_name_data, buffer, sizeof(buffer));
261 id = P2ID(str); 280 id = P2ID(str);
262 } 281 }
263 } 282 }