diff options
author | Thomas Martitz <kugel@rockbox.org> | 2013-05-06 07:20:40 +0200 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2014-03-03 15:14:16 +0100 |
commit | 05a67d021c8fbb10b2654f8378b549901dd4c520 (patch) | |
tree | 23d0fa787d7373bf2ea08d1678cff47306a1a55d /apps/menus | |
parent | 20e114c1a0f086e432f374fe0ecebf014a571448 (diff) | |
download | rockbox-05a67d021c8fbb10b2654f8378b549901dd4c520.tar.gz rockbox-05a67d021c8fbb10b2654f8378b549901dd4c520.zip |
Touchscreen: Show a line separator in lists.
This patch adds a configurable line separator between list items, very
similar to lists in Android. Additionally, below the list item there is a
thicker line. It can be disabled in the settings. Its color can
be configured as well.
Remote and monochrome displays are explicitly unsupported. If there is desire
this can be changed but it doesn't seem useful to me.
Change-Id: I005313b0d8f5ecd15864bf20e66ea4e3390d8b7d
Diffstat (limited to 'apps/menus')
-rw-r--r-- | apps/menus/theme_menu.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/apps/menus/theme_menu.c b/apps/menus/theme_menu.c index 93511f8197..f64ded1615 100644 --- a/apps/menus/theme_menu.c +++ b/apps/menus/theme_menu.c | |||
@@ -68,6 +68,7 @@ enum Colors { | |||
68 | COLOR_LSS, | 68 | COLOR_LSS, |
69 | COLOR_LSE, | 69 | COLOR_LSE, |
70 | COLOR_LST, | 70 | COLOR_LST, |
71 | COLOR_SEP, | ||
71 | COLOR_COUNT | 72 | COLOR_COUNT |
72 | }; | 73 | }; |
73 | static struct colour_info | 74 | static struct colour_info |
@@ -80,6 +81,7 @@ static struct colour_info | |||
80 | [COLOR_LSS] = {&global_settings.lss_color, LANG_SELECTOR_START_COLOR}, | 81 | [COLOR_LSS] = {&global_settings.lss_color, LANG_SELECTOR_START_COLOR}, |
81 | [COLOR_LSE] = {&global_settings.lse_color, LANG_SELECTOR_END_COLOR}, | 82 | [COLOR_LSE] = {&global_settings.lse_color, LANG_SELECTOR_END_COLOR}, |
82 | [COLOR_LST] = {&global_settings.lst_color, LANG_SELECTOR_TEXT_COLOR}, | 83 | [COLOR_LST] = {&global_settings.lst_color, LANG_SELECTOR_TEXT_COLOR}, |
84 | [COLOR_SEP] = {&global_settings.list_separator_color, LANG_LIST_SEPARATOR_COLOR}, | ||
83 | }; | 85 | }; |
84 | 86 | ||
85 | /** | 87 | /** |
@@ -91,7 +93,7 @@ static int set_color_func(void* color) | |||
91 | /* Don't let foreground be set the same as background and vice-versa */ | 93 | /* Don't let foreground be set the same as background and vice-versa */ |
92 | if (c == COLOR_BG) | 94 | if (c == COLOR_BG) |
93 | banned_color = *colors[COLOR_FG].setting; | 95 | banned_color = *colors[COLOR_FG].setting; |
94 | else if (c == COLOR_FG) | 96 | else if (c == COLOR_FG || c == COLOR_SEP) |
95 | banned_color = *colors[COLOR_BG].setting; | 97 | banned_color = *colors[COLOR_BG].setting; |
96 | 98 | ||
97 | old_color = *colors[c].setting; | 99 | old_color = *colors[c].setting; |
@@ -113,6 +115,7 @@ static int reset_color(void) | |||
113 | global_settings.lss_color = LCD_DEFAULT_LS; | 115 | global_settings.lss_color = LCD_DEFAULT_LS; |
114 | global_settings.lse_color = LCD_DEFAULT_BG; | 116 | global_settings.lse_color = LCD_DEFAULT_BG; |
115 | global_settings.lst_color = LCD_DEFAULT_FG; | 117 | global_settings.lst_color = LCD_DEFAULT_FG; |
118 | global_settings.list_separator_color = LCD_DARKGRAY; | ||
116 | 119 | ||
117 | settings_save(); | 120 | settings_save(); |
118 | settings_apply(false); | 121 | settings_apply(false); |
@@ -129,6 +132,8 @@ MENUITEM_FUNCTION(set_lse_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_END_COLOR) | |||
129 | set_color_func, (void*)COLOR_LSE, NULL, Icon_NOICON); | 132 | set_color_func, (void*)COLOR_LSE, NULL, Icon_NOICON); |
130 | MENUITEM_FUNCTION(set_lst_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_TEXT_COLOR), | 133 | MENUITEM_FUNCTION(set_lst_col, MENU_FUNC_USEPARAM, ID2P(LANG_SELECTOR_TEXT_COLOR), |
131 | set_color_func, (void*)COLOR_LST, NULL, Icon_NOICON); | 134 | set_color_func, (void*)COLOR_LST, NULL, Icon_NOICON); |
135 | MENUITEM_FUNCTION(set_sep_col, MENU_FUNC_USEPARAM, ID2P(LANG_LIST_SEPARATOR_COLOR), | ||
136 | set_color_func, (void*)COLOR_SEP, NULL, Icon_NOICON); | ||
132 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), | 137 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), |
133 | reset_color, NULL, NULL, Icon_NOICON); | 138 | reset_color, NULL, NULL, Icon_NOICON); |
134 | 139 | ||
@@ -140,7 +145,7 @@ MAKE_MENU(lss_settings, ID2P(LANG_SELECTOR_COLOR_MENU), | |||
140 | /* now the actual menu */ | 145 | /* now the actual menu */ |
141 | MAKE_MENU(colors_settings, ID2P(LANG_COLORS_MENU), | 146 | MAKE_MENU(colors_settings, ID2P(LANG_COLORS_MENU), |
142 | NULL, Icon_Display_menu, | 147 | NULL, Icon_Display_menu, |
143 | &lss_settings, | 148 | &lss_settings, &set_sep_col, |
144 | &set_bg_col, &set_fg_col, &reset_colors | 149 | &set_bg_col, &set_fg_col, &reset_colors |
145 | ); | 150 | ); |
146 | 151 | ||
@@ -388,6 +393,9 @@ MENUITEM_FUNCTION(browse_themes, MENU_FUNC_USEPARAM, | |||
388 | #ifdef HAVE_LCD_BITMAP | 393 | #ifdef HAVE_LCD_BITMAP |
389 | MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL); | 394 | MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL); |
390 | #endif | 395 | #endif |
396 | #if LCD_DEPTH > 1 | ||
397 | MENUITEM_SETTING(sep_menu, &global_settings.list_separator_height, NULL); | ||
398 | #endif | ||
391 | 399 | ||
392 | MAKE_MENU(theme_menu, ID2P(LANG_THEME_MENU), | 400 | MAKE_MENU(theme_menu, ID2P(LANG_THEME_MENU), |
393 | NULL, Icon_Wps, | 401 | NULL, Icon_Wps, |
@@ -418,8 +426,11 @@ MAKE_MENU(theme_menu, ID2P(LANG_THEME_MENU), | |||
418 | #ifdef HAVE_LCD_BITMAP | 426 | #ifdef HAVE_LCD_BITMAP |
419 | &bars_menu, | 427 | &bars_menu, |
420 | &cursor_style, | 428 | &cursor_style, |
429 | #if LCD_DEPTH > 1 | ||
430 | &sep_menu, | ||
421 | #endif | 431 | #endif |
422 | #ifdef HAVE_LCD_COLOR | 432 | #ifdef HAVE_LCD_COLOR |
423 | &colors_settings, | 433 | &colors_settings, |
424 | #endif | 434 | #endif |
425 | ); | 435 | #endif /* HAVE_LCD_BITMAP */ |
436 | ); | ||