diff options
-rw-r--r-- | apps/SOURCES | 1 | ||||
-rw-r--r-- | apps/lang/english.lang | 67 | ||||
-rw-r--r-- | apps/menus/display_menu.c | 159 | ||||
-rw-r--r-- | apps/menus/exported_menus.h | 10 | ||||
-rw-r--r-- | apps/menus/main_menu.c | 16 | ||||
-rw-r--r-- | apps/menus/theme_menu.c | 223 |
6 files changed, 293 insertions, 183 deletions
diff --git a/apps/SOURCES b/apps/SOURCES index 4cc7fee5e8..3686fc29f7 100644 --- a/apps/SOURCES +++ b/apps/SOURCES | |||
@@ -11,6 +11,7 @@ language.c | |||
11 | main.c | 11 | main.c |
12 | menu.c | 12 | menu.c |
13 | menus/display_menu.c | 13 | menus/display_menu.c |
14 | menus/theme_menu.c | ||
14 | #if CONFIG_CODEC == SWCODEC | 15 | #if CONFIG_CODEC == SWCODEC |
15 | menus/eq_menu.c | 16 | menus/eq_menu.c |
16 | #endif | 17 | #endif |
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 14f99d97c5..2b35e9147a 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -11248,15 +11248,15 @@ | |||
11248 | user: | 11248 | user: |
11249 | <source> | 11249 | <source> |
11250 | *: none | 11250 | *: none |
11251 | lcd_color: "Line Selector Primary Colour" | 11251 | lcd_color: "Primary Colour" |
11252 | </source> | 11252 | </source> |
11253 | <dest> | 11253 | <dest> |
11254 | *: none | 11254 | *: none |
11255 | lcd_color: "Line Selector Primary Colour" | 11255 | lcd_color: "Primary Colour" |
11256 | </dest> | 11256 | </dest> |
11257 | <voice> | 11257 | <voice> |
11258 | *: none | 11258 | *: none |
11259 | lcd_color: "Line Selector Primary Colour" | 11259 | lcd_color: "Primary Colour" |
11260 | </voice> | 11260 | </voice> |
11261 | </phrase> | 11261 | </phrase> |
11262 | <phrase> | 11262 | <phrase> |
@@ -11265,15 +11265,15 @@ | |||
11265 | user: | 11265 | user: |
11266 | <source> | 11266 | <source> |
11267 | *: none | 11267 | *: none |
11268 | lcd_color: "Line Selector Secondary Colour" | 11268 | lcd_color: "Secondary Colour" |
11269 | </source> | 11269 | </source> |
11270 | <dest> | 11270 | <dest> |
11271 | *: none | 11271 | *: none |
11272 | lcd_color: "Line Selector Secondary Colour" | 11272 | lcd_color: "Secondary Colour" |
11273 | </dest> | 11273 | </dest> |
11274 | <voice> | 11274 | <voice> |
11275 | *: none | 11275 | *: none |
11276 | lcd_color: "Line Selector Secondary Colour" | 11276 | lcd_color: "Secondary Colour" |
11277 | </voice> | 11277 | </voice> |
11278 | </phrase> | 11278 | </phrase> |
11279 | <phrase> | 11279 | <phrase> |
@@ -11282,15 +11282,15 @@ | |||
11282 | user: | 11282 | user: |
11283 | <source> | 11283 | <source> |
11284 | *: none | 11284 | *: none |
11285 | lcd_color: "Line Selector Text Colour" | 11285 | lcd_color: "Text Colour" |
11286 | </source> | 11286 | </source> |
11287 | <dest> | 11287 | <dest> |
11288 | *: none | 11288 | *: none |
11289 | lcd_color: "Line Selector Text Colour" | 11289 | lcd_color: "Text Colour" |
11290 | </dest> | 11290 | </dest> |
11291 | <voice> | 11291 | <voice> |
11292 | *: none | 11292 | *: none |
11293 | lcd_color: "Line Selector Text Colour" | 11293 | lcd_color: "Text Colour" |
11294 | </voice> | 11294 | </voice> |
11295 | </phrase> | 11295 | </phrase> |
11296 | <phrase> | 11296 | <phrase> |
@@ -11341,3 +11341,52 @@ | |||
11341 | *: "Central Eurpean" | 11341 | *: "Central Eurpean" |
11342 | </voice> | 11342 | </voice> |
11343 | </phrase> | 11343 | </phrase> |
11344 | <phrase> | ||
11345 | id: LANG_THEME_MENU | ||
11346 | desc: in the settings menu | ||
11347 | user: | ||
11348 | <source> | ||
11349 | *: "Theme Settings" | ||
11350 | </source> | ||
11351 | <dest> | ||
11352 | *: "Theme Settings" | ||
11353 | </dest> | ||
11354 | <voice> | ||
11355 | *: "Theme Settings" | ||
11356 | </voice> | ||
11357 | </phrase> | ||
11358 | <phrase> | ||
11359 | id: LANG_COLORS_MENU | ||
11360 | desc: colours menu under theme settings | ||
11361 | user: | ||
11362 | <source> | ||
11363 | *: none | ||
11364 | lcd_color: "Colours" | ||
11365 | </source> | ||
11366 | <dest> | ||
11367 | *: none | ||
11368 | lcd_color: "Colours" | ||
11369 | </dest> | ||
11370 | <voice> | ||
11371 | *: none | ||
11372 | lcd_color: "Colours" | ||
11373 | </voice> | ||
11374 | </phrase> | ||
11375 | |||
11376 | <phrase> | ||
11377 | id: LANG_SELECTOR_COLOR_MENU | ||
11378 | desc: line selector color menu title | ||
11379 | user: | ||
11380 | <source> | ||
11381 | *: none | ||
11382 | lcd_color: "Line Selector Colours" | ||
11383 | </source> | ||
11384 | <dest> | ||
11385 | *: none | ||
11386 | lcd_color: "Line Selector Colours" | ||
11387 | </dest> | ||
11388 | <voice> | ||
11389 | *: none | ||
11390 | lcd_color: "Line Selector Colours" | ||
11391 | </voice> | ||
11392 | </phrase> | ||
diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c index 11d1f25e7f..a68defdfd4 100644 --- a/apps/menus/display_menu.c +++ b/apps/menus/display_menu.c | |||
@@ -115,113 +115,7 @@ MENUITEM_SETTING(invert, &global_settings.invert, NULL); | |||
115 | #ifdef HAVE_LCD_FLIP | 115 | #ifdef HAVE_LCD_FLIP |
116 | MENUITEM_SETTING(flip_display, &global_settings.flip_display, flipdisplay_callback); | 116 | MENUITEM_SETTING(flip_display, &global_settings.flip_display, flipdisplay_callback); |
117 | #endif | 117 | #endif |
118 | MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL); | ||
119 | #endif /* HAVE_LCD_BITMAP */ | 118 | #endif /* HAVE_LCD_BITMAP */ |
120 | #if LCD_DEPTH > 1 | ||
121 | /** | ||
122 | * Menu to clear the backdrop image | ||
123 | */ | ||
124 | static int clear_main_backdrop(void) | ||
125 | { | ||
126 | global_settings.backdrop_file[0]=0; | ||
127 | unload_main_backdrop(); | ||
128 | show_main_backdrop(); | ||
129 | settings_save(); | ||
130 | return 0; | ||
131 | } | ||
132 | MENUITEM_FUNCTION(clear_main_bd, 0, ID2P(LANG_CLEAR_BACKDROP), | ||
133 | clear_main_backdrop, NULL, NULL, Icon_NOICON); | ||
134 | #endif /* LCD_DEPTH > 1 */ | ||
135 | #ifdef HAVE_LCD_COLOR | ||
136 | /** | ||
137 | * Menu for fore/back colors | ||
138 | */ | ||
139 | static int set_fg_color(void) | ||
140 | { | ||
141 | int res; | ||
142 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_FOREGROUND_COLOR), | ||
143 | &global_settings.fg_color,global_settings.bg_color); | ||
144 | |||
145 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | ||
146 | settings_save(); | ||
147 | return res; | ||
148 | } | ||
149 | |||
150 | static int set_bg_color(void) | ||
151 | { | ||
152 | int res; | ||
153 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_BACKGROUND_COLOR), | ||
154 | &global_settings.bg_color,global_settings.fg_color); | ||
155 | |||
156 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | ||
157 | settings_save(); | ||
158 | return res; | ||
159 | } | ||
160 | |||
161 | /* Line selector colour */ | ||
162 | static int set_lss_color(void) | ||
163 | { | ||
164 | int res; | ||
165 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_START_COLOR), | ||
166 | &global_settings.lss_color,-1); | ||
167 | |||
168 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
169 | settings_save(); | ||
170 | return res; | ||
171 | } | ||
172 | |||
173 | static int set_lse_color(void) | ||
174 | { | ||
175 | int res; | ||
176 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_END_COLOR), | ||
177 | &global_settings.lse_color,-1); | ||
178 | |||
179 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
180 | settings_save(); | ||
181 | return res; | ||
182 | } | ||
183 | |||
184 | /* Line selector text colour */ | ||
185 | static int set_lst_color(void) | ||
186 | { | ||
187 | int res; | ||
188 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_TEXT_COLOR), | ||
189 | &global_settings.lst_color,global_settings.lss_color); | ||
190 | |||
191 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
192 | settings_save(); | ||
193 | return res; | ||
194 | } | ||
195 | |||
196 | static int reset_color(void) | ||
197 | { | ||
198 | global_settings.fg_color = LCD_DEFAULT_FG; | ||
199 | global_settings.bg_color = LCD_DEFAULT_BG; | ||
200 | global_settings.lss_color = LCD_DEFAULT_LS; | ||
201 | global_settings.lse_color = LCD_DEFAULT_BG; | ||
202 | global_settings.lst_color = LCD_DEFAULT_FG; | ||
203 | |||
204 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | ||
205 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | ||
206 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
207 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
208 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
209 | settings_save(); | ||
210 | return 0; | ||
211 | } | ||
212 | MENUITEM_FUNCTION(set_bg_col, 0, ID2P(LANG_BACKGROUND_COLOR), | ||
213 | set_bg_color, NULL, NULL, Icon_NOICON); | ||
214 | MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), | ||
215 | set_fg_color, NULL, NULL, Icon_NOICON); | ||
216 | MENUITEM_FUNCTION(set_lss_col, 0, ID2P(LANG_SELECTOR_START_COLOR), | ||
217 | set_lss_color, NULL, NULL, Icon_NOICON); | ||
218 | MENUITEM_FUNCTION(set_lse_col, 0, ID2P(LANG_SELECTOR_END_COLOR), | ||
219 | set_lse_color, NULL, NULL, Icon_NOICON); | ||
220 | MENUITEM_FUNCTION(set_lst_col, 0, ID2P(LANG_SELECTOR_TEXT_COLOR), | ||
221 | set_lst_color, NULL, NULL, Icon_NOICON); | ||
222 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), | ||
223 | reset_color, NULL, NULL, Icon_NOICON); | ||
224 | #endif | ||
225 | 119 | ||
226 | /* now the actual menu */ | 120 | /* now the actual menu */ |
227 | MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU), | 121 | MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU), |
@@ -256,17 +150,7 @@ MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU), | |||
256 | # ifdef HAVE_LCD_FLIP | 150 | # ifdef HAVE_LCD_FLIP |
257 | ,&flip_display | 151 | ,&flip_display |
258 | # endif | 152 | # endif |
259 | ,&cursor_style | ||
260 | #endif /* HAVE_LCD_BITMAP */ | 153 | #endif /* HAVE_LCD_BITMAP */ |
261 | #ifdef HAVE_LCD_COLOR | ||
262 | ,&set_lss_col, &set_lse_col, &set_lst_col | ||
263 | #endif | ||
264 | #if LCD_DEPTH > 1 | ||
265 | ,&clear_main_bd, | ||
266 | #endif | ||
267 | #ifdef HAVE_LCD_COLOR | ||
268 | &set_bg_col, &set_fg_col, &reset_colors | ||
269 | #endif | ||
270 | ); | 154 | ); |
271 | /* LCD MENU */ | 155 | /* LCD MENU */ |
272 | /***********************************/ | 156 | /***********************************/ |
@@ -594,57 +478,16 @@ MAKE_MENU(peak_meter_menu, ID2P(LANG_PM_MENU), NULL, Icon_NOICON, | |||
594 | 478 | ||
595 | 479 | ||
596 | 480 | ||
597 | struct browse_folder_info { | ||
598 | const char* dir; | ||
599 | int show_options; | ||
600 | }; | ||
601 | #ifdef HAVE_LCD_BITMAP | ||
602 | static struct browse_folder_info fonts = {FONT_DIR, SHOW_FONT}; | ||
603 | #endif | ||
604 | static struct browse_folder_info wps = {WPS_DIR, SHOW_WPS}; | ||
605 | #ifdef HAVE_REMOTE_LCD | ||
606 | static struct browse_folder_info rwps = {WPS_DIR, SHOW_RWPS}; | ||
607 | #endif | ||
608 | |||
609 | static int browse_folder(void *param) | ||
610 | { | ||
611 | const struct browse_folder_info *info = | ||
612 | (const struct browse_folder_info*)param; | ||
613 | return rockbox_browse(info->dir, info->show_options); | ||
614 | } | ||
615 | |||
616 | #ifdef HAVE_LCD_BITMAP | ||
617 | MENUITEM_FUNCTION(browse_fonts, MENU_FUNC_USEPARAM, | ||
618 | ID2P(LANG_CUSTOM_FONT), | ||
619 | browse_folder, (void*)&fonts, NULL, Icon_NOICON); | ||
620 | #endif | ||
621 | MENUITEM_FUNCTION(browse_wps, MENU_FUNC_USEPARAM, | ||
622 | ID2P(LANG_WHILE_PLAYING), | ||
623 | browse_folder, (void*)&wps, NULL, Icon_NOICON); | ||
624 | #ifdef HAVE_REMOTE_LCD | ||
625 | MENUITEM_FUNCTION(browse_rwps, MENU_FUNC_USEPARAM, | ||
626 | ID2P(LANG_REMOTE_WHILE_PLAYING), | ||
627 | browse_folder, (void*)&rwps, NULL, Icon_NOICON); | ||
628 | #endif | ||
629 | |||
630 | MENUITEM_SETTING(show_icons, &global_settings.show_icons, NULL); | ||
631 | MENUITEM_SETTING(codepage_setting, &global_settings.default_codepage, NULL); | 481 | MENUITEM_SETTING(codepage_setting, &global_settings.default_codepage, NULL); |
632 | 482 | ||
633 | 483 | ||
634 | MAKE_MENU(display_menu, ID2P(LANG_DISPLAY), | 484 | MAKE_MENU(display_menu, ID2P(LANG_DISPLAY), |
635 | NULL, Icon_Display_menu, | 485 | NULL, Icon_Display_menu, |
636 | #ifdef HAVE_LCD_BITMAP | ||
637 | &browse_fonts, | ||
638 | #endif | ||
639 | &browse_wps, | ||
640 | #ifdef HAVE_REMOTE_LCD | ||
641 | &browse_rwps, | ||
642 | #endif | ||
643 | &lcd_settings, | 486 | &lcd_settings, |
644 | #ifdef HAVE_REMOTE_LCD | 487 | #ifdef HAVE_REMOTE_LCD |
645 | &lcd_remote_settings, | 488 | &lcd_remote_settings, |
646 | #endif | 489 | #endif |
647 | &show_icons, &scroll_settings_menu, | 490 | &scroll_settings_menu, |
648 | #ifdef HAVE_LCD_BITMAP | 491 | #ifdef HAVE_LCD_BITMAP |
649 | &bars_menu, &peak_meter_menu, | 492 | &bars_menu, &peak_meter_menu, |
650 | #endif | 493 | #endif |
diff --git a/apps/menus/exported_menus.h b/apps/menus/exported_menus.h index a4f8512a73..6318007c64 100644 --- a/apps/menus/exported_menus.h +++ b/apps/menus/exported_menus.h | |||
@@ -34,14 +34,20 @@ extern const struct menu_item_ex | |||
34 | settings_menu_item, /* settings_menu.c */ | 34 | settings_menu_item, /* settings_menu.c */ |
35 | playlist_settings, /* playlist_menu.c */ | 35 | playlist_settings, /* playlist_menu.c */ |
36 | playlist_options, /* playlist_menu.c */ | 36 | playlist_options, /* playlist_menu.c */ |
37 | equalizer_menu, /* eq_menu.c */ | 37 | equalizer_menu, /* eq_menu.c */ |
38 | info_menu; /* info_menu.c */ | 38 | info_menu, /* info_menu.c */ |
39 | theme_menu; /* theme_menu.c */ | ||
39 | 40 | ||
40 | #ifdef HAVE_WM8758 | 41 | #ifdef HAVE_WM8758 |
41 | extern const struct menu_item_ex hw_eq_menu; /* eq_menu.c */ | 42 | extern const struct menu_item_ex hw_eq_menu; /* eq_menu.c */ |
42 | #endif | 43 | #endif |
43 | 44 | ||
44 | 45 | ||
46 | struct browse_folder_info { | ||
47 | const char* dir; | ||
48 | int show_options; | ||
49 | }; | ||
50 | int browse_folder(void *param); /* in theme_menu.c as it is mostly used there */ | ||
45 | 51 | ||
46 | #endif /* ! PLUGIN */ | 52 | #endif /* ! PLUGIN */ |
47 | #endif /*_EXPORTED_MENUS_H */ | 53 | #endif /*_EXPORTED_MENUS_H */ |
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index 822301fe52..2dd0899a3b 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c | |||
@@ -49,18 +49,7 @@ | |||
49 | 49 | ||
50 | 50 | ||
51 | 51 | ||
52 | struct browse_folder_info { | ||
53 | const char* dir; | ||
54 | int show_options; | ||
55 | }; | ||
56 | static struct browse_folder_info theme = {THEME_DIR, SHOW_CFG}; | ||
57 | static struct browse_folder_info config = {ROCKBOX_DIR, SHOW_CFG}; | 52 | static struct browse_folder_info config = {ROCKBOX_DIR, SHOW_CFG}; |
58 | int browse_folder(void *param) | ||
59 | { | ||
60 | const struct browse_folder_info *info = | ||
61 | (const struct browse_folder_info*)param; | ||
62 | return rockbox_browse(info->dir, info->show_options); | ||
63 | } | ||
64 | 53 | ||
65 | /***********************************/ | 54 | /***********************************/ |
66 | /* MANAGE SETTINGS MENU */ | 55 | /* MANAGE SETTINGS MENU */ |
@@ -454,8 +443,6 @@ MAKE_MENU(info_menu, ID2P(LANG_SYSTEM), 0, Icon_Questionmark, | |||
454 | /***********************************/ | 443 | /***********************************/ |
455 | /* MAIN MENU */ | 444 | /* MAIN MENU */ |
456 | 445 | ||
457 | MENUITEM_FUNCTION(browse_themes, MENU_FUNC_USEPARAM, ID2P(LANG_CUSTOM_THEME), | ||
458 | browse_folder, (void*)&theme, NULL, Icon_Folder); | ||
459 | 446 | ||
460 | #ifdef HAVE_LCD_CHARCELLS | 447 | #ifdef HAVE_LCD_CHARCELLS |
461 | int mainmenu_callback(int action,const struct menu_item_ex *this_item) | 448 | int mainmenu_callback(int action,const struct menu_item_ex *this_item) |
@@ -478,10 +465,11 @@ int mainmenu_callback(int action,const struct menu_item_ex *this_item) | |||
478 | MAKE_MENU(main_menu_, ID2P(LANG_SETTINGS), mainmenu_callback, | 465 | MAKE_MENU(main_menu_, ID2P(LANG_SETTINGS), mainmenu_callback, |
479 | Icon_Submenu_Entered, | 466 | Icon_Submenu_Entered, |
480 | &sound_settings, | 467 | &sound_settings, |
481 | &settings_menu_item, &manage_settings, &browse_themes, | 468 | &settings_menu_item, &theme_menu, |
482 | #ifdef HAVE_RECORDING | 469 | #ifdef HAVE_RECORDING |
483 | &recording_settings, | 470 | &recording_settings, |
484 | #endif | 471 | #endif |
472 | &manage_settings, | ||
485 | ); | 473 | ); |
486 | /* MAIN MENU */ | 474 | /* MAIN MENU */ |
487 | /***********************************/ | 475 | /***********************************/ |
diff --git a/apps/menus/theme_menu.c b/apps/menus/theme_menu.c new file mode 100644 index 0000000000..723f9fe4ad --- /dev/null +++ b/apps/menus/theme_menu.c | |||
@@ -0,0 +1,223 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2007 Jonathan Gordon | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | |||
20 | #include <stdbool.h> | ||
21 | #include <stddef.h> | ||
22 | #include <limits.h> | ||
23 | #include "config.h" | ||
24 | #include "lang.h" | ||
25 | #include "action.h" | ||
26 | #include "settings.h" | ||
27 | #include "menu.h" | ||
28 | #include "tree.h" | ||
29 | #include "list.h" | ||
30 | #ifdef HAVE_LCD_BITMAP | ||
31 | #include "peakmeter.h" | ||
32 | #endif | ||
33 | #include "talk.h" | ||
34 | #include "color_picker.h" | ||
35 | #include "lcd.h" | ||
36 | #include "lcd-remote.h" | ||
37 | |||
38 | #if (LCD_DEPTH > 1) || (defined(HAVE_LCD_REMOTE) && (LCD_REMOTE_DEPTH > 1)) | ||
39 | #include "backdrop.h" | ||
40 | #endif | ||
41 | #include "exported_menus.h" | ||
42 | |||
43 | |||
44 | #if LCD_DEPTH > 1 | ||
45 | /** | ||
46 | * Menu to clear the backdrop image | ||
47 | */ | ||
48 | static int clear_main_backdrop(void) | ||
49 | { | ||
50 | global_settings.backdrop_file[0]=0; | ||
51 | unload_main_backdrop(); | ||
52 | show_main_backdrop(); | ||
53 | settings_save(); | ||
54 | return 0; | ||
55 | } | ||
56 | MENUITEM_FUNCTION(clear_main_bd, 0, ID2P(LANG_CLEAR_BACKDROP), | ||
57 | clear_main_backdrop, NULL, NULL, Icon_NOICON); | ||
58 | #endif | ||
59 | #ifdef HAVE_LCD_COLOR | ||
60 | /** | ||
61 | * Menu for fore/back colors | ||
62 | */ | ||
63 | static int set_fg_color(void) | ||
64 | { | ||
65 | int res; | ||
66 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_FOREGROUND_COLOR), | ||
67 | &global_settings.fg_color,global_settings.bg_color); | ||
68 | |||
69 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | ||
70 | settings_save(); | ||
71 | return res; | ||
72 | } | ||
73 | |||
74 | static int set_bg_color(void) | ||
75 | { | ||
76 | int res; | ||
77 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_BACKGROUND_COLOR), | ||
78 | &global_settings.bg_color,global_settings.fg_color); | ||
79 | |||
80 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | ||
81 | settings_save(); | ||
82 | return res; | ||
83 | } | ||
84 | |||
85 | /* Line selector colour */ | ||
86 | static int set_lss_color(void) | ||
87 | { | ||
88 | int res; | ||
89 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_START_COLOR), | ||
90 | &global_settings.lss_color,-1); | ||
91 | |||
92 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
93 | settings_save(); | ||
94 | return res; | ||
95 | } | ||
96 | |||
97 | static int set_lse_color(void) | ||
98 | { | ||
99 | int res; | ||
100 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_END_COLOR), | ||
101 | &global_settings.lse_color,-1); | ||
102 | |||
103 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
104 | settings_save(); | ||
105 | return res; | ||
106 | } | ||
107 | |||
108 | /* Line selector text colour */ | ||
109 | static int set_lst_color(void) | ||
110 | { | ||
111 | int res; | ||
112 | res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_TEXT_COLOR), | ||
113 | &global_settings.lst_color,global_settings.lss_color); | ||
114 | |||
115 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
116 | settings_save(); | ||
117 | return res; | ||
118 | } | ||
119 | |||
120 | static int reset_color(void) | ||
121 | { | ||
122 | global_settings.fg_color = LCD_DEFAULT_FG; | ||
123 | global_settings.bg_color = LCD_DEFAULT_BG; | ||
124 | global_settings.lss_color = LCD_DEFAULT_LS; | ||
125 | global_settings.lse_color = LCD_DEFAULT_BG; | ||
126 | global_settings.lst_color = LCD_DEFAULT_FG; | ||
127 | |||
128 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | ||
129 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | ||
130 | screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); | ||
131 | screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color); | ||
132 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | ||
133 | settings_save(); | ||
134 | return 0; | ||
135 | } | ||
136 | MENUITEM_FUNCTION(set_bg_col, 0, ID2P(LANG_BACKGROUND_COLOR), | ||
137 | set_bg_color, NULL, NULL, Icon_NOICON); | ||
138 | MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), | ||
139 | set_fg_color, NULL, NULL, Icon_NOICON); | ||
140 | MENUITEM_FUNCTION(set_lss_col, 0, ID2P(LANG_SELECTOR_START_COLOR), | ||
141 | set_lss_color, NULL, NULL, Icon_NOICON); | ||
142 | MENUITEM_FUNCTION(set_lse_col, 0, ID2P(LANG_SELECTOR_END_COLOR), | ||
143 | set_lse_color, NULL, NULL, Icon_NOICON); | ||
144 | MENUITEM_FUNCTION(set_lst_col, 0, ID2P(LANG_SELECTOR_TEXT_COLOR), | ||
145 | set_lst_color, NULL, NULL, Icon_NOICON); | ||
146 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), | ||
147 | reset_color, NULL, NULL, Icon_NOICON); | ||
148 | |||
149 | MAKE_MENU(lss_settings, ID2P(LANG_SELECTOR_COLOR_MENU), | ||
150 | NULL, Icon_NOICON, | ||
151 | &set_lss_col, &set_lse_col, &set_lst_col | ||
152 | ); | ||
153 | |||
154 | /* now the actual menu */ | ||
155 | MAKE_MENU(colors_settings, ID2P(LANG_COLORS_MENU), | ||
156 | NULL, Icon_Display_menu, | ||
157 | &lss_settings, | ||
158 | &set_bg_col, &set_fg_col, &reset_colors | ||
159 | ); | ||
160 | |||
161 | #endif /* HAVE_LCD_COLOR */ | ||
162 | /* LCD MENU */ | ||
163 | /***********************************/ | ||
164 | |||
165 | #ifdef HAVE_LCD_BITMAP | ||
166 | static struct browse_folder_info fonts = {FONT_DIR, SHOW_FONT}; | ||
167 | #endif | ||
168 | static struct browse_folder_info wps = {WPS_DIR, SHOW_WPS}; | ||
169 | #ifdef HAVE_REMOTE_LCD | ||
170 | static struct browse_folder_info rwps = {WPS_DIR, SHOW_RWPS}; | ||
171 | #endif | ||
172 | static struct browse_folder_info themes = {THEME_DIR, SHOW_CFG}; | ||
173 | |||
174 | int browse_folder(void *param) | ||
175 | { | ||
176 | const struct browse_folder_info *info = | ||
177 | (const struct browse_folder_info*)param; | ||
178 | return rockbox_browse(info->dir, info->show_options); | ||
179 | } | ||
180 | |||
181 | #ifdef HAVE_LCD_BITMAP | ||
182 | MENUITEM_FUNCTION(browse_fonts, MENU_FUNC_USEPARAM, | ||
183 | ID2P(LANG_CUSTOM_FONT), | ||
184 | browse_folder, (void*)&fonts, NULL, Icon_Font); | ||
185 | #endif | ||
186 | MENUITEM_FUNCTION(browse_wps, MENU_FUNC_USEPARAM, | ||
187 | ID2P(LANG_WHILE_PLAYING), | ||
188 | browse_folder, (void*)&wps, NULL, Icon_Wps); | ||
189 | #ifdef HAVE_REMOTE_LCD | ||
190 | MENUITEM_FUNCTION(browse_rwps, MENU_FUNC_USEPARAM, | ||
191 | ID2P(LANG_REMOTE_WHILE_PLAYING), | ||
192 | browse_folder, (void*)&rwps, NULL, Icon_Wps); | ||
193 | #endif | ||
194 | |||
195 | MENUITEM_SETTING(show_icons, &global_settings.show_icons, NULL); | ||
196 | MENUITEM_FUNCTION(browse_themes, MENU_FUNC_USEPARAM, | ||
197 | ID2P(LANG_CUSTOM_THEME), | ||
198 | browse_folder, (void*)&themes, NULL, Icon_Config); | ||
199 | #ifdef HAVE_LCD_BITMAP | ||
200 | MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL); | ||
201 | #endif | ||
202 | |||
203 | MAKE_MENU(theme_menu, ID2P(LANG_THEME_MENU), | ||
204 | NULL, Icon_Wps, | ||
205 | &browse_themes, | ||
206 | #ifdef HAVE_LCD_BITMAP | ||
207 | &browse_fonts, | ||
208 | #endif | ||
209 | &browse_wps, | ||
210 | #ifdef HAVE_REMOTE_LCD | ||
211 | &browse_rwps, | ||
212 | #endif | ||
213 | &show_icons, | ||
214 | #if LCD_DEPTH > 1 | ||
215 | &clear_main_bd, | ||
216 | #endif | ||
217 | #ifdef HAVE_LCD_BITMAP | ||
218 | &cursor_style, | ||
219 | #endif | ||
220 | #ifdef HAVE_LCD_COLOR | ||
221 | &colors_settings, | ||
222 | #endif | ||
223 | ); | ||