diff options
author | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-09-27 15:42:55 +0000 |
---|---|---|
committer | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-09-27 15:42:55 +0000 |
commit | f3b015f73b29f2d3514c32a9b8b8f0338b52e358 (patch) | |
tree | 65e1694745947a9a7d673811d12155f3b2a03019 | |
parent | 5353473b723749a7cd92d72e94423b74058287dc (diff) | |
download | rockbox-f3b015f73b29f2d3514c32a9b8b8f0338b52e358.tar.gz rockbox-f3b015f73b29f2d3514c32a9b8b8f0338b52e358.zip |
FS#7808 by Tom Ross, Ken Fazzone and me, with help from Antoine Cellerier.
Add two new line selector types: solid colour and gradient. Solid colour only uses the primary colour setting.
The secondary colour setting is used for the gradient. Text colour for the selected item is also changeable.
These new settings are a bit controversial so they may be removed later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14868 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/gui/color_picker.c | 2 | ||||
-rw-r--r-- | apps/gui/list.c | 25 | ||||
-rw-r--r-- | apps/lang/english.lang | 92 | ||||
-rw-r--r-- | apps/menus/display_menu.c | 55 | ||||
-rw-r--r-- | apps/recorder/recording.c | 36 | ||||
-rw-r--r-- | apps/screen_access.c | 5 | ||||
-rw-r--r-- | apps/screen_access.h | 5 | ||||
-rw-r--r-- | apps/settings.c | 3 | ||||
-rw-r--r-- | apps/settings.h | 6 | ||||
-rw-r--r-- | apps/settings_list.c | 18 | ||||
-rw-r--r-- | docs/CREDITS | 1 | ||||
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 98 | ||||
-rw-r--r-- | firmware/export/lcd.h | 8 | ||||
-rw-r--r-- | firmware/export/scroll_engine.h | 6 |
14 files changed, 327 insertions, 33 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 |
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(invert_cursor, &global_settings.invert_cursor, NULL); | 118 | MENUITEM_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 */ | ||
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 | |||
160 | static int reset_color(void) | 196 | static 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); |
172 | MENUITEM_FUNCTION(set_fg_col, 0, ID2P(LANG_FOREGROUND_COLOR), | 214 | MENUITEM_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); |
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); | ||
174 | MENUITEM_FUNCTION(reset_colors, 0, ID2P(LANG_RESET_COLORS), | 222 | MENUITEM_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), |
diff --git a/docs/CREDITS b/docs/CREDITS index 77d34f1abc..542278e914 100644 --- a/docs/CREDITS +++ b/docs/CREDITS | |||
@@ -334,6 +334,7 @@ Peter Harley | |||
334 | Max Kelley | 334 | Max Kelley |
335 | Alexander Eickhoff | 335 | Alexander Eickhoff |
336 | Pinitnun Shanasabang | 336 | Pinitnun Shanasabang |
337 | Ken Fazzone | ||
337 | 338 | ||
338 | The libmad team | 339 | The libmad team |
339 | The wavpack team | 340 | The wavpack team |
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c index 96a9e1a4d7..44d468521d 100644 --- a/firmware/drivers/lcd-16bit.c +++ b/firmware/drivers/lcd-16bit.c | |||
@@ -51,9 +51,15 @@ static long lcd_backdrop_offset IDATA_ATTR = 0; | |||
51 | #if !defined(TOSHIBA_GIGABEAT_F) || defined(SIMULATOR) | 51 | #if !defined(TOSHIBA_GIGABEAT_F) || defined(SIMULATOR) |
52 | static unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; | 52 | static unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; |
53 | static unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; | 53 | static unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; |
54 | static unsigned lss_pattern IDATA_ATTR = LCD_DEFAULT_LS; | ||
55 | static unsigned lse_pattern IDATA_ATTR = LCD_DEFAULT_BG; | ||
56 | static unsigned lst_pattern IDATA_ATTR = LCD_DEFAULT_FG; | ||
54 | #else | 57 | #else |
55 | unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; | 58 | unsigned fg_pattern IDATA_ATTR = LCD_DEFAULT_FG; |
56 | unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; | 59 | unsigned bg_pattern IDATA_ATTR = LCD_DEFAULT_BG; |
60 | unsigned lss_pattern IDATA_ATTR = LCD_DEFAULT_LS; | ||
61 | unsigned lse_pattern IDATA_ATTR = LCD_DEFAULT_BG; | ||
62 | unsigned lst_pattern IDATA_ATTR = LCD_DEFAULT_FG; | ||
57 | #endif | 63 | #endif |
58 | 64 | ||
59 | static int drawmode = DRMODE_SOLID; | 65 | static int drawmode = DRMODE_SOLID; |
@@ -103,6 +109,21 @@ unsigned lcd_get_background(void) | |||
103 | return bg_pattern; | 109 | return bg_pattern; |
104 | } | 110 | } |
105 | 111 | ||
112 | void lcd_set_selector_start(unsigned color) | ||
113 | { | ||
114 | lss_pattern = color; | ||
115 | } | ||
116 | |||
117 | void lcd_set_selector_end(unsigned color) | ||
118 | { | ||
119 | lse_pattern = color; | ||
120 | } | ||
121 | |||
122 | void lcd_set_selector_text(unsigned color) | ||
123 | { | ||
124 | lst_pattern = color; | ||
125 | } | ||
126 | |||
106 | void lcd_set_drawinfo(int mode, unsigned fg_color, unsigned bg_color) | 127 | void lcd_set_drawinfo(int mode, unsigned fg_color, unsigned bg_color) |
107 | { | 128 | { |
108 | lcd_set_drawmode(mode); | 129 | lcd_set_drawmode(mode); |
@@ -808,16 +829,48 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, | |||
808 | ypos = ymargin + y*h; | 829 | ypos = ymargin + y*h; |
809 | drawmode = (style & STYLE_INVERT) ? | 830 | drawmode = (style & STYLE_INVERT) ? |
810 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; | 831 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; |
811 | if (style & STYLE_COLORED) { | 832 | if (style & STYLE_GRADIENT || style & STYLE_COLORBAR) { |
833 | fg_pattern = lss_pattern; | ||
834 | } | ||
835 | else if (style & STYLE_COLORED) { | ||
812 | if (drawmode == DRMODE_SOLID) | 836 | if (drawmode == DRMODE_SOLID) |
813 | fg_pattern = style & STYLE_COLOR_MASK; | 837 | fg_pattern = style & STYLE_COLOR_MASK; |
814 | else | 838 | else |
815 | bg_pattern = style & STYLE_COLOR_MASK; | 839 | bg_pattern = style & STYLE_COLOR_MASK; |
816 | } | 840 | } |
817 | lcd_putsxyofs(xpos, ypos, offset, str); | ||
818 | drawmode ^= DRMODE_INVERSEVID; | 841 | drawmode ^= DRMODE_INVERSEVID; |
819 | xrect = xpos + MAX(w - offset, 0); | 842 | xrect = xpos + MAX(w - offset, 0); |
820 | lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h); | 843 | |
844 | if (style & STYLE_GRADIENT) { | ||
845 | int h_r = RGB_UNPACK_RED(lss_pattern) << 16; | ||
846 | int h_b = RGB_UNPACK_BLUE(lss_pattern) << 16; | ||
847 | int h_g = RGB_UNPACK_GREEN(lss_pattern) << 16; | ||
848 | int rstep = (h_r - ((signed)RGB_UNPACK_RED(lse_pattern) << 16)) / h; | ||
849 | int gstep = (h_g - ((signed)RGB_UNPACK_GREEN(lse_pattern) << 16)) / h; | ||
850 | int bstep = (h_b - ((signed)RGB_UNPACK_BLUE(lse_pattern) << 16)) / h; | ||
851 | int count; | ||
852 | |||
853 | drawmode = DRMODE_FG; | ||
854 | for(count = 0; count < h; count++) { | ||
855 | lcd_hline(xpos, LCD_WIDTH, ypos + count); | ||
856 | h_r -= rstep; | ||
857 | h_g -= gstep; | ||
858 | h_b -= bstep; | ||
859 | fg_pattern = LCD_RGBPACK(h_r >> 16, h_g >> 16, h_b >> 16); | ||
860 | } | ||
861 | fg_pattern = lst_pattern; | ||
862 | } | ||
863 | else if (style & STYLE_COLORBAR) { | ||
864 | drawmode = DRMODE_FG; | ||
865 | lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h); | ||
866 | fg_pattern = lst_pattern; | ||
867 | } | ||
868 | else { | ||
869 | lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h); | ||
870 | drawmode = (style & STYLE_INVERT) ? | ||
871 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; | ||
872 | } | ||
873 | lcd_putsxyofs(xpos, ypos, offset, str); | ||
821 | drawmode = lastmode; | 874 | drawmode = lastmode; |
822 | fg_pattern = oldfgcolor; | 875 | fg_pattern = oldfgcolor; |
823 | bg_pattern = oldbgcolor; | 876 | bg_pattern = oldbgcolor; |
@@ -852,7 +905,13 @@ void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string, | |||
852 | s->start_tick = current_tick + lcd_scroll_info.delay; | 905 | s->start_tick = current_tick + lcd_scroll_info.delay; |
853 | s->invert = false; | 906 | s->invert = false; |
854 | if (style & STYLE_INVERT) { | 907 | if (style & STYLE_INVERT) { |
855 | s->invert = true; | 908 | s->invert = 1; |
909 | } | ||
910 | else if (style & STYLE_COLORBAR) { | ||
911 | s->invert = 2; | ||
912 | } | ||
913 | else if (style & STYLE_GRADIENT) { | ||
914 | s->invert = 3; | ||
856 | } | 915 | } |
857 | lcd_puts_style_offset(x,y,string,style,offset); | 916 | lcd_puts_style_offset(x,y,string,style,offset); |
858 | 917 | ||
@@ -961,8 +1020,37 @@ void lcd_scroll_fn(void) | |||
961 | } | 1020 | } |
962 | 1021 | ||
963 | lastmode = drawmode; | 1022 | lastmode = drawmode; |
964 | drawmode = s->invert ? | 1023 | drawmode = s->invert == 1 ? |
965 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; | 1024 | (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; |
1025 | if (s->invert == 2) { | ||
1026 | fg_pattern = lss_pattern; | ||
1027 | drawmode = DRMODE_FG; | ||
1028 | lcd_fillrect(0, ypos, LCD_WIDTH, pf->height); | ||
1029 | fg_pattern = lst_pattern; | ||
1030 | } | ||
1031 | else if (s->invert == 3) { | ||
1032 | int h_r = RGB_UNPACK_RED(lss_pattern) << 16; | ||
1033 | int h_b = RGB_UNPACK_BLUE(lss_pattern) << 16; | ||
1034 | int h_g = RGB_UNPACK_GREEN(lss_pattern) << 16; | ||
1035 | int rstep = (h_r - ((signed)RGB_UNPACK_RED(lse_pattern) << 16)) | ||
1036 | / pf->height; | ||
1037 | int gstep = (h_g - ((signed)RGB_UNPACK_GREEN(lse_pattern) << 16)) | ||
1038 | / pf->height; | ||
1039 | int bstep = (h_b - ((signed)RGB_UNPACK_BLUE(lse_pattern) << 16)) | ||
1040 | / pf->height; | ||
1041 | unsigned int count; | ||
1042 | |||
1043 | fg_pattern = lss_pattern; | ||
1044 | drawmode = DRMODE_FG; | ||
1045 | for(count = 0; count < pf->height; count++) { | ||
1046 | lcd_hline(0, LCD_WIDTH , ypos + count); | ||
1047 | h_r -= rstep; | ||
1048 | h_g -= gstep; | ||
1049 | h_b -= bstep; | ||
1050 | fg_pattern = LCD_RGBPACK(h_r >> 16, h_g >> 16, h_b >> 16); | ||
1051 | } | ||
1052 | fg_pattern = lst_pattern; | ||
1053 | } | ||
966 | lcd_putsxyofs(xpos, ypos, s->offset, s->line); | 1054 | lcd_putsxyofs(xpos, ypos, s->offset, s->line); |
967 | drawmode = lastmode; | 1055 | drawmode = lastmode; |
968 | lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height); | 1056 | lcd_update_rect(xpos, ypos, LCD_WIDTH - xpos, pf->height); |
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index ac0aea8664..2ea9906a2a 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h | |||
@@ -27,6 +27,8 @@ | |||
27 | #define STYLE_DEFAULT 0x00000000 | 27 | #define STYLE_DEFAULT 0x00000000 |
28 | #define STYLE_INVERT 0x20000000 | 28 | #define STYLE_INVERT 0x20000000 |
29 | #define STYLE_COLORED 0x10000000 | 29 | #define STYLE_COLORED 0x10000000 |
30 | #define STYLE_COLORBAR 0x40000000 | ||
31 | #define STYLE_GRADIENT 0x80000000 | ||
30 | #define STYLE_COLOR_MASK 0x0000FFFF | 32 | #define STYLE_COLOR_MASK 0x0000FFFF |
31 | 33 | ||
32 | #ifdef SIMULATOR | 34 | #ifdef SIMULATOR |
@@ -233,6 +235,7 @@ static inline unsigned lcd_color_to_native(unsigned color) | |||
233 | #define LCD_WHITE LCD_RGBPACK(255, 255, 255) | 235 | #define LCD_WHITE LCD_RGBPACK(255, 255, 255) |
234 | #define LCD_DEFAULT_FG LCD_BLACK | 236 | #define LCD_DEFAULT_FG LCD_BLACK |
235 | #define LCD_DEFAULT_BG LCD_RGBPACK(182, 198, 229) /* rockbox blue */ | 237 | #define LCD_DEFAULT_BG LCD_RGBPACK(182, 198, 229) /* rockbox blue */ |
238 | #define LCD_DEFAULT_LS LCD_WHITE | ||
236 | 239 | ||
237 | #elif LCD_DEPTH > 1 /* greyscale */ | 240 | #elif LCD_DEPTH > 1 /* greyscale */ |
238 | 241 | ||
@@ -355,6 +358,11 @@ extern void lcd_set_foreground(unsigned foreground); | |||
355 | extern unsigned lcd_get_foreground(void); | 358 | extern unsigned lcd_get_foreground(void); |
356 | extern void lcd_set_background(unsigned background); | 359 | extern void lcd_set_background(unsigned background); |
357 | extern unsigned lcd_get_background(void); | 360 | extern unsigned lcd_get_background(void); |
361 | #ifdef HAVE_LCD_COLOR | ||
362 | extern void lcd_set_selector_start(unsigned selector); | ||
363 | extern void lcd_set_selector_end(unsigned selector); | ||
364 | extern void lcd_set_selector_text(unsigned selector_text); | ||
365 | #endif | ||
358 | extern void lcd_set_drawinfo(int mode, unsigned foreground, | 366 | extern void lcd_set_drawinfo(int mode, unsigned foreground, |
359 | unsigned background); | 367 | unsigned background); |
360 | void lcd_set_backdrop(fb_data* backdrop); | 368 | void lcd_set_backdrop(fb_data* backdrop); |
diff --git a/firmware/export/scroll_engine.h b/firmware/export/scroll_engine.h index aa11a9ba1f..f40a00f96c 100644 --- a/firmware/export/scroll_engine.h +++ b/firmware/export/scroll_engine.h | |||
@@ -43,8 +43,12 @@ struct scrollinfo | |||
43 | int startx; | 43 | int startx; |
44 | #ifdef HAVE_LCD_BITMAP | 44 | #ifdef HAVE_LCD_BITMAP |
45 | int width; /* length of line in pixels */ | 45 | int width; /* length of line in pixels */ |
46 | bool invert; /* invert the scrolled text */ | 46 | #ifdef HAVE_LCD_COLOR |
47 | int invert; /* invert the scrolled text */ | ||
48 | #else | ||
49 | bool invert; | ||
47 | #endif | 50 | #endif |
51 | #endif/* HAVE_LCD_BITMAP */ | ||
48 | bool backward; /* scroll presently forward or backward? */ | 52 | bool backward; /* scroll presently forward or backward? */ |
49 | bool bidir; | 53 | bool bidir; |
50 | long start_tick; | 54 | long start_tick; |