summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2008-03-06 05:49:10 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2008-03-06 05:49:10 +0000
commit012833ce1561d9a9d864f608a63a9189ec29b023 (patch)
tree08bd2810c813d0d87b709592bdd3b42f33a9bdf9
parent07b48ba86f3843908b8d8623df715ce41b875352 (diff)
downloadrockbox-012833ce1561d9a9d864f608a63a9189ec29b023.tar.gz
rockbox-012833ce1561d9a9d864f608a63a9189ec29b023.zip
merge the variou set color functions which all do the same thing (and just let settings_apply() set the setting)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16534 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/menus/theme_menu.c109
1 files changed, 36 insertions, 73 deletions
diff --git a/apps/menus/theme_menu.c b/apps/menus/theme_menu.c
index 43d52cf29c..0c17c0c373 100644
--- a/apps/menus/theme_menu.c
+++ b/apps/menus/theme_menu.c
@@ -40,7 +40,6 @@
40#endif 40#endif
41#include "exported_menus.h" 41#include "exported_menus.h"
42 42
43
44#if LCD_DEPTH > 1 43#if LCD_DEPTH > 1
45/** 44/**
46* Menu to clear the backdrop image 45* Menu to clear the backdrop image
@@ -57,66 +56,35 @@ MENUITEM_FUNCTION(clear_main_bd, 0, ID2P(LANG_CLEAR_BACKDROP),
57 clear_main_backdrop, NULL, NULL, Icon_NOICON); 56 clear_main_backdrop, NULL, NULL, Icon_NOICON);
58#endif 57#endif
59#ifdef HAVE_LCD_COLOR 58#ifdef HAVE_LCD_COLOR
60/**
61 * Menu for fore/back colors
62 */
63static 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 settings_apply();
72 return res;
73}
74
75static int set_bg_color(void)
76{
77 int res;
78 res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_BACKGROUND_COLOR),
79 &global_settings.bg_color,global_settings.fg_color);
80
81 screens[SCREEN_MAIN].set_background(global_settings.bg_color);
82 settings_save();
83 settings_apply();
84 return res;
85}
86 59
87/* Line selector colour */ 60enum Colors {
88static int set_lss_color(void) 61 COLOR_FG = 0,
62 COLOR_BG,
63 COLOR_LSS,
64 COLOR_LSE,
65 COLOR_LST,
66 COLOR_COUNT
67};
68static struct colour_info
89{ 69{
90 int res; 70 int *setting;
91 res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_START_COLOR), 71 int lang_id;
92 &global_settings.lss_color,-1); 72} colors[COLOR_COUNT] = {
73 [COLOR_FG] = {&global_settings.fg_color, LANG_FOREGROUND_COLOR},
74 [COLOR_BG] = {&global_settings.bg_color, LANG_BACKGROUND_COLOR},
75 [COLOR_LSS] = {&global_settings.lss_color, LANG_SELECTOR_START_COLOR},
76 [COLOR_LSE] = {&global_settings.lse_color, LANG_SELECTOR_END_COLOR},
77 [COLOR_LST] = {&global_settings.lst_color, LANG_SELECTOR_TEXT_COLOR},
78};
93 79
94 screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color); 80/**
95 settings_save(); 81 * Menu for fore/back/selection colors
96 settings_apply(); 82 */
97 return res; 83static int set_color_func(void* color)
98}
99
100static int set_lse_color(void)
101{
102 int res;
103 res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_END_COLOR),
104 &global_settings.lse_color,-1);
105
106 screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color);
107 settings_save();
108 settings_apply();
109 return res;
110}
111
112/* Line selector text colour */
113static int set_lst_color(void)
114{ 84{
115 int res; 85 int res, c = (intptr_t)color;
116 res = (int)set_color(&screens[SCREEN_MAIN],str(LANG_SELECTOR_TEXT_COLOR), 86 res = (int)set_color(&screens[SCREEN_MAIN],str(colors[c].lang_id),
117 &global_settings.lst_color,global_settings.lss_color); 87 colors[c].setting,*colors[c].setting);
118
119 screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color);
120 settings_save(); 88 settings_save();
121 settings_apply(); 89 settings_apply();
122 return res; 90 return res;
@@ -129,26 +97,21 @@ static int reset_color(void)
129 global_settings.lss_color = LCD_DEFAULT_LS; 97 global_settings.lss_color = LCD_DEFAULT_LS;
130 global_settings.lse_color = LCD_DEFAULT_BG; 98 global_settings.lse_color = LCD_DEFAULT_BG;
131 global_settings.lst_color = LCD_DEFAULT_FG; 99 global_settings.lst_color = LCD_DEFAULT_FG;
132 100
133 screens[SCREEN_MAIN].set_foreground(global_settings.fg_color);
134 screens[SCREEN_MAIN].set_background(global_settings.bg_color);
135 screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color);
136 screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color);
137 screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color);
138 settings_save(); 101 settings_save();
139 settings_apply(); 102 settings_apply();
140 return 0; 103 return 0;
141} 104}
142MENUITEM_FUNCTION(set_bg_col, 0, ID2P(LANG_BACKGROUND_COLOR), 105MENUITEM_FUNCTION(set_bg_col, MENU_FUNC_USEPARAM, ID2P(LANG_BACKGROUND_COLOR),
143 set_bg_color, NULL, NULL, Icon_NOICON); 106 set_color_func, (void*)COLOR_BG, NULL, Icon_NOICON);
144MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), 107MENUITEM_FUNCTION(set_fg_col, MENU_FUNC_USEPARAM, ID2P(LANG_FOREGROUND_COLOR),
145 set_fg_color, NULL, NULL, Icon_NOICON); 108 set_color_func, (void*)COLOR_FG, NULL, Icon_NOICON);
146MENUITEM_FUNCTION(set_lss_col, 0, ID2P(LANG_SELECTOR_START_COLOR), 109MENUITEM_FUNCTION(set_lss_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_START_COLOR),
147 set_lss_color, NULL, NULL, Icon_NOICON); 110 set_color_func, (void*)COLOR_LSS, NULL, Icon_NOICON);
148MENUITEM_FUNCTION(set_lse_col, 0, ID2P(LANG_SELECTOR_END_COLOR), 111MENUITEM_FUNCTION(set_lse_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_END_COLOR),
149 set_lse_color, NULL, NULL, Icon_NOICON); 112 set_color_func, (void*)COLOR_LSE, NULL, Icon_NOICON);
150MENUITEM_FUNCTION(set_lst_col, 0, ID2P(LANG_SELECTOR_TEXT_COLOR), 113MENUITEM_FUNCTION(set_lst_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_TEXT_COLOR),
151 set_lst_color, NULL, NULL, Icon_NOICON); 114 set_color_func, (void*)COLOR_LST, NULL, Icon_NOICON);
152MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), 115MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS),
153 reset_color, NULL, NULL, Icon_NOICON); 116 reset_color, NULL, NULL, Icon_NOICON);
154 117