summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/color_picker.c2
-rw-r--r--apps/gui/list.c25
-rw-r--r--apps/lang/english.lang92
-rw-r--r--apps/menus/display_menu.c55
-rw-r--r--apps/recorder/recording.c36
-rw-r--r--apps/screen_access.c5
-rw-r--r--apps/screen_access.h5
-rw-r--r--apps/settings.c3
-rw-r--r--apps/settings.h6
-rw-r--r--apps/settings_list.c18
10 files changed, 220 insertions, 27 deletions
diff --git a/apps/gui/color_picker.c b/apps/gui/color_picker.c
index 1116aaae23..513db74bf9 100644
--- a/apps/gui/color_picker.c
+++ b/apps/gui/color_picker.c
@@ -200,7 +200,7 @@ static void draw_screen(struct screen *display, char *title,
200 set_drawinfo(display, DRMODE_SOLID, text_color, 200 set_drawinfo(display, DRMODE_SOLID, text_color,
201 background_color); 201 background_color);
202 202
203 if (global_settings.invert_cursor) 203 if (global_settings.cursor_style != 0)
204 { 204 {
205 /* Draw solid bar selection bar */ 205 /* Draw solid bar selection bar */
206 display->fillrect(0, 206 display->fillrect(0,
diff --git a/apps/gui/list.c b/apps/gui/list.c
index a8bbce8cda..6a7d21cc4b 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -141,7 +141,7 @@ static void gui_list_flash(struct gui_list * gui_list)
141 int selected_line=gui_list->selected_item-gui_list->start_item+SHOW_LIST_TITLE; 141 int selected_line=gui_list->selected_item-gui_list->start_item+SHOW_LIST_TITLE;
142#ifdef HAVE_LCD_BITMAP 142#ifdef HAVE_LCD_BITMAP
143 int line_ypos=display->getymargin()+display->char_height*selected_line; 143 int line_ypos=display->getymargin()+display->char_height*selected_line;
144 if (global_settings.invert_cursor) 144 if (global_settings.cursor_style)
145 { 145 {
146 int line_xpos=display->getxmargin(); 146 int line_xpos=display->getxmargin();
147 display->set_drawmode(DRMODE_COMPLEMENT); 147 display->set_drawmode(DRMODE_COMPLEMENT);
@@ -313,7 +313,7 @@ static void gui_list_draw_smart(struct gui_list *gui_list)
313 draw_scrollbar = (global_settings.scrollbar && 313 draw_scrollbar = (global_settings.scrollbar &&
314 lines < gui_list->nb_items); 314 lines < gui_list->nb_items);
315 315
316 draw_cursor = !global_settings.invert_cursor && 316 draw_cursor = !global_settings.cursor_style &&
317 gui_list->show_selection_marker; 317 gui_list->show_selection_marker;
318 text_pos = 0; /* here it's in pixels */ 318 text_pos = 0; /* here it's in pixels */
319 if(draw_scrollbar || SHOW_LIST_TITLE) /* indent if there's 319 if(draw_scrollbar || SHOW_LIST_TITLE) /* indent if there's
@@ -390,11 +390,28 @@ static void gui_list_draw_smart(struct gui_list *gui_list)
390 current_item < gui_list->selected_item + gui_list->selected_size) 390 current_item < gui_list->selected_item + gui_list->selected_size)
391 {/* The selected item must be displayed scrolling */ 391 {/* The selected item must be displayed scrolling */
392#ifdef HAVE_LCD_BITMAP 392#ifdef HAVE_LCD_BITMAP
393 if (global_settings.invert_cursor)/* Display inverted-line-style*/ 393 if (global_settings.cursor_style == 1
394#ifdef HAVE_REMOTE_LCD
395 || display->screen_type == SCREEN_REMOTE
396#endif
397 )
394 { 398 {
399 /* Display inverted-line-style */
395 style |= STYLE_INVERT; 400 style |= STYLE_INVERT;
396 } 401 }
397 else /* if (!global_settings.invert_cursor) */ 402#ifdef HAVE_LCD_COLOR
403 else if (global_settings.cursor_style == 2)
404 {
405 /* Display colour line selector */
406 style |= STYLE_COLORBAR;
407 }
408 else if (global_settings.cursor_style == 3)
409 {
410 /* Display gradient line selector */
411 style |= STYLE_GRADIENT;
412 }
413#endif
414 else /* if (!global_settings.cursor_style) */
398 { 415 {
399 if (current_item % gui_list->selected_size != 0) 416 if (current_item % gui_list->selected_size != 0)
400 draw_cursor = false; 417 draw_cursor = false;
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 490f6d38b0..de254a3b1d 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -2899,15 +2899,15 @@
2899 user: 2899 user:
2900 <source> 2900 <source>
2901 *: none 2901 *: none
2902 lcd_bitmap: "Line Selector" 2902 lcd_bitmap: "Line Selector Type"
2903 </source> 2903 </source>
2904 <dest> 2904 <dest>
2905 *: none 2905 *: none
2906 lcd_bitmap: "Line Selector" 2906 lcd_bitmap: "Line Selector Type"
2907 </dest> 2907 </dest>
2908 <voice> 2908 <voice>
2909 *: none 2909 *: none
2910 lcd_bitmap: "Line Selector" 2910 lcd_bitmap: "Line Selector Type"
2911 </voice> 2911 </voice>
2912</phrase> 2912</phrase>
2913<phrase> 2913<phrase>
@@ -11242,3 +11242,89 @@
11242 usbstack: "Device Driver" 11242 usbstack: "Device Driver"
11243 </voice> 11243 </voice>
11244</phrase> 11244</phrase>
11245<phrase>
11246 id: LANG_SELECTOR_START_COLOR
11247 desc: line selector color option
11248 user:
11249 <source>
11250 *: none
11251 lcd_color: "Line Selector Primary Colour"
11252 </source>
11253 <dest>
11254 *: none
11255 lcd_color: "Line Selector Primary Colour"
11256 </dest>
11257 <voice>
11258 *: none
11259 lcd_color: "Line Selector Primary Colour"
11260 </voice>
11261</phrase>
11262<phrase>
11263 id: LANG_SELECTOR_END_COLOR
11264 desc: line selector color option
11265 user:
11266 <source>
11267 *: none
11268 lcd_color: "Line Selector Secondary Colour"
11269 </source>
11270 <dest>
11271 *: none
11272 lcd_color: "Line Selector Secondary Colour"
11273 </dest>
11274 <voice>
11275 *: none
11276 lcd_color: "Line Selector Secondary Colour"
11277 </voice>
11278</phrase>
11279<phrase>
11280 id: LANG_SELECTOR_TEXT_COLOR
11281 desc: line selector text color option
11282 user:
11283 <source>
11284 *: none
11285 lcd_color: "Line Selector Text Colour"
11286 </source>
11287 <dest>
11288 *: none
11289 lcd_color: "Line Selector Text Colour"
11290 </dest>
11291 <voice>
11292 *: none
11293 lcd_color: "Line Selector Text Colour"
11294 </voice>
11295</phrase>
11296<phrase>
11297 id: LANG_INVERT_CURSOR_COLOR
11298 desc: in settings_menu
11299 user:
11300 <source>
11301 *: none
11302 lcd_color: "Bar (Solid Colour)"
11303 </source>
11304 <dest>
11305 *: none
11306 lcd_color: "Bar (Solid Colour)"
11307 </dest>
11308 <voice>
11309 *: none
11310 lcd_color: "Bar (Solid Colour)"
11311 </voice>
11312</phrase>
11313<phrase>
11314 id: LANG_INVERT_CURSOR_GRADIENT
11315 desc: in settings_menu
11316 user:
11317 <source>
11318 *: none
11319 lcd_color: "Bar (Gradient Colour)"
11320 </source>
11321 <dest>
11322 *: none
11323 lcd_color: "Bar (Gradient Colour)"
11324 </dest>
11325 <voice>
11326 *: none
11327 lcd_color: "Bar (Gradient Colour)"
11328 </voice>
11329</phrase>
11330
diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c
index c1e574a974..11d1f25e7f 100644
--- a/apps/menus/display_menu.c
+++ b/apps/menus/display_menu.c
@@ -115,7 +115,7 @@ MENUITEM_SETTING(invert, &global_settings.invert, NULL);
115#ifdef HAVE_LCD_FLIP 115#ifdef HAVE_LCD_FLIP
116MENUITEM_SETTING(flip_display, &global_settings.flip_display, flipdisplay_callback); 116MENUITEM_SETTING(flip_display, &global_settings.flip_display, flipdisplay_callback);
117#endif 117#endif
118MENUITEM_SETTING(invert_cursor, &global_settings.invert_cursor, NULL); 118MENUITEM_SETTING(cursor_style, &global_settings.cursor_style, NULL);
119#endif /* HAVE_LCD_BITMAP */ 119#endif /* HAVE_LCD_BITMAP */
120#if LCD_DEPTH > 1 120#if LCD_DEPTH > 1
121/** 121/**
@@ -157,13 +157,55 @@ static int set_bg_color(void)
157 settings_save(); 157 settings_save();
158 return res; 158 return res;
159} 159}
160
161/* Line selector colour */
162static 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
173static 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 */
185static 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
160static int reset_color(void) 196static int reset_color(void)
161{ 197{
162 global_settings.fg_color = LCD_DEFAULT_FG; 198 global_settings.fg_color = LCD_DEFAULT_FG;
163 global_settings.bg_color = LCD_DEFAULT_BG; 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;
164 203
165 screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); 204 screens[SCREEN_MAIN].set_foreground(global_settings.fg_color);
166 screens[SCREEN_MAIN].set_background(global_settings.bg_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);
167 settings_save(); 209 settings_save();
168 return 0; 210 return 0;
169} 211}
@@ -171,6 +213,12 @@ MENUITEM_FUNCTION(set_bg_col, 0, ID2P(LANG_BACKGROUND_COLOR),
171 set_bg_color, NULL, NULL, Icon_NOICON); 213 set_bg_color, NULL, NULL, Icon_NOICON);
172MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), 214MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR),
173 set_fg_color, NULL, NULL, Icon_NOICON); 215 set_fg_color, NULL, NULL, Icon_NOICON);
216MENUITEM_FUNCTION(set_lss_col, 0, ID2P(LANG_SELECTOR_START_COLOR),
217 set_lss_color, NULL, NULL, Icon_NOICON);
218MENUITEM_FUNCTION(set_lse_col, 0, ID2P(LANG_SELECTOR_END_COLOR),
219 set_lse_color, NULL, NULL, Icon_NOICON);
220MENUITEM_FUNCTION(set_lst_col, 0, ID2P(LANG_SELECTOR_TEXT_COLOR),
221 set_lst_color, NULL, NULL, Icon_NOICON);
174MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), 222MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS),
175 reset_color, NULL, NULL, Icon_NOICON); 223 reset_color, NULL, NULL, Icon_NOICON);
176#endif 224#endif
@@ -208,8 +256,11 @@ MAKE_MENU(lcd_settings,ID2P(LANG_LCD_MENU),
208# ifdef HAVE_LCD_FLIP 256# ifdef HAVE_LCD_FLIP
209 ,&flip_display 257 ,&flip_display
210# endif 258# endif
211 ,&invert_cursor 259 ,&cursor_style
212#endif /* HAVE_LCD_BITMAP */ 260#endif /* HAVE_LCD_BITMAP */
261#ifdef HAVE_LCD_COLOR
262 ,&set_lss_col, &set_lse_col, &set_lst_col
263#endif
213#if LCD_DEPTH > 1 264#if LCD_DEPTH > 1
214 ,&clear_main_bd, 265 ,&clear_main_bd,
215#endif 266#endif
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index f643b8442a..bd04d26929 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -857,6 +857,16 @@ bool recording_screen(bool no_source)
857 ID2P(LANG_GIGABYTE) 857 ID2P(LANG_GIGABYTE)
858 }; 858 };
859 859
860 int style = STYLE_INVERT;
861#ifdef HAVE_LCD_COLOR
862 if (global_settings.cursor_style == 2) {
863 style |= STYLE_COLORBAR;
864 }
865 else if (global_settings.cursor_style == 3) {
866 style |= STYLE_GRADIENT;
867 }
868#endif
869
860 struct audio_recording_options rec_options; 870 struct audio_recording_options rec_options;
861 if (check_dir(global_settings.rec_directory) == false) 871 if (check_dir(global_settings.rec_directory) == false)
862 { 872 {
@@ -930,7 +940,7 @@ bool recording_screen(bool no_source)
930 { 940 {
931 screens[i].setfont(FONT_SYSFIXED); 941 screens[i].setfont(FONT_SYSFIXED);
932 screens[i].getstringsize("M", &w, &h); 942 screens[i].getstringsize("M", &w, &h);
933 screens[i].setmargins(global_settings.invert_cursor ? 0 : w, 8); 943 screens[i].setmargins(global_settings.cursor_style ? 0 : w, 8);
934 filename_offset[i] = ((screens[i].height >= 80) ? 1 : 0); 944 filename_offset[i] = ((screens[i].height >= 80) ? 1 : 0);
935 pm_y[i] = 8 + h * (2 + filename_offset[i]); 945 pm_y[i] = 8 + h * (2 + filename_offset[i]);
936 } 946 }
@@ -1331,7 +1341,7 @@ bool recording_screen(bool no_source)
1331 { 1341 {
1332 screens[i].setfont(FONT_SYSFIXED); 1342 screens[i].setfont(FONT_SYSFIXED);
1333 screens[i].setmargins( 1343 screens[i].setmargins(
1334 global_settings.invert_cursor ? 0 : w, 8); 1344 global_settings.cursor_style ? 0 : w, 8);
1335 } 1345 }
1336 } 1346 }
1337 } 1347 }
@@ -1555,11 +1565,11 @@ bool recording_screen(bool no_source)
1555 global_settings.volume, 1565 global_settings.volume,
1556 buf2, sizeof(buf2))); 1566 buf2, sizeof(buf2)));
1557 1567
1558 if (global_settings.invert_cursor && (pos++ == cursor)) 1568 if (global_settings.cursor_style && (pos++ == cursor))
1559 { 1569 {
1560 for(i = 0; i < screen_update; i++) 1570 for(i = 0; i < screen_update; i++)
1561 screens[i].puts_style_offset(0, filename_offset[i] + 1571 screens[i].puts_style_offset(0, filename_offset[i] +
1562 PM_HEIGHT + 2, buf, STYLE_INVERT,0); 1572 PM_HEIGHT + 2, buf, style,0);
1563 } 1573 }
1564 else 1574 else
1565 { 1575 {
@@ -1574,11 +1584,11 @@ bool recording_screen(bool no_source)
1574 fmt_gain(SOUND_MIC_GAIN, 1584 fmt_gain(SOUND_MIC_GAIN,
1575 global_settings.rec_mic_gain, 1585 global_settings.rec_mic_gain,
1576 buf2, sizeof(buf2))); 1586 buf2, sizeof(buf2)));
1577 if(global_settings.invert_cursor && ((1==cursor)||(2==cursor))) 1587 if(global_settings.cursor_style && ((1==cursor)||(2==cursor)))
1578 { 1588 {
1579 for(i = 0; i < screen_update; i++) 1589 for(i = 0; i < screen_update; i++)
1580 screens[i].puts_style_offset(0, filename_offset[i] + 1590 screens[i].puts_style_offset(0, filename_offset[i] +
1581 PM_HEIGHT + 3, buf, STYLE_INVERT,0); 1591 PM_HEIGHT + 3, buf, style,0);
1582 } 1592 }
1583 else 1593 else
1584 { 1594 {
@@ -1598,11 +1608,11 @@ bool recording_screen(bool no_source)
1598 fmt_gain(SOUND_LEFT_GAIN, 1608 fmt_gain(SOUND_LEFT_GAIN,
1599 global_settings.rec_left_gain, 1609 global_settings.rec_left_gain,
1600 buf2, sizeof(buf2))); 1610 buf2, sizeof(buf2)));
1601 if(global_settings.invert_cursor && ((1==cursor)||(2==cursor))) 1611 if(global_settings.cursor_style && ((1==cursor)||(2==cursor)))
1602 { 1612 {
1603 for(i = 0; i < screen_update; i++) 1613 for(i = 0; i < screen_update; i++)
1604 screens[i].puts_style_offset(0, filename_offset[i] + 1614 screens[i].puts_style_offset(0, filename_offset[i] +
1605 PM_HEIGHT + 3, buf, STYLE_INVERT,0); 1615 PM_HEIGHT + 3, buf, style,0);
1606 } 1616 }
1607 else 1617 else
1608 { 1618 {
@@ -1616,11 +1626,11 @@ bool recording_screen(bool no_source)
1616 fmt_gain(SOUND_RIGHT_GAIN, 1626 fmt_gain(SOUND_RIGHT_GAIN,
1617 global_settings.rec_right_gain, 1627 global_settings.rec_right_gain,
1618 buf2, sizeof(buf2))); 1628 buf2, sizeof(buf2)));
1619 if(global_settings.invert_cursor && ((1==cursor)||(3==cursor))) 1629 if(global_settings.cursor_style && ((1==cursor)||(3==cursor)))
1620 { 1630 {
1621 for(i = 0; i < screen_update; i++) 1631 for(i = 0; i < screen_update; i++)
1622 screens[i].puts_style_offset(0, filename_offset[i] + 1632 screens[i].puts_style_offset(0, filename_offset[i] +
1623 PM_HEIGHT + 4, buf, STYLE_INVERT,0); 1633 PM_HEIGHT + 4, buf, style,0);
1624 } 1634 }
1625 else 1635 else
1626 { 1636 {
@@ -1701,11 +1711,11 @@ bool recording_screen(bool no_source)
1701 global_settings.rec_right_gain)/2, 1711 global_settings.rec_right_gain)/2,
1702 buf2, sizeof(buf2))); 1712 buf2, sizeof(buf2)));
1703 1713
1704 if(global_settings.invert_cursor && ((cursor==4) || (cursor==5))) 1714 if(global_settings.cursor_style && ((cursor==4) || (cursor==5)))
1705 { 1715 {
1706 for(i = 0; i < screen_update; i++) 1716 for(i = 0; i < screen_update; i++)
1707 screens[i].puts_style_offset(0, filename_offset[i] + 1717 screens[i].puts_style_offset(0, filename_offset[i] +
1708 PM_HEIGHT + line[i], buf, STYLE_INVERT,0); 1718 PM_HEIGHT + line[i], buf, style,0);
1709 } 1719 }
1710 else if ( 1720 else if (
1711 global_settings.rec_source == AUDIO_SRC_MIC 1721 global_settings.rec_source == AUDIO_SRC_MIC
@@ -1737,7 +1747,7 @@ bool recording_screen(bool no_source)
1737 } 1747 }
1738#endif /* HAVE_AGC */ 1748#endif /* HAVE_AGC */
1739 1749
1740 if(!global_settings.invert_cursor) { 1750 if(!global_settings.cursor_style) {
1741 switch(cursor) 1751 switch(cursor)
1742 { 1752 {
1743 case 1: 1753 case 1:
diff --git a/apps/screen_access.c b/apps/screen_access.c
index 251bd7e848..a10e96475e 100644
--- a/apps/screen_access.c
+++ b/apps/screen_access.c
@@ -77,6 +77,11 @@ struct screen screens[NB_SCREENS] =
77 .get_foreground=&lcd_get_foreground, 77 .get_foreground=&lcd_get_foreground,
78 .set_background=&lcd_set_background, 78 .set_background=&lcd_set_background,
79 .set_foreground=&lcd_set_foreground, 79 .set_foreground=&lcd_set_foreground,
80#ifdef HAVE_LCD_COLOR
81 .set_selector_start=&lcd_set_selector_start,
82 .set_selector_end=&lcd_set_selector_end,
83 .set_selector_text=&lcd_set_selector_text,
84#endif
80#endif /* LCD_DEPTH > 1 */ 85#endif /* LCD_DEPTH > 1 */
81 .update_rect=&lcd_update_rect, 86 .update_rect=&lcd_update_rect,
82 .fillrect=&lcd_fillrect, 87 .fillrect=&lcd_fillrect,
diff --git a/apps/screen_access.h b/apps/screen_access.h
index 05a53d5d0f..6333251d29 100644
--- a/apps/screen_access.h
+++ b/apps/screen_access.h
@@ -107,6 +107,11 @@ struct screen
107 void (*set_background)(unsigned background); 107 void (*set_background)(unsigned background);
108 void (*set_foreground)(unsigned foreground); 108 void (*set_foreground)(unsigned foreground);
109#endif /* (LCD_DEPTH > 1) || (LCD_REMOTE_DEPTH > 1) */ 109#endif /* (LCD_DEPTH > 1) || (LCD_REMOTE_DEPTH > 1) */
110#if defined(HAVE_LCD_COLOR)
111 void (*set_selector_start)(unsigned selector);
112 void (*set_selector_end)(unsigned selector);
113 void (*set_selector_text)(unsigned selector_text);
114#endif
110 void (*update_rect)(int x, int y, int width, int height); 115 void (*update_rect)(int x, int y, int width, int height);
111 void (*fillrect)(int x, int y, int width, int height); 116 void (*fillrect)(int x, int y, int width, int height);
112 void (*drawrect)(int x, int y, int width, int height); 117 void (*drawrect)(int x, int y, int width, int height);
diff --git a/apps/settings.c b/apps/settings.c
index 6e26574f6a..a020c18e1b 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -778,6 +778,9 @@ void settings_apply(void)
778#ifdef HAVE_LCD_COLOR 778#ifdef HAVE_LCD_COLOR
779 screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); 779 screens[SCREEN_MAIN].set_foreground(global_settings.fg_color);
780 screens[SCREEN_MAIN].set_background(global_settings.bg_color); 780 screens[SCREEN_MAIN].set_background(global_settings.bg_color);
781 screens[SCREEN_MAIN].set_selector_start(global_settings.lss_color);
782 screens[SCREEN_MAIN].set_selector_end(global_settings.lse_color);
783 screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color);
781#endif 784#endif
782 785
783#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) 786#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
diff --git a/apps/settings.h b/apps/settings.h
index 72f607d693..ee8fd48831 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -412,8 +412,7 @@ struct user_settings
412 int contrast; /* lcd contrast */ 412 int contrast; /* lcd contrast */
413#endif 413#endif
414 bool invert; /* invert display */ 414 bool invert; /* invert display */
415 bool invert_cursor; /* invert the current file in dir browser and menu 415 int cursor_style; /* style of the selection cursor */
416 instead of using the default cursor */
417 bool flip_display; /* turn display (and button layout) by 180 degrees */ 416 bool flip_display; /* turn display (and button layout) by 180 degrees */
418 int poweroff; /* power off timer */ 417 int poweroff; /* power off timer */
419 int backlight_timeout; /* backlight off timeout: 0-18 0=never, 418 int backlight_timeout; /* backlight off timeout: 0-18 0=never,
@@ -641,6 +640,9 @@ struct user_settings
641#ifdef HAVE_LCD_COLOR 640#ifdef HAVE_LCD_COLOR
642 int bg_color; /* background color native format */ 641 int bg_color; /* background color native format */
643 int fg_color; /* foreground color native format */ 642 int fg_color; /* foreground color native format */
643 int lss_color; /* background color for the selector or start color for the gradient */
644 int lse_color; /* end color for the selector gradient */
645 int lst_color; /* color of the text for the selector */
644#endif 646#endif
645 bool party_mode; /* party mode - unstoppable music */ 647 bool party_mode; /* party mode - unstoppable music */
646 648
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 176d1cee69..51ac3eb473 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -457,8 +457,16 @@ const struct settings_list settings[] = {
457 OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL), 457 OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL),
458#endif 458#endif
459 /* display */ 459 /* display */
460 BOOL_SETTING(F_TEMPVAR, invert_cursor, LANG_INVERT_CURSOR, true ,"invert cursor", off_on, 460 CHOICE_SETTING(F_TEMPVAR|F_THEMESETTING, cursor_style, LANG_INVERT_CURSOR, 1,
461 LANG_INVERT_CURSOR_BAR, LANG_INVERT_CURSOR_POINTER, NULL), 461 #ifdef HAVE_LCD_COLOR
462 "selector type", "pointer,bar (inverse),bar (color),bar (gradient)",
463 NULL, 4,
464 ID2P(LANG_INVERT_CURSOR_POINTER), ID2P(LANG_INVERT_CURSOR_BAR),
465 ID2P(LANG_INVERT_CURSOR_COLOR), ID2P(LANG_INVERT_CURSOR_GRADIENT)),
466 #else
467 "selector type", "pointer,bar (inverse)", NULL, 2,
468 ID2P(LANG_INVERT_CURSOR_POINTER), ID2P(LANG_INVERT_CURSOR_BAR)),
469 #endif
462 OFFON_SETTING(F_THEMESETTING|F_TEMPVAR, statusbar, 470 OFFON_SETTING(F_THEMESETTING|F_TEMPVAR, statusbar,
463 LANG_STATUS_BAR, true,"statusbar", NULL), 471 LANG_STATUS_BAR, true,"statusbar", NULL),
464 OFFON_SETTING(0,scrollbar, LANG_SCROLL_BAR, true,"scrollbar", NULL), 472 OFFON_SETTING(0,scrollbar, LANG_SCROLL_BAR, true,"scrollbar", NULL),
@@ -625,6 +633,12 @@ const struct settings_list settings[] = {
625 "foreground color",NULL,UNUSED}, 633 "foreground color",NULL,UNUSED},
626 {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.bg_color,-1,INT(LCD_DEFAULT_BG), 634 {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.bg_color,-1,INT(LCD_DEFAULT_BG),
627 "background color",NULL,UNUSED}, 635 "background color",NULL,UNUSED},
636 {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lss_color,-1,INT(LCD_DEFAULT_LS),
637 "line selector start color",NULL,UNUSED},
638 {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lse_color,-1,INT(LCD_DEFAULT_BG),
639 "line selector end color",NULL,UNUSED},
640 {F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lst_color,-1,INT(LCD_DEFAULT_FG),
641 "line selector text color",NULL,UNUSED},
628#endif 642#endif
629 /* more playback */ 643 /* more playback */
630 OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), 644 OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL),