summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/menu.c48
-rw-r--r--apps/menu.h46
-rw-r--r--apps/menus/display_menu.c3
-rw-r--r--apps/menus/main_menu.c17
-rw-r--r--apps/menus/playback_menu.c9
-rw-r--r--apps/menus/playlist_menu.c9
-rw-r--r--apps/menus/recording_menu.c7
-rw-r--r--apps/menus/settings_menu.c37
-rw-r--r--apps/menus/sound_menu.c8
-rw-r--r--apps/recorder/icons.c14
-rw-r--r--apps/recorder/icons.h16
-rw-r--r--apps/settings.c8
12 files changed, 170 insertions, 52 deletions
diff --git a/apps/menu.c b/apps/menu.c
index f1738e7284..200dd5b983 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -374,12 +374,43 @@ static char * get_menu_item_name(int selected_item,void * data, char *buffer)
374 } 374 }
375 return P2STR(menu->callback_and_desc->desc); 375 return P2STR(menu->callback_and_desc->desc);
376} 376}
377#ifdef HAVE_LCD_BITMAP
378static void menu_get_icon(int selected_item, void * data, ICON * icon)
379{
380 const struct menu_item_ex *menu = (const struct menu_item_ex *)data;
381 selected_item = get_menu_selection(selected_item, menu);
382
383 menu = menu->submenus[selected_item];
384 switch (menu->flags&MENU_TYPE_MASK)
385 {
386 case MT_SETTING:
387 *icon = bitmap_icons_6x8[Icon_Menu_setting];
388 break;
389 case MT_MENU:
390 if (menu->callback_and_desc->icon == NOICON)
391 *icon = bitmap_icons_6x8[Icon_Submenu];
392 else
393 *icon = menu->callback_and_desc->icon;
394 break;
395 case MT_FUNCTION_CALL:
396 case MT_FUNCTION_WITH_PARAM:
397 if (menu->callback_and_desc->icon == NOICON)
398 *icon = bitmap_icons_6x8[Icon_Menu_functioncall];
399 else
400 *icon = menu->callback_and_desc->icon;
401 break;
402 default:
403 *icon = NOICON;
404 }
405}
406#endif
377 407
378static void init_menu_lists(const struct menu_item_ex *menu, 408static void init_menu_lists(const struct menu_item_ex *menu,
379 struct gui_synclist *lists, int selected, bool callback) 409 struct gui_synclist *lists, int selected, bool callback)
380{ 410{
381 int i, count = (menu->flags&MENU_COUNT_MASK)>>MENU_COUNT_SHIFT; 411 int i, count = (menu->flags&MENU_COUNT_MASK)>>MENU_COUNT_SHIFT;
382 menu_callback_type menu_callback = NULL; 412 menu_callback_type menu_callback = NULL;
413 ICON icon = NOICON;
383 current_subitems_count = 0; 414 current_subitems_count = 0;
384 for (i=0; i<count; i++) 415 for (i=0; i<count; i++)
385 { 416 {
@@ -401,8 +432,21 @@ static void init_menu_lists(const struct menu_item_ex *menu,
401 } 432 }
402 433
403 gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1); 434 gui_synclist_init(lists,get_menu_item_name,(void*)menu,false,1);
404 gui_synclist_set_title(lists, P2STR(menu->callback_and_desc->desc), NOICON); 435#ifdef HAVE_LCD_BITMAP
405 gui_synclist_set_icon_callback(lists,NULL); 436 if (global_settings.show_icons == false)
437 icon = NOICON;
438 else if (menu->callback_and_desc->icon == NOICON)
439 icon = bitmap_icons_6x8[Icon_Submenu_Entered];
440 else
441 icon = menu->callback_and_desc->icon;
442#endif
443 gui_synclist_set_title(lists, P2STR(menu->callback_and_desc->desc), icon);
444#ifdef HAVE_LCD_BITMAP
445 if (global_settings.show_icons)
446 gui_synclist_set_icon_callback(lists, menu_get_icon);
447 else
448#endif
449 gui_synclist_set_icon_callback(lists, NULL);
406 gui_synclist_set_nb_items(lists,current_subitems_count); 450 gui_synclist_set_nb_items(lists,current_subitems_count);
407 gui_synclist_limit_scroll(lists,true); 451 gui_synclist_limit_scroll(lists,true);
408 gui_synclist_select_item(lists, selected); 452 gui_synclist_select_item(lists, selected);
diff --git a/apps/menu.h b/apps/menu.h
index a192df3073..3555cd2de6 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -21,6 +21,9 @@
21#define __MENU_H__ 21#define __MENU_H__
22 22
23#include <stdbool.h> 23#include <stdbool.h>
24#include "icon.h"
25#include "icons.h"
26
24 27
25struct menu_item { 28struct menu_item {
26 unsigned char *desc; /* string or ID */ 29 unsigned char *desc; /* string or ID */
@@ -90,6 +93,9 @@ struct menu_item_ex {
90 int (*menu_callback)(int action, 93 int (*menu_callback)(int action,
91 const struct menu_item_ex *this_item); 94 const struct menu_item_ex *this_item);
92 unsigned char *desc; /* string or ID */ 95 unsigned char *desc; /* string or ID */
96#ifdef HAVE_LCD_BITMAP
97 ICON icon; /* Icon to display */
98#endif
93 } *callback_and_desc; 99 } *callback_and_desc;
94 }; 100 };
95}; 101};
@@ -119,26 +125,28 @@ int do_menu(const struct menu_item_ex *menu);
119 and its return value will be the index of the chosen item */ 125 and its return value will be the index of the chosen item */
120#define MENUITEM_STRINGLIST(name, str, callback, ... ) \ 126#define MENUITEM_STRINGLIST(name, str, callback, ... ) \
121 static const char *name##_[] = {__VA_ARGS__}; \ 127 static const char *name##_[] = {__VA_ARGS__}; \
122 static const struct menu_callback_with_desc name##__ = {callback,str}; \ 128 static const struct menu_callback_with_desc name##__ = {callback,str, NOICON};\
123 static const struct menu_item_ex name = \ 129 static const struct menu_item_ex name = \
124 {MT_RETURN_ID|MENU_HAS_DESC| \ 130 {MT_RETURN_ID|MENU_HAS_DESC| \
125 MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \ 131 MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \
126 { .submenus = name##_},{.callback_and_desc = & name##__}}; 132 { .submenus = name##_},{.callback_and_desc = & name##__}};
133
134#ifdef HAVE_LCD_BITMAP /* Kill the player port already.... PLEASE!! */
127 135
128/* This one should be static'ed also, 136/* This one should be static'ed also,
129 but cannot be done untill settings menu is done */ 137 but cannot be done untill settings menu is done */
130/* Use this to put a function call into the menu. 138/* Use this to put a function call into the menu.
131 When the user selects this item the function will be run, 139 When the user selects this item the function will be run,
132 when it exits the user will be back in the menu. return value is ignored */ 140 when it exits the user will be back in the menu. return value is ignored */
133#define MENUITEM_FUNCTION(name, str, func, callback) \ 141#define MENUITEM_FUNCTION(name, str, func, callback, icon) \
134 static const struct menu_callback_with_desc name##_ = {callback,str}; \ 142 static const struct menu_callback_with_desc name##_ = {callback,str,icon}; \
135 const struct menu_item_ex name = \ 143 const struct menu_item_ex name = \
136 { MT_FUNCTION_CALL|MENU_HAS_DESC, { .function = func}, \ 144 { MT_FUNCTION_CALL|MENU_HAS_DESC, { .function = func}, \
137 {.callback_and_desc = & name##_}}; 145 {.callback_and_desc = & name##_}};
138 146
139/* Same as above, except the function will be called with a (void*)param. */ 147/* Same as above, except the function will be called with a (void*)param. */
140#define MENUITEM_FUNCTION_WPARAM(name, str, func, param, callback) \ 148#define MENUITEM_FUNCTION_WPARAM(name, str, func, param, callback, icon) \
141 static const struct menu_callback_with_desc name##_ = {callback,str}; \ 149 static const struct menu_callback_with_desc name##_ = {callback,str,icon}; \
142 static const struct menu_func_with_param name##__ = {func, param}; \ 150 static const struct menu_func_with_param name##__ = {func, param}; \
143 static const struct menu_item_ex name = \ 151 static const struct menu_item_ex name = \
144 { MT_FUNCTION_WITH_PARAM|MENU_HAS_DESC, \ 152 { MT_FUNCTION_WITH_PARAM|MENU_HAS_DESC, \
@@ -147,11 +155,35 @@ int do_menu(const struct menu_item_ex *menu);
147 155
148/* Use this to actually create a menu. the ... argument is a list of pointers 156/* Use this to actually create a menu. the ... argument is a list of pointers
149 to any of the above macro'd variables. (It can also have other menus in the list. */ 157 to any of the above macro'd variables. (It can also have other menus in the list. */
150#define MAKE_MENU( name, str, callback, ... ) \ 158#define MAKE_MENU( name, str, callback, icon, ... ) \
159 static const struct menu_item_ex *name##_[] = {__VA_ARGS__}; \
160 static const struct menu_callback_with_desc name##__ = {callback,str,icon};\
161 const struct menu_item_ex name = \
162 {MT_MENU|MENU_HAS_DESC| \
163 MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \
164 { (void*)name##_},{.callback_and_desc = & name##__}};
165
166#else /* HAVE_LCD_BITMAP */
167#define MENUITEM_FUNCTION(name, str, func, callback, icon) \
168 static const struct menu_callback_with_desc name##_ = {callback,str}; \
169 const struct menu_item_ex name = \
170 { MT_FUNCTION_CALL|MENU_HAS_DESC, { .function = func}, \
171 {.callback_and_desc = & name##_}};
172#define MENUITEM_FUNCTION_WPARAM(name, str, func, param, callback, icon) \
173 static const struct menu_callback_with_desc name##_ = {callback,str}; \
174 static const struct menu_func_with_param name##__ = {func, param}; \
175 static const struct menu_item_ex name = \
176 { MT_FUNCTION_WITH_PARAM|MENU_HAS_DESC, \
177 { .func_with_param = &name##__}, \
178 {.callback_and_desc = & name##_}};
179#define MAKE_MENU( name, str, callback, icon, ... ) \
151 static const struct menu_item_ex *name##_[] = {__VA_ARGS__}; \ 180 static const struct menu_item_ex *name##_[] = {__VA_ARGS__}; \
152 static const struct menu_callback_with_desc name##__ = {callback,str}; \ 181 static const struct menu_callback_with_desc name##__ = {callback,str};\
153 const struct menu_item_ex name = \ 182 const struct menu_item_ex name = \
154 {MT_MENU|MENU_HAS_DESC| \ 183 {MT_MENU|MENU_HAS_DESC| \
155 MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \ 184 MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \
156 { (void*)name##_},{.callback_and_desc = & name##__}}; 185 { (void*)name##_},{.callback_and_desc = & name##__}};
186
187#endif /* HAVE_LCD_BITMAP */
188
157#endif /* End __MENU_H__ */ 189#endif /* End __MENU_H__ */
diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c
index f44561338d..adb24395fa 100644
--- a/apps/menus/display_menu.c
+++ b/apps/menus/display_menu.c
@@ -29,4 +29,5 @@
29#include "settings_menu.h" 29#include "settings_menu.h"
30 30
31bool display_settings_menu(void); /* from ../settings_menu.c */ 31bool display_settings_menu(void); /* from ../settings_menu.c */
32MENUITEM_FUNCTION(display_menu,ID2P(LANG_DISPLAY),(menu_function)display_settings_menu,NULL); 32MENUITEM_FUNCTION(display_menu,ID2P(LANG_DISPLAY),
33 (menu_function)display_settings_menu,NULL, bitmap_icons_6x8[Icon_Display_menu]);
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c
index da9d47e767..886711853b 100644
--- a/apps/menus/main_menu.c
+++ b/apps/menus/main_menu.c
@@ -58,23 +58,24 @@ static int browse_folder(void *param)
58 return rockbox_browse(info->dir, info->show_options); 58 return rockbox_browse(info->dir, info->show_options);
59} 59}
60MENUITEM_FUNCTION_WPARAM(browse_themes, ID2P(LANG_CUSTOM_THEME), 60MENUITEM_FUNCTION_WPARAM(browse_themes, ID2P(LANG_CUSTOM_THEME),
61 browse_folder, (void*)&theme, NULL); 61 browse_folder, (void*)&theme, NULL, bitmap_icons_6x8[Icon_Folder]);
62MENUITEM_FUNCTION_WPARAM(browse_plugins, ID2P(LANG_PLUGINS), 62MENUITEM_FUNCTION_WPARAM(browse_plugins, ID2P(LANG_PLUGINS),
63 browse_folder, (void*)&rocks, NULL); 63 browse_folder, (void*)&rocks, NULL, bitmap_icons_6x8[Icon_Plugin]);
64 64
65#ifdef CONFIG_TUNER 65#ifdef CONFIG_TUNER
66MENUITEM_FUNCTION(load_radio_screen, ID2P(LANG_FM_RADIO), 66MENUITEM_FUNCTION(load_radio_screen, ID2P(LANG_FM_RADIO),
67 (menu_function)radio_screen, dynamicitem_callback); 67 (menu_function)radio_screen, dynamicitem_callback,
68 bitmap_icons_6x8[Icon_Radio_screen]);
68#endif 69#endif
69 70
70#include "settings_menu.h" 71#include "settings_menu.h"
71MENUITEM_FUNCTION(manage_settings_menu_item, ID2P(LANG_MANAGE_MENU), 72MENUITEM_FUNCTION(manage_settings_menu_item, ID2P(LANG_MANAGE_MENU),
72 (menu_function)manage_settings_menu, NULL); 73 (menu_function)manage_settings_menu, NULL, bitmap_icons_6x8[Icon_Config]);
73bool info_menu(void); /* from apps/main_menu.c TEMP*/ 74bool info_menu(void); /* from apps/main_menu.c TEMP*/
74MENUITEM_FUNCTION(info_menu_item, ID2P(LANG_INFO), 75MENUITEM_FUNCTION(info_menu_item, ID2P(LANG_INFO),
75 (menu_function)info_menu, NULL); 76 (menu_function)info_menu, NULL, bitmap_icons_6x8[Icon_Questionmark]);
76MENUITEM_FUNCTION(mrb_bookmarks, ID2P(LANG_BOOKMARK_MENU_RECENT_BOOKMARKS), 77MENUITEM_FUNCTION(mrb_bookmarks, ID2P(LANG_BOOKMARK_MENU_RECENT_BOOKMARKS),
77 (menu_function)bookmark_mrb_load, NULL); 78 (menu_function)bookmark_mrb_load, NULL, bitmap_icons_6x8[Icon_Bookmark]);
78 79
79#ifdef HAVE_LCD_CHARCELLS 80#ifdef HAVE_LCD_CHARCELLS
80static int do_shutdown(void) 81static int do_shutdown(void)
@@ -82,12 +83,12 @@ static int do_shutdown(void)
82 sys_poweroff(); 83 sys_poweroff();
83 return 0; 84 return 0;
84} 85}
85MENUITEM_FUNCTION(do_shutdown_item, ID2P(LANG_SHUTDOWN), do_shutdown, NULL); 86MENUITEM_FUNCTION(do_shutdown_item, ID2P(LANG_SHUTDOWN), do_shutdown, NULL, NOICON);
86#endif 87#endif
87 88
88/* NOTE: This title will be translatable once we decide what to call this menu 89/* NOTE: This title will be translatable once we decide what to call this menu
89 when the root menu comes in... hopefully in the next few days */ 90 when the root menu comes in... hopefully in the next few days */
90MAKE_MENU(main_menu_, "Rockbox Main Menu", NULL, 91MAKE_MENU(main_menu_, "Rockbox Main Menu", NULL, bitmap_icons_6x8[Icon_Submenu_Entered],
91 &mrb_bookmarks, &sound_settings, 92 &mrb_bookmarks, &sound_settings,
92 &settings_menu_item, &manage_settings_menu_item, &browse_themes, 93 &settings_menu_item, &manage_settings_menu_item, &browse_themes,
93#ifdef CONFIG_TUNER 94#ifdef CONFIG_TUNER
diff --git a/apps/menus/playback_menu.c b/apps/menus/playback_menu.c
index 74a64831dd..7c0f75198d 100644
--- a/apps/menus/playback_menu.c
+++ b/apps/menus/playback_menu.c
@@ -60,7 +60,7 @@ MENUITEM_SETTING(resume, &global_settings.resume, NULL);
60 60
61MENUITEM_SETTING(ff_rewind_accel, &global_settings.ff_rewind_accel, NULL); 61MENUITEM_SETTING(ff_rewind_accel, &global_settings.ff_rewind_accel, NULL);
62MENUITEM_SETTING(ff_rewind_min_step, &global_settings.ff_rewind_min_step, NULL); 62MENUITEM_SETTING(ff_rewind_min_step, &global_settings.ff_rewind_min_step, NULL);
63MAKE_MENU(ff_rewind_settings_menu, ID2P(LANG_WIND_MENU), 0, 63MAKE_MENU(ff_rewind_settings_menu, ID2P(LANG_WIND_MENU), 0, NOICON,
64 &ff_rewind_min_step, &ff_rewind_accel); 64 &ff_rewind_min_step, &ff_rewind_accel);
65#if CONFIG_CODEC == SWCODEC 65#if CONFIG_CODEC == SWCODEC
66int buffermargin_callback(int action,const struct menu_item_ex *this_item) 66int buffermargin_callback(int action,const struct menu_item_ex *this_item)
@@ -95,7 +95,7 @@ MENUITEM_SETTING(crossfade_fade_out_duration,
95 &global_settings.crossfade_fade_out_duration, setcrossfadeonexit_callback); 95 &global_settings.crossfade_fade_out_duration, setcrossfadeonexit_callback);
96MENUITEM_SETTING(crossfade_fade_out_mixmode, 96MENUITEM_SETTING(crossfade_fade_out_mixmode,
97 &global_settings.crossfade_fade_out_mixmode,NULL); 97 &global_settings.crossfade_fade_out_mixmode,NULL);
98MAKE_MENU(crossfade_settings_menu,ID2P(LANG_CROSSFADE),0, 98MAKE_MENU(crossfade_settings_menu,ID2P(LANG_CROSSFADE),0, NOICON,
99 &crossfade, &crossfade_fade_in_delay, &crossfade_fade_in_duration, 99 &crossfade, &crossfade_fade_in_delay, &crossfade_fade_in_duration,
100 &crossfade_fade_out_delay, &crossfade_fade_out_duration, 100 &crossfade_fade_out_delay, &crossfade_fade_out_duration,
101 &crossfade_fade_out_mixmode); 101 &crossfade_fade_out_mixmode);
@@ -117,7 +117,7 @@ MENUITEM_SETTING(replaygain, &global_settings.replaygain ,replaygain_callback);
117MENUITEM_SETTING(replaygain_noclip, &global_settings.replaygain_noclip ,replaygain_callback); 117MENUITEM_SETTING(replaygain_noclip, &global_settings.replaygain_noclip ,replaygain_callback);
118MENUITEM_SETTING(replaygain_type, &global_settings.replaygain_type ,replaygain_callback); 118MENUITEM_SETTING(replaygain_type, &global_settings.replaygain_type ,replaygain_callback);
119MENUITEM_SETTING(replaygain_preamp, &global_settings.replaygain_preamp ,replaygain_callback); 119MENUITEM_SETTING(replaygain_preamp, &global_settings.replaygain_preamp ,replaygain_callback);
120MAKE_MENU(replaygain_settings_menu,ID2P(LANG_REPLAYGAIN),0, 120MAKE_MENU(replaygain_settings_menu,ID2P(LANG_REPLAYGAIN),0, NOICON,
121 &replaygain,&replaygain_noclip, 121 &replaygain,&replaygain_noclip,
122 &replaygain_type,&replaygain_preamp); 122 &replaygain_type,&replaygain_preamp);
123 123
@@ -150,11 +150,12 @@ MENUITEM_SETTING(audioscrobbler, &global_settings.audioscrobbler, audioscrobbler
150MENUITEM_SETTING(unplug_mode, &global_settings.unplug_mode, NULL); 150MENUITEM_SETTING(unplug_mode, &global_settings.unplug_mode, NULL);
151MENUITEM_SETTING(unplug_rw, &global_settings.unplug_rw, NULL); 151MENUITEM_SETTING(unplug_rw, &global_settings.unplug_rw, NULL);
152MENUITEM_SETTING(unplug_autoresume, &global_settings.unplug_autoresume, NULL); 152MENUITEM_SETTING(unplug_autoresume, &global_settings.unplug_autoresume, NULL);
153MAKE_MENU(unplug_menu, ID2P(LANG_UNPLUG), 0, 153MAKE_MENU(unplug_menu, ID2P(LANG_UNPLUG), 0, NOICON,
154 &unplug_mode, &unplug_rw, &unplug_autoresume); 154 &unplug_mode, &unplug_rw, &unplug_autoresume);
155#endif 155#endif
156 156
157MAKE_MENU(playback_menu_item,ID2P(LANG_PLAYBACK),0, 157MAKE_MENU(playback_menu_item,ID2P(LANG_PLAYBACK),0,
158 bitmap_icons_6x8[Icon_Playback_menu],
158 &shuffle_item, &repeat_mode, &play_selected, &resume, 159 &shuffle_item, &repeat_mode, &play_selected, &resume,
159 &ff_rewind_settings_menu, 160 &ff_rewind_settings_menu,
160 &buffer_margin, &fade_on_stop, &party_mode, 161 &buffer_margin, &fade_on_stop, &party_mode,
diff --git a/apps/menus/playlist_menu.c b/apps/menus/playlist_menu.c
index d9e6f780f7..f179265279 100644
--- a/apps/menus/playlist_menu.c
+++ b/apps/menus/playlist_menu.c
@@ -63,17 +63,18 @@ int save_playlist_screen(struct playlist_info* playlist)
63 return 0; 63 return 0;
64} 64}
65MENUITEM_FUNCTION(create_playlist_item, ID2P(LANG_CREATE_PLAYLIST), 65MENUITEM_FUNCTION(create_playlist_item, ID2P(LANG_CREATE_PLAYLIST),
66 (int(*)(void))create_playlist, NULL); 66 (int(*)(void))create_playlist, NULL, NOICON);
67MENUITEM_FUNCTION(view_playlist, ID2P(LANG_VIEW_DYNAMIC_PLAYLIST), 67MENUITEM_FUNCTION(view_playlist, ID2P(LANG_VIEW_DYNAMIC_PLAYLIST),
68 (int(*)(void))playlist_viewer, NULL); 68 (int(*)(void))playlist_viewer, NULL, NOICON);
69MENUITEM_FUNCTION_WPARAM(save_playlist, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), 69MENUITEM_FUNCTION_WPARAM(save_playlist, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST),
70 (int(*)(void*))save_playlist_screen, NULL, NULL); 70 (int(*)(void*))save_playlist_screen, NULL, NULL, NOICON);
71MENUITEM_FUNCTION(catalog, ID2P(LANG_CATALOG), 71MENUITEM_FUNCTION(catalog, ID2P(LANG_CATALOG),
72 (int(*)(void))catalog_view_playlists, NULL); 72 (int(*)(void))catalog_view_playlists, NULL, NOICON);
73MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL); 73MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL);
74MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL); 74MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL);
75 75
76MAKE_MENU(playlist_menu_item, ID2P(LANG_PLAYLIST_MENU), NULL, 76MAKE_MENU(playlist_menu_item, ID2P(LANG_PLAYLIST_MENU), NULL,
77 bitmap_icons_6x8[Icon_Playlist],
77 &create_playlist_item, &view_playlist, &save_playlist, &catalog, 78 &create_playlist_item, &view_playlist, &save_playlist, &catalog,
78 &recursive_dir_insert, &warn_on_erase); 79 &recursive_dir_insert, &warn_on_erase);
79 80
diff --git a/apps/menus/recording_menu.c b/apps/menus/recording_menu.c
index 84a3bc5402..0b4ba52715 100644
--- a/apps/menus/recording_menu.c
+++ b/apps/menus/recording_menu.c
@@ -30,12 +30,13 @@
30 30
31#ifdef HAVE_RECORDING 31#ifdef HAVE_RECORDING
32MENUITEM_FUNCTION(rec_menu_recording_screen_item, ID2P(LANG_RECORDING_MENU), 32MENUITEM_FUNCTION(rec_menu_recording_screen_item, ID2P(LANG_RECORDING_MENU),
33 (menu_function)recording_screen, NULL); 33 (menu_function)recording_screen, NULL, NOICON);
34/* TEMP */ 34/* TEMP */
35bool recording_menu(bool no_source); /* from apps/sound_menu.h */ 35bool recording_menu(bool no_source); /* from apps/sound_menu.h */
36MENUITEM_FUNCTION_WPARAM(recording_settings, ID2P(LANG_RECORDING_SETTINGS), 36MENUITEM_FUNCTION_WPARAM(recording_settings, ID2P(LANG_RECORDING_SETTINGS),
37 (int (*)(void*))recording_menu,0, NULL); 37 (int (*)(void*))recording_menu,0, NULL, NOICON);
38 38
39MAKE_MENU(recording_settings_menu,ID2P(LANG_RECORDING),0, 39MAKE_MENU(recording_settings_menu,ID2P(LANG_RECORDING),
40 0, bitmap_icons_6x8[Icon_Recording],
40 &rec_menu_recording_screen_item, &recording_settings); 41 &rec_menu_recording_screen_item, &recording_settings);
41#endif 42#endif
diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c
index df39dc20ad..9743907344 100644
--- a/apps/menus/settings_menu.c
+++ b/apps/menus/settings_menu.c
@@ -47,15 +47,15 @@ MENUITEM_SETTING(tagcache_ram, &global_settings.tagcache_ram, NULL);
47#endif 47#endif
48MENUITEM_SETTING(tagcache_autoupdate, &global_settings.tagcache_autoupdate, NULL); 48MENUITEM_SETTING(tagcache_autoupdate, &global_settings.tagcache_autoupdate, NULL);
49MENUITEM_FUNCTION(tc_init, ID2P(LANG_TAGCACHE_FORCE_UPDATE), 49MENUITEM_FUNCTION(tc_init, ID2P(LANG_TAGCACHE_FORCE_UPDATE),
50 (int(*)(void))tagcache_rebuild, NULL); 50 (int(*)(void))tagcache_rebuild, NULL, NOICON);
51MENUITEM_FUNCTION(tc_update, ID2P(LANG_TAGCACHE_UPDATE), 51MENUITEM_FUNCTION(tc_update, ID2P(LANG_TAGCACHE_UPDATE),
52 (int(*)(void))tagcache_update, NULL); 52 (int(*)(void))tagcache_update, NULL, NOICON);
53MENUITEM_SETTING(runtimedb, &global_settings.runtimedb, NULL); 53MENUITEM_SETTING(runtimedb, &global_settings.runtimedb, NULL);
54MENUITEM_FUNCTION(tc_export, ID2P(LANG_TAGCACHE_EXPORT), 54MENUITEM_FUNCTION(tc_export, ID2P(LANG_TAGCACHE_EXPORT),
55 (int(*)(void))tagtree_export, NULL); 55 (int(*)(void))tagtree_export, NULL, NOICON);
56MENUITEM_FUNCTION(tc_import, ID2P(LANG_TAGCACHE_IMPORT), 56MENUITEM_FUNCTION(tc_import, ID2P(LANG_TAGCACHE_IMPORT),
57 (int(*)(void))tagtree_import, NULL); 57 (int(*)(void))tagtree_import, NULL, NOICON);
58MAKE_MENU(tagcache_menu, ID2P(LANG_TAGCACHE), 0, 58MAKE_MENU(tagcache_menu, ID2P(LANG_TAGCACHE), 0, NOICON,
59#ifdef HAVE_TC_RAMCACHE 59#ifdef HAVE_TC_RAMCACHE
60 &tagcache_ram, 60 &tagcache_ram,
61#endif 61#endif
@@ -92,7 +92,8 @@ static int fileview_callback(int action,const struct menu_item_ex *this_item)
92 return action; 92 return action;
93} 93}
94 94
95MAKE_MENU(file_menu, ID2P(LANG_FILE), 0, &sort_case, &sort_dir, &sort_file, 95MAKE_MENU(file_menu, ID2P(LANG_FILE), 0, NOICON,
96 &sort_case, &sort_dir, &sort_file,
96 &dirfilter, &browse_current, &show_icons, &show_path_in_browser, 97 &dirfilter, &browse_current, &show_icons, &show_path_in_browser,
97#ifdef HAVE_TAGCACHE 98#ifdef HAVE_TAGCACHE
98 &tagcache_menu 99 &tagcache_menu
@@ -125,7 +126,7 @@ static int usbcharging_callback(int action,const struct menu_item_ex *this_item)
125MENUITEM_SETTING(usb_charging, &global_settings.usb_charging, usbcharging_callback); 126MENUITEM_SETTING(usb_charging, &global_settings.usb_charging, usbcharging_callback);
126#endif 127#endif
127#endif 128#endif
128MAKE_MENU(battery_menu, ID2P(LANG_BATTERY_MENU), 0, 129MAKE_MENU(battery_menu, ID2P(LANG_BATTERY_MENU), 0, NOICON,
129 &battery_capacity, 130 &battery_capacity,
130#if BATTERY_TYPES_COUNT > 1 131#if BATTERY_TYPES_COUNT > 1
131 &battery_type, 132 &battery_type,
@@ -164,7 +165,7 @@ static int dircache_callback(int action,const struct menu_item_ex *this_item)
164} 165}
165MENUITEM_SETTING(dircache, &global_settings.dircache, dircache_callback); 166MENUITEM_SETTING(dircache, &global_settings.dircache, dircache_callback);
166#endif 167#endif
167MAKE_MENU(disk_menu, ID2P(LANG_DISK_MENU), 0, 168MAKE_MENU(disk_menu, ID2P(LANG_DISK_MENU), 0, NOICON,
168 &disk_spindown, 169 &disk_spindown,
169#ifdef HAVE_DIRCACHE 170#ifdef HAVE_DIRCACHE
170 &dircache, 171 &dircache,
@@ -204,9 +205,9 @@ static int timedate_set(void)
204 return result; 205 return result;
205} 206}
206 207
207MENUITEM_FUNCTION(time_set, ID2P(LANG_TIME), timedate_set, NULL); 208MENUITEM_FUNCTION(time_set, ID2P(LANG_TIME), timedate_set, NULL, NOICON);
208MENUITEM_SETTING(timeformat, &global_settings.timeformat, NULL); 209MENUITEM_SETTING(timeformat, &global_settings.timeformat, NULL);
209MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), 0, &time_set, &timeformat); 210MAKE_MENU(time_menu, ID2P(LANG_TIME_MENU), 0, NOICON, &time_set, &timeformat);
210#endif 211#endif
211 212
212/* System menu */ 213/* System menu */
@@ -241,16 +242,16 @@ static int sleep_timer(void)
241 &sleep_timer_set, 5, 0, 300, sleep_timer_formatter); 242 &sleep_timer_set, 5, 0, 300, sleep_timer_formatter);
242} 243}
243 244
244MENUITEM_FUNCTION(sleep_timer_call, ID2P(LANG_SLEEP_TIMER), sleep_timer, NULL); 245MENUITEM_FUNCTION(sleep_timer_call, ID2P(LANG_SLEEP_TIMER), sleep_timer, NULL, NOICON);
245#ifdef HAVE_ALARM_MOD 246#ifdef HAVE_ALARM_MOD
246MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU), 247MENUITEM_FUNCTION(alarm_screen_call, ID2P(LANG_ALARM_MOD_ALARM_MENU),
247 (menu_function)alarm_screen, NULL); 248 (menu_function)alarm_screen, NULL, NOICON);
248#endif 249#endif
249 250
250/* Limits menu */ 251/* Limits menu */
251MENUITEM_SETTING(max_files_in_dir, &global_settings.max_files_in_dir, NULL); 252MENUITEM_SETTING(max_files_in_dir, &global_settings.max_files_in_dir, NULL);
252MENUITEM_SETTING(max_files_in_playlist, &global_settings.max_files_in_playlist, NULL); 253MENUITEM_SETTING(max_files_in_playlist, &global_settings.max_files_in_playlist, NULL);
253MAKE_MENU(limits_menu, ID2P(LANG_LIMITS_MENU), 0, 254MAKE_MENU(limits_menu, ID2P(LANG_LIMITS_MENU), 0, NOICON,
254 &max_files_in_dir, &max_files_in_playlist); 255 &max_files_in_dir, &max_files_in_playlist);
255 256
256#if CONFIG_CODEC == MAS3507D 257#if CONFIG_CODEC == MAS3507D
@@ -274,7 +275,8 @@ MENUITEM_SETTING(line_in, &global_settings.line_in, linein_callback);
274MENUITEM_SETTING(car_adapter_mode, &global_settings.car_adapter_mode, NULL); 275MENUITEM_SETTING(car_adapter_mode, &global_settings.car_adapter_mode, NULL);
275#endif 276#endif
276 277
277MAKE_MENU(system_menu, ID2P(LANG_SYSTEM), 0, 278MAKE_MENU(system_menu, ID2P(LANG_SYSTEM),
279 0, bitmap_icons_6x8[Icon_System_menu],
278#ifndef SIMULATOR 280#ifndef SIMULATOR
279 &battery_menu, 281 &battery_menu,
280#endif 282#endif
@@ -326,6 +328,7 @@ MENUITEM_SETTING(autocreatebookmark,
326MENUITEM_SETTING(autoloadbookmark, &global_settings.autoloadbookmark, NULL); 328MENUITEM_SETTING(autoloadbookmark, &global_settings.autoloadbookmark, NULL);
327MENUITEM_SETTING(usemrb, &global_settings.usemrb, NULL); 329MENUITEM_SETTING(usemrb, &global_settings.usemrb, NULL);
328MAKE_MENU(bookmark_settings_menu, ID2P(LANG_BOOKMARK_SETTINGS), 0, 330MAKE_MENU(bookmark_settings_menu, ID2P(LANG_BOOKMARK_SETTINGS), 0,
331 bitmap_icons_6x8[Icon_Bookmark],
329 &autocreatebookmark, &autoloadbookmark, &usemrb); 332 &autocreatebookmark, &autoloadbookmark, &usemrb);
330/* BOOKMARK MENU */ 333/* BOOKMARK MENU */
331/***********************************/ 334/***********************************/
@@ -359,7 +362,7 @@ static int talk_callback(int action,const struct menu_item_ex *this_item)
359 } 362 }
360 return action; 363 return action;
361} 364}
362MAKE_MENU(voice_settings_menu, ID2P(LANG_VOICE), 0, 365MAKE_MENU(voice_settings_menu, ID2P(LANG_VOICE), 0, bitmap_icons_6x8[Icon_Voice],
363 &talk_menu, &talk_dir, &talk_file_item); 366 &talk_menu, &talk_dir, &talk_file_item);
364/* VOICE MENU */ 367/* VOICE MENU */
365/***********************************/ 368/***********************************/
@@ -370,9 +373,11 @@ static int language_browse(void)
370{ 373{
371 return (int)rockbox_browse(LANG_DIR, SHOW_LNG); 374 return (int)rockbox_browse(LANG_DIR, SHOW_LNG);
372} 375}
373MENUITEM_FUNCTION(browse_langs, ID2P(LANG_LANGUAGE), language_browse, NULL); 376MENUITEM_FUNCTION(browse_langs, ID2P(LANG_LANGUAGE), language_browse,
377 NULL, bitmap_icons_6x8[Icon_Language]);
374 378
375MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0, 379MAKE_MENU(settings_menu_item, ID2P(LANG_GENERAL_SETTINGS), 0,
380 bitmap_icons_6x8[Icon_General_settings_menu],
376 &playback_menu_item, &file_menu, &display_menu, &system_menu, 381 &playback_menu_item, &file_menu, &display_menu, &system_menu,
377 &bookmark_settings_menu, &browse_langs, &voice_settings_menu ); 382 &bookmark_settings_menu, &browse_langs, &voice_settings_menu );
378/* SETTINGS MENU */ 383/* SETTINGS MENU */
diff --git a/apps/menus/sound_menu.c b/apps/menus/sound_menu.c
index 8366981742..a8e86a7eed 100644
--- a/apps/menus/sound_menu.c
+++ b/apps/menus/sound_menu.c
@@ -75,17 +75,17 @@ MENUITEM_SETTING(stereo_width, &global_settings.stereo_width, soundmenu_callback
75 &global_settings.crossfeed_hf_attenuation, soundmenu_callback); 75 &global_settings.crossfeed_hf_attenuation, soundmenu_callback);
76 MENUITEM_SETTING(crossfeed_hf_cutoff, 76 MENUITEM_SETTING(crossfeed_hf_cutoff,
77 &global_settings.crossfeed_hf_cutoff, soundmenu_callback); 77 &global_settings.crossfeed_hf_cutoff, soundmenu_callback);
78 MAKE_MENU(crossfeed_menu,ID2P(LANG_CROSSFEED),soundmenu_callback, 78 MAKE_MENU(crossfeed_menu,ID2P(LANG_CROSSFEED),soundmenu_callback, NOICON,
79 &crossfeed, &crossfeed_direct_gain, &crossfeed_cross_gain, 79 &crossfeed, &crossfeed_direct_gain, &crossfeed_cross_gain,
80 &crossfeed_hf_attenuation, &crossfeed_hf_cutoff); 80 &crossfeed_hf_attenuation, &crossfeed_hf_cutoff);
81 81
82 MENUITEM_FUNCTION(equalizer_menu, ID2P(LANG_EQUALIZER), 82 MENUITEM_FUNCTION(equalizer_menu, ID2P(LANG_EQUALIZER),
83 (int(*)(void))eq_menu, NULL); 83 (int(*)(void))eq_menu, NULL, NOICON);
84 MENUITEM_SETTING(dithering_enabled, 84 MENUITEM_SETTING(dithering_enabled,
85 &global_settings.dithering_enabled, soundmenu_callback); 85 &global_settings.dithering_enabled, soundmenu_callback);
86#ifdef HAVE_WM8758 86#ifdef HAVE_WM8758
87 MENUITEM_FUNCTION(hw_equalizer_menu, ID2P(LANG_EQUALIZER_HARDWARE), 87 MENUITEM_FUNCTION(hw_equalizer_menu, ID2P(LANG_EQUALIZER_HARDWARE),
88 (int(*)(void))eq_hw_menu, NULL); 88 (int(*)(void))eq_hw_menu, NULL, NOICON);
89#endif 89#endif
90#endif 90#endif
91 91
@@ -102,7 +102,7 @@ MENUITEM_SETTING(stereo_width, &global_settings.stereo_width, soundmenu_callback
102 102
103 103
104 104
105MAKE_MENU(sound_settings, ID2P(LANG_SOUND_SETTINGS), NULL, 105MAKE_MENU(sound_settings, ID2P(LANG_SOUND_SETTINGS), NULL, bitmap_icons_6x8[Icon_Audio],
106 &volume, 106 &volume,
107#ifndef HAVE_TLV320 107#ifndef HAVE_TLV320
108 &bass,&treble, 108 &bass,&treble,
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index 4e1496e721..216486effb 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -56,12 +56,24 @@ const unsigned char bitmap_icons_6x8[][6] =
56 { 0x3e, 0x2a, 0x3e, 0x2a, 0x2a, 0x3e }, /* Language file */ 56 { 0x3e, 0x2a, 0x3e, 0x2a, 0x2a, 0x3e }, /* Language file */
57 { 0x4e, 0x51, 0x51, 0x40, 0x55, 0x55 }, /* Config file */ 57 { 0x4e, 0x51, 0x51, 0x40, 0x55, 0x55 }, /* Config file */
58 { 0x0a, 0x0a, 0x5f, 0x4e, 0x24, 0x18 }, /* Plugin file */ 58 { 0x0a, 0x0a, 0x5f, 0x4e, 0x24, 0x18 }, /* Plugin file */
59 { 0xff, 0x81, 0xaf, 0xaa, 0x8c, 0xf8 }, /* Bookmark file */ 59 { 0x7f, 0x41, 0x4f, 0x4a, 0x4c, 0x78 }, /* Bookmark file */
60 { 0x5f, 0x45, 0x5b, 0x40, 0x55, 0x55 }, /* Preset file */ 60 { 0x5f, 0x45, 0x5b, 0x40, 0x55, 0x55 }, /* Preset file */
61 { 0x77, 0x55, 0x55, 0x55, 0x55, 0x77 }, /* Queued Item */ 61 { 0x77, 0x55, 0x55, 0x55, 0x55, 0x77 }, /* Queued Item */
62 { 0x3e, 0x41, 0x3e, 0x1c, 0x1c, 0x08 }, /* Moving Item */ 62 { 0x3e, 0x41, 0x3e, 0x1c, 0x1c, 0x08 }, /* Moving Item */
63 { 0x7f, 0x7f, 0x1c, 0x3e, 0x77, 0x63 }, /* Keyboard file */ 63 { 0x7f, 0x7f, 0x1c, 0x3e, 0x77, 0x63 }, /* Keyboard file */
64 { 0x00, 0x00, 0x00, 0x08, 0x1c, 0x3e }, /* Reverse Cursor / Marker */ 64 { 0x00, 0x00, 0x00, 0x08, 0x1c, 0x3e }, /* Reverse Cursor / Marker */
65 { 0x06, 0x03, 0x5b, 0x5b, 0x0f, 0x06 }, /* question mark */
66 { 0x00, 0x18, 0x24, 0x24, 0x18, 0x00 }, /* Menu Settings */
67 { 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00 }, /* function call from the menu */
68 { 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18 }, /* sub menu */
69 { 0x01, 0x55, 0x01, 0x55, 0x54, 0x54 }, /* in submenu */
70 { 0x1c, 0x3e, 0x7f, 0x7f, 0x3e, 0x1c }, /* Recording menu */
71 { 0x1c, 0x1c, 0x22, 0x41, 0x7f, 0x00 }, /* voice menu */
72 { 0x06, 0x0f, 0x78, 0x78, 0x0f, 0x06 }, /* general settings menu */
73 { 0x1e, 0x22, 0x49, 0x49, 0x22, 0x1e }, /* system menu */
74 { 0x7f, 0x7f, 0x3e, 0x1c, 0x08, 0x00 }, /* playback menu */
75 { 0x1f, 0x51, 0x71, 0x71, 0x51, 0x1f }, /* display menu */
76 { 0x03, 0x05, 0x7f, 0x05, 0x03, 0x00 }, /* radio */
65}; 77};
66 78
67const unsigned char bitmap_icons_7x8[][7] = 79const unsigned char bitmap_icons_7x8[][7] =
diff --git a/apps/recorder/icons.h b/apps/recorder/icons.h
index 5aec0730c6..7b10f0c44a 100644
--- a/apps/recorder/icons.h
+++ b/apps/recorder/icons.h
@@ -19,6 +19,8 @@
19#ifndef _ICONS_H_ 19#ifndef _ICONS_H_
20#define _ICONS_H_ 20#define _ICONS_H_
21 21
22#ifndef PLUGIN
23
22#include <lcd.h> 24#include <lcd.h>
23 25
24#ifdef HAVE_LCD_BITMAP 26#ifdef HAVE_LCD_BITMAP
@@ -64,6 +66,18 @@ enum icons_6x8 {
64 Icon_Moving, 66 Icon_Moving,
65 Icon_Keyboard, 67 Icon_Keyboard,
66 Icon_Reverse_Cursor, 68 Icon_Reverse_Cursor,
69 Icon_Questionmark,
70 Icon_Menu_setting,
71 Icon_Menu_functioncall,
72 Icon_Submenu,
73 Icon_Submenu_Entered,
74 Icon_Recording,
75 Icon_Voice,
76 Icon_General_settings_menu,
77 Icon_System_menu,
78 Icon_Playback_menu,
79 Icon_Display_menu,
80 Icon_Radio_screen,
67 Icon6x8Last, 81 Icon6x8Last,
68}; 82};
69 83
@@ -163,5 +177,5 @@ extern void statusbar_led(void);
163#endif 177#endif
164 178
165#endif /* End HAVE_LCD_BITMAP */ 179#endif /* End HAVE_LCD_BITMAP */
166 180#endif /* PLUGIN */
167#endif /* _ICONS_H_ */ 181#endif /* _ICONS_H_ */
diff --git a/apps/settings.c b/apps/settings.c
index 52cfb6ed48..f424b44d43 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -1096,7 +1096,13 @@ static bool do_set_setting(const unsigned char* string, void *variable,
1096 else oldvalue = *(bool*)variable; 1096 else oldvalue = *(bool*)variable;
1097 1097
1098 gui_synclist_init(&lists,value_setting_get_name_cb,(void*)cb_data,false,1); 1098 gui_synclist_init(&lists,value_setting_get_name_cb,(void*)cb_data,false,1);
1099 gui_synclist_set_title(&lists, (char*)string, NOICON); 1099 gui_synclist_set_title(&lists, (char*)string,
1100#ifdef HAVE_LCD_BITMAP
1101 bitmap_icons_6x8[Icon_Questionmark]
1102#else
1103 NOICON
1104#endif
1105 );
1100 gui_synclist_set_icon_callback(&lists,NULL); 1106 gui_synclist_set_icon_callback(&lists,NULL);
1101 gui_synclist_set_nb_items(&lists,nb_items); 1107 gui_synclist_set_nb_items(&lists,nb_items);
1102 gui_synclist_limit_scroll(&lists,true); 1108 gui_synclist_limit_scroll(&lists,true);