summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/apps/menu.c b/apps/menu.c
index e47523d4e4..72e4289fc5 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -33,6 +33,7 @@
33#include "status.h" 33#include "status.h"
34#include "screens.h" 34#include "screens.h"
35#include "talk.h" 35#include "talk.h"
36#include "lang.h"
36 37
37#ifdef HAVE_LCD_BITMAP 38#ifdef HAVE_LCD_BITMAP
38#include "icons.h" 39#include "icons.h"
@@ -177,12 +178,12 @@ void menu_draw(int m)
177#ifdef HAVE_LCD_BITMAP 178#ifdef HAVE_LCD_BITMAP
178 if (global_settings.invert_cursor) 179 if (global_settings.invert_cursor)
179 lcd_puts_scroll_style(LINE_X, i-menus[m].top, 180 lcd_puts_scroll_style(LINE_X, i-menus[m].top,
180 menus[m].items[i].desc, STYLE_INVERT); 181 P2STR(menus[m].items[i].desc), STYLE_INVERT);
181 else 182 else
182#endif 183#endif
183 lcd_puts_scroll(LINE_X, i-menus[m].top, menus[m].items[i].desc); 184 lcd_puts_scroll(LINE_X, i-menus[m].top, P2STR(menus[m].items[i].desc));
184 else 185 else
185 lcd_puts(LINE_X, i-menus[m].top, menus[m].items[i].desc); 186 lcd_puts(LINE_X, i-menus[m].top, P2STR(menus[m].items[i].desc));
186 } 187 }
187 188
188 /* place the cursor */ 189 /* place the cursor */
@@ -216,13 +217,13 @@ static void put_cursor(int m, int target)
216 /* "say" the entry under the cursor */ 217 /* "say" the entry under the cursor */
217 if(global_settings.talk_menu) 218 if(global_settings.talk_menu)
218 { 219 {
219 voice_id = menus[m].items[menus[m].cursor].voice_id; 220 voice_id = P2ID(menus[m].items[menus[m].cursor].desc);
220 if (voice_id >= 0) /* valid ID given? */ 221 if (voice_id >= 0) /* valid ID given? */
221 talk_id(voice_id, false); /* say it */ 222 talk_id(voice_id, false); /* say it */
222 } 223 }
223} 224}
224 225
225int menu_init(struct menu_item* mitems, int count, int (*callback)(int, int), 226int menu_init(const struct menu_item* mitems, int count, int (*callback)(int, int),
226 char *button1, char *button2, char *button3) 227 char *button1, char *button2, char *button3)
227{ 228{
228 int i; 229 int i;
@@ -237,7 +238,7 @@ int menu_init(struct menu_item* mitems, int count, int (*callback)(int, int),
237 DEBUGF("Out of menus!\n"); 238 DEBUGF("Out of menus!\n");
238 return -1; 239 return -1;
239 } 240 }
240 menus[i].items = mitems; 241 menus[i].items = (struct menu_item*)mitems; /* de-const */
241 menus[i].itemcount = count; 242 menus[i].itemcount = count;
242 menus[i].top = 0; 243 menus[i].top = 0;
243 menus[i].cursor = 0; 244 menus[i].cursor = 0;
@@ -417,7 +418,7 @@ int menu_cursor(int menu)
417 418
418char* menu_description(int menu, int position) 419char* menu_description(int menu, int position)
419{ 420{
420 return menus[menu].items[position].desc; 421 return P2STR(menus[menu].items[position].desc);
421} 422}
422 423
423/* 424/*
@@ -440,8 +441,7 @@ void menu_delete(int menu, int position)
440 menus[menu].cursor = menus[menu].itemcount - 1; 441 menus[menu].cursor = menus[menu].itemcount - 1;
441} 442}
442 443
443void menu_insert(int menu, int position, char *desc, int voice_id, 444void menu_insert(int menu, int position, char *desc, bool (*function) (void))
444 bool (*function) (void))
445{ 445{
446 int i; 446 int i;
447 447
@@ -457,7 +457,6 @@ void menu_insert(int menu, int position, char *desc, int voice_id,
457 457
458 /* Update the current item */ 458 /* Update the current item */
459 menus[menu].items[position].desc = desc; 459 menus[menu].items[position].desc = desc;
460 menus[menu].items[position].voice_id = voice_id;
461 menus[menu].items[position].function = function; 460 menus[menu].items[position].function = function;
462} 461}
463 462