diff options
Diffstat (limited to 'apps/plugins/text_viewer')
-rw-r--r-- | apps/plugins/text_viewer/tv_display.c | 19 | ||||
-rw-r--r-- | apps/plugins/text_viewer/tv_display.h | 3 | ||||
-rw-r--r-- | apps/plugins/text_viewer/tv_menu.c | 17 | ||||
-rw-r--r-- | apps/plugins/text_viewer/tv_preferences.c | 4 | ||||
-rw-r--r-- | apps/plugins/text_viewer/tv_preferences.h | 2 | ||||
-rw-r--r-- | apps/plugins/text_viewer/tv_settings.c | 13 |
6 files changed, 52 insertions, 6 deletions
diff --git a/apps/plugins/text_viewer/tv_display.c b/apps/plugins/text_viewer/tv_display.c index 3376ccc548..1f8499bed2 100644 --- a/apps/plugins/text_viewer/tv_display.c +++ b/apps/plugins/text_viewer/tv_display.c | |||
@@ -69,6 +69,7 @@ | |||
69 | #define TV_SCROLLBAR_WIDTH rb->global_settings->scrollbar_width | 69 | #define TV_SCROLLBAR_WIDTH rb->global_settings->scrollbar_width |
70 | #define TV_SCROLLBAR_HEIGHT 4 | 70 | #define TV_SCROLLBAR_HEIGHT 4 |
71 | 71 | ||
72 | |||
72 | #ifndef HAVE_LCD_BITMAP | 73 | #ifndef HAVE_LCD_BITMAP |
73 | #define TV_BOOKMARK_ICON 0xe101 | 74 | #define TV_BOOKMARK_ICON 0xe101 |
74 | #endif | 75 | #endif |
@@ -220,6 +221,7 @@ void tv_draw_text(int row, const unsigned char *text, int offset) | |||
220 | } | 221 | } |
221 | 222 | ||
222 | display->set_viewport(&vp_text); | 223 | display->set_viewport(&vp_text); |
224 | tv_night_mode(); | ||
223 | #ifdef HAVE_LCD_BITMAP | 225 | #ifdef HAVE_LCD_BITMAP |
224 | display->putsxy(xpos, row * row_height, text); | 226 | display->putsxy(xpos, row * row_height, text); |
225 | #else | 227 | #else |
@@ -231,6 +233,7 @@ void tv_draw_text(int row, const unsigned char *text, int offset) | |||
231 | void tv_start_display(void) | 233 | void tv_start_display(void) |
232 | { | 234 | { |
233 | display->set_viewport(&vp_info); | 235 | display->set_viewport(&vp_info); |
236 | tv_night_mode(); | ||
234 | #ifdef HAVE_LCD_BITMAP | 237 | #ifdef HAVE_LCD_BITMAP |
235 | display->set_drawmode(DRMODE_SOLID); | 238 | display->set_drawmode(DRMODE_SOLID); |
236 | #endif | 239 | #endif |
@@ -239,6 +242,7 @@ void tv_start_display(void) | |||
239 | rb->lcd_set_backdrop(NULL); | 242 | rb->lcd_set_backdrop(NULL); |
240 | #endif | 243 | #endif |
241 | display->clear_viewport(); | 244 | display->clear_viewport(); |
245 | |||
242 | } | 246 | } |
243 | 247 | ||
244 | void tv_end_display(void) | 248 | void tv_end_display(void) |
@@ -403,6 +407,21 @@ bool tv_init_display(unsigned char **buf, size_t *size) | |||
403 | return true; | 407 | return true; |
404 | } | 408 | } |
405 | 409 | ||
410 | void tv_night_mode(void) | ||
411 | { | ||
412 | #ifdef HAVE_LCD_COLOR | ||
413 | if(preferences->night_mode) | ||
414 | { | ||
415 | rb->lcd_set_foreground(LCD_RGBPACK(0xBF,0xBF,0x00)); | ||
416 | rb->lcd_set_background(LCD_RGBPACK(0x96,0x0D,0x00)); | ||
417 | }else | ||
418 | { | ||
419 | rb->lcd_set_foreground(LCD_WHITE); | ||
420 | rb->lcd_set_background(LCD_BLACK); | ||
421 | } | ||
422 | #endif | ||
423 | } | ||
424 | |||
406 | void tv_finalize_display(void) | 425 | void tv_finalize_display(void) |
407 | { | 426 | { |
408 | #ifdef HAVE_LCD_BITMAP | 427 | #ifdef HAVE_LCD_BITMAP |
diff --git a/apps/plugins/text_viewer/tv_display.h b/apps/plugins/text_viewer/tv_display.h index f6a3d19b78..9dfe17d900 100644 --- a/apps/plugins/text_viewer/tv_display.h +++ b/apps/plugins/text_viewer/tv_display.h | |||
@@ -103,6 +103,9 @@ void tv_start_display(void); | |||
103 | /* end the display processing */ | 103 | /* end the display processing */ |
104 | void tv_end_display(void); | 104 | void tv_end_display(void); |
105 | 105 | ||
106 | /*change color scheme*/ | ||
107 | void tv_night_mode(void); | ||
108 | |||
106 | 109 | ||
107 | /* layout functions */ | 110 | /* layout functions */ |
108 | 111 | ||
diff --git a/apps/plugins/text_viewer/tv_menu.c b/apps/plugins/text_viewer/tv_menu.c index 9e796982d3..01fb052151 100644 --- a/apps/plugins/text_viewer/tv_menu.c +++ b/apps/plugins/text_viewer/tv_menu.c | |||
@@ -247,6 +247,13 @@ static bool tv_indent_spaces_setting(void) | |||
247 | &new_prefs.indent_spaces, NULL, 1, 0, 5, NULL); | 247 | &new_prefs.indent_spaces, NULL, 1, 0, 5, NULL); |
248 | } | 248 | } |
249 | 249 | ||
250 | #ifdef HAVE_LCD_COLOR | ||
251 | static bool tv_night_mode_setting(void) | ||
252 | { | ||
253 | return rb->set_bool("Night Mode", &new_prefs.night_mode); | ||
254 | } | ||
255 | #endif | ||
256 | |||
250 | MENUITEM_FUNCTION(encoding_item, 0, "Encoding", tv_encoding_setting, | 257 | MENUITEM_FUNCTION(encoding_item, 0, "Encoding", tv_encoding_setting, |
251 | NULL, NULL, Icon_NOICON); | 258 | NULL, NULL, Icon_NOICON); |
252 | MENUITEM_FUNCTION(word_wrap_item, 0, "Word Wrap", tv_word_wrap_setting, | 259 | MENUITEM_FUNCTION(word_wrap_item, 0, "Word Wrap", tv_word_wrap_setting, |
@@ -269,6 +276,10 @@ MENUITEM_FUNCTION(font_item, 0, "Font", tv_font_setting, | |||
269 | #endif | 276 | #endif |
270 | MENUITEM_FUNCTION(indent_spaces_item, 0, "Indent Spaces", tv_indent_spaces_setting, | 277 | MENUITEM_FUNCTION(indent_spaces_item, 0, "Indent Spaces", tv_indent_spaces_setting, |
271 | NULL, NULL, Icon_NOICON); | 278 | NULL, NULL, Icon_NOICON); |
279 | #ifdef HAVE_LCD_COLOR | ||
280 | MENUITEM_FUNCTION(night_mode_item, 0, "Night Mode", tv_night_mode_setting, | ||
281 | NULL, NULL, Icon_NOICON); | ||
282 | #endif | ||
272 | 283 | ||
273 | MAKE_MENU(option_menu, "Viewer Options", NULL, Icon_NOICON, | 284 | MAKE_MENU(option_menu, "Viewer Options", NULL, Icon_NOICON, |
274 | &encoding_item, &word_wrap_item, &line_mode_item, &windows_item, | 285 | &encoding_item, &word_wrap_item, &line_mode_item, &windows_item, |
@@ -276,7 +287,11 @@ MAKE_MENU(option_menu, "Viewer Options", NULL, Icon_NOICON, | |||
276 | #ifdef HAVE_LCD_BITMAP | 287 | #ifdef HAVE_LCD_BITMAP |
277 | &header_item, &footer_item, &font_item, &statusbar_item, | 288 | &header_item, &footer_item, &font_item, &statusbar_item, |
278 | #endif | 289 | #endif |
279 | &scroll_menu, &indent_spaces_item); | 290 | &scroll_menu, &indent_spaces_item |
291 | #ifdef HAVE_LCD_COLOR | ||
292 | , &night_mode_item | ||
293 | #endif | ||
294 | ); | ||
280 | 295 | ||
281 | static unsigned tv_options_menu(void) | 296 | static unsigned tv_options_menu(void) |
282 | { | 297 | { |
diff --git a/apps/plugins/text_viewer/tv_preferences.c b/apps/plugins/text_viewer/tv_preferences.c index 86719ae16b..54c21ba04d 100644 --- a/apps/plugins/text_viewer/tv_preferences.c +++ b/apps/plugins/text_viewer/tv_preferences.c | |||
@@ -49,6 +49,7 @@ static bool tv_notify_change_preferences(const struct tv_preferences *oldp) | |||
49 | * - font | 49 | * - font |
50 | * - autoscroll_speed | 50 | * - autoscroll_speed |
51 | * - narrow_mode | 51 | * - narrow_mode |
52 | * - night_mode | ||
52 | */ | 53 | */ |
53 | if ((oldp == NULL) || | 54 | if ((oldp == NULL) || |
54 | (oldp->word_mode != preferences->word_mode) || | 55 | (oldp->word_mode != preferences->word_mode) || |
@@ -120,7 +121,8 @@ void tv_set_default_preferences(struct tv_preferences *p) | |||
120 | p->footer_mode = false; | 121 | p->footer_mode = false; |
121 | p->statusbar = false; | 122 | p->statusbar = false; |
122 | #endif | 123 | #endif |
123 | p->autoscroll_speed = 1; | 124 | p->autoscroll_speed = 10; |
125 | p->night_mode = false; | ||
124 | p->narrow_mode = NM_PAGE; | 126 | p->narrow_mode = NM_PAGE; |
125 | p->indent_spaces = 2; | 127 | p->indent_spaces = 2; |
126 | /* Set codepage to system default */ | 128 | /* Set codepage to system default */ |
diff --git a/apps/plugins/text_viewer/tv_preferences.h b/apps/plugins/text_viewer/tv_preferences.h index f3b2aebfa6..65d9521e15 100644 --- a/apps/plugins/text_viewer/tv_preferences.h +++ b/apps/plugins/text_viewer/tv_preferences.h | |||
@@ -93,6 +93,8 @@ struct tv_preferences { | |||
93 | 93 | ||
94 | bool statusbar; | 94 | bool statusbar; |
95 | 95 | ||
96 | bool night_mode; | ||
97 | |||
96 | #ifdef HAVE_LCD_BITMAP | 98 | #ifdef HAVE_LCD_BITMAP |
97 | unsigned char font_name[MAX_PATH]; | 99 | unsigned char font_name[MAX_PATH]; |
98 | int font_id; | 100 | int font_id; |
diff --git a/apps/plugins/text_viewer/tv_settings.c b/apps/plugins/text_viewer/tv_settings.c index 895f162ebb..dfd47ec7a3 100644 --- a/apps/plugins/text_viewer/tv_settings.c +++ b/apps/plugins/text_viewer/tv_settings.c | |||
@@ -50,7 +50,8 @@ | |||
50 | * narrow_mode 1 | 50 | * narrow_mode 1 |
51 | * indent_spaces 1 | 51 | * indent_spaces 1 |
52 | * statusbar 1 | 52 | * statusbar 1 |
53 | * (reserved) 11 | 53 | * night_mode 1 |
54 | * (reserved) 10 | ||
54 | * font name MAX_PATH | 55 | * font name MAX_PATH |
55 | */ | 56 | */ |
56 | 57 | ||
@@ -58,7 +59,7 @@ | |||
58 | #define TV_GLOBAL_SETTINGS_FILE VIEWERS_DATA_DIR "/tv_global.dat" | 59 | #define TV_GLOBAL_SETTINGS_FILE VIEWERS_DATA_DIR "/tv_global.dat" |
59 | 60 | ||
60 | #define TV_GLOBAL_SETTINGS_HEADER "\x54\x56\x47\x53" /* "TVGS" */ | 61 | #define TV_GLOBAL_SETTINGS_HEADER "\x54\x56\x47\x53" /* "TVGS" */ |
61 | #define TV_GLOBAL_SETTINGS_VERSION 0x38 | 62 | #define TV_GLOBAL_SETTINGS_VERSION 0x39 |
62 | #define TV_GLOBAL_SETTINGS_HEADER_SIZE 5 | 63 | #define TV_GLOBAL_SETTINGS_HEADER_SIZE 5 |
63 | #define TV_GLOBAL_SETTINGS_FIRST_VERSION 0x31 | 64 | #define TV_GLOBAL_SETTINGS_FIRST_VERSION 0x31 |
64 | 65 | ||
@@ -93,7 +94,8 @@ | |||
93 | * narrow_mode 1 | 94 | * narrow_mode 1 |
94 | * indent_spaces 1 | 95 | * indent_spaces 1 |
95 | * statusbar 1 | 96 | * statusbar 1 |
96 | * (reserved) 11 | 97 | * night_mode 1 |
98 | * (reserved) 10 | ||
97 | * font name MAX_PATH | 99 | * font name MAX_PATH |
98 | * bookmark count 1 | 100 | * bookmark count 1 |
99 | * [1st bookmark] | 101 | * [1st bookmark] |
@@ -115,7 +117,7 @@ | |||
115 | #define TV_SETTINGS_TMP_FILE VIEWERS_DATA_DIR "/tv_file.tmp" | 117 | #define TV_SETTINGS_TMP_FILE VIEWERS_DATA_DIR "/tv_file.tmp" |
116 | 118 | ||
117 | #define TV_SETTINGS_HEADER "\x54\x56\x53" /* "TVS" */ | 119 | #define TV_SETTINGS_HEADER "\x54\x56\x53" /* "TVS" */ |
118 | #define TV_SETTINGS_VERSION 0x39 | 120 | #define TV_SETTINGS_VERSION 0x3A |
119 | #define TV_SETTINGS_HEADER_SIZE 4 | 121 | #define TV_SETTINGS_HEADER_SIZE 4 |
120 | #define TV_SETTINGS_FIRST_VERSION 0x32 | 122 | #define TV_SETTINGS_FIRST_VERSION 0x32 |
121 | 123 | ||
@@ -214,6 +216,8 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre | |||
214 | 216 | ||
215 | if (version > 6) | 217 | if (version > 6) |
216 | prefs->statusbar = (*p++ != 0); | 218 | prefs->statusbar = (*p++ != 0); |
219 | if (version > 6) | ||
220 | prefs->night_mode = (*p++ != 0); | ||
217 | 221 | ||
218 | #ifdef HAVE_LCD_BITMAP | 222 | #ifdef HAVE_LCD_BITMAP |
219 | rb->strlcpy(prefs->font_name, buf + read_size - MAX_PATH, MAX_PATH); | 223 | rb->strlcpy(prefs->font_name, buf + read_size - MAX_PATH, MAX_PATH); |
@@ -247,6 +251,7 @@ static void tv_serialize_preferences(unsigned char *buf, const struct tv_prefere | |||
247 | *p++ = prefs->narrow_mode; | 251 | *p++ = prefs->narrow_mode; |
248 | *p++ = prefs->indent_spaces; | 252 | *p++ = prefs->indent_spaces; |
249 | *p++ = prefs->statusbar; | 253 | *p++ = prefs->statusbar; |
254 | *p++ = prefs->night_mode; | ||
250 | 255 | ||
251 | #ifdef HAVE_LCD_BITMAP | 256 | #ifdef HAVE_LCD_BITMAP |
252 | rb->strlcpy(buf + 28, prefs->font_name, MAX_PATH); | 257 | rb->strlcpy(buf + 28, prefs->font_name, MAX_PATH); |