summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/text_viewer/tv_action.c4
-rw-r--r--apps/plugins/text_viewer/tv_display.c11
-rw-r--r--apps/plugins/text_viewer/tv_menu.c56
-rw-r--r--apps/plugins/text_viewer/tv_preferences.c16
-rw-r--r--apps/plugins/text_viewer/tv_preferences.h35
-rw-r--r--apps/plugins/text_viewer/tv_settings.c26
6 files changed, 41 insertions, 107 deletions
diff --git a/apps/plugins/text_viewer/tv_action.c b/apps/plugins/text_viewer/tv_action.c
index 5226d90049..b8542daafe 100644
--- a/apps/plugins/text_viewer/tv_action.c
+++ b/apps/plugins/text_viewer/tv_action.c
@@ -84,7 +84,7 @@ void tv_scroll_up(unsigned mode)
84 { 84 {
85 offset_page--; 85 offset_page--;
86#ifdef HAVE_LCD_BITMAP 86#ifdef HAVE_LCD_BITMAP
87 offset_line = (preferences->page_mode == PM_OVERLAP)? 1:0; 87 offset_line = (preferences->overlap_page_mode)? 1:0;
88#endif 88#endif
89 } 89 }
90 tv_move_screen(offset_page, offset_line, SEEK_CUR); 90 tv_move_screen(offset_page, offset_line, SEEK_CUR);
@@ -100,7 +100,7 @@ void tv_scroll_down(unsigned mode)
100 { 100 {
101 offset_page++; 101 offset_page++;
102#ifdef HAVE_LCD_BITMAP 102#ifdef HAVE_LCD_BITMAP
103 offset_line = (preferences->page_mode == PM_OVERLAP)? -1:0; 103 offset_line = (preferences->overlap_page_mode)? -1:0;
104#endif 104#endif
105 } 105 }
106 tv_move_screen(offset_page, offset_line, SEEK_CUR); 106 tv_move_screen(offset_page, offset_line, SEEK_CUR);
diff --git a/apps/plugins/text_viewer/tv_display.c b/apps/plugins/text_viewer/tv_display.c
index a4b0b22273..7c6fdcb760 100644
--- a/apps/plugins/text_viewer/tv_display.c
+++ b/apps/plugins/text_viewer/tv_display.c
@@ -114,18 +114,15 @@ static int totalsize;
114 114
115static void tv_show_header(void) 115static void tv_show_header(void)
116{ 116{
117 unsigned header_mode = header_mode; 117 if (preferences->header_mode)
118
119 if (preferences->header_mode == HD_PATH)
120 display->putsxy(header.x, header.y, preferences->file_name); 118 display->putsxy(header.x, header.y, preferences->file_name);
121} 119}
122 120
123static void tv_show_footer(const struct tv_screen_pos *pos) 121static void tv_show_footer(const struct tv_screen_pos *pos)
124{ 122{
125 unsigned char buf[12]; 123 unsigned char buf[12];
126 unsigned footer_mode = preferences->footer_mode;
127 124
128 if (footer_mode == FT_PAGE) 125 if (preferences->footer_mode)
129 { 126 {
130 if (pos->line == 0) 127 if (pos->line == 0)
131 rb->snprintf(buf, sizeof(buf), "%d", pos->page + 1); 128 rb->snprintf(buf, sizeof(buf), "%d", pos->page + 1);
@@ -262,11 +259,11 @@ void tv_set_layout(bool show_scrollbar)
262 header.x = 0; 259 header.x = 0;
263 header.y = 1; 260 header.y = 1;
264 header.w = vp_info.width; 261 header.w = vp_info.width;
265 header.h = (preferences->header_mode == HD_PATH)? row_height + 1 : 0; 262 header.h = (preferences->header_mode)? row_height + 1 : 0;
266 263
267 footer.x = 0; 264 footer.x = 0;
268 footer.w = vp_info.width; 265 footer.w = vp_info.width;
269 footer.h = (preferences->footer_mode == FT_PAGE)? row_height + 1 : 0; 266 footer.h = (preferences->footer_mode)? row_height + 1 : 0;
270 footer.y = vp_info.height - 1 - footer.h; 267 footer.y = vp_info.height - 1 - footer.h;
271 268
272 drawarea.x = scrollbar_width; 269 drawarea.x = scrollbar_width;
diff --git a/apps/plugins/text_viewer/tv_menu.c b/apps/plugins/text_viewer/tv_menu.c
index 7e706eb06a..1d1e07f3e8 100644
--- a/apps/plugins/text_viewer/tv_menu.c
+++ b/apps/plugins/text_viewer/tv_menu.c
@@ -37,13 +37,7 @@ static struct tv_preferences new_prefs;
37#ifdef HAVE_LCD_BITMAP 37#ifdef HAVE_LCD_BITMAP
38static bool tv_horizontal_scrollbar_setting(void) 38static bool tv_horizontal_scrollbar_setting(void)
39{ 39{
40 static const struct opt_items names[] = { 40 return rb->set_bool("Horizontal Scrollbar", &new_prefs.horizontal_scrollbar);
41 {"No", -1},
42 {"Yes", -1},
43 };
44
45 return rb->set_option("Horizontal Scrollbar", &new_prefs.horizontal_scrollbar, INT,
46 names, 2, NULL);
47} 41}
48#endif 42#endif
49 43
@@ -79,13 +73,7 @@ MAKE_MENU(horizontal_scroll_menu, "Horizontal", NULL, Icon_NOICON,
79#ifdef HAVE_LCD_BITMAP 73#ifdef HAVE_LCD_BITMAP
80static bool tv_vertical_scrollbar_setting(void) 74static bool tv_vertical_scrollbar_setting(void)
81{ 75{
82 static const struct opt_items names[] = { 76 return rb->set_bool("Vertical Scrollbar", &new_prefs.vertical_scrollbar);
83 {"No", -1},
84 {"Yes", -1},
85 };
86
87 return rb->set_option("Vertical Scrollbar", &new_prefs.vertical_scrollbar, INT,
88 names, 2, NULL);
89} 77}
90#endif 78#endif
91 79
@@ -100,15 +88,9 @@ static bool tv_vertical_scroll_mode_setting(void)
100 names, 2, NULL); 88 names, 2, NULL);
101} 89}
102 90
103static bool tv_page_mode_setting(void) 91static bool tv_overlap_page_mode_setting(void)
104{ 92{
105 static const struct opt_items names[] = { 93 return rb->set_bool("Overlap Pages", &new_prefs.overlap_page_mode);
106 {"No", -1},
107 {"Yes", -1},
108 };
109
110 return rb->set_option("Overlap Pages", &new_prefs.page_mode, INT,
111 names, 2, NULL);
112} 94}
113 95
114static bool tv_autoscroll_speed_setting(void) 96static bool tv_autoscroll_speed_setting(void)
@@ -135,7 +117,7 @@ MENUITEM_FUNCTION(vertical_scrollbar_item, 0, "Scrollbar",
135#endif 117#endif
136MENUITEM_FUNCTION(vertical_scroll_mode_item, 0, "Scroll Mode", 118MENUITEM_FUNCTION(vertical_scroll_mode_item, 0, "Scroll Mode",
137 tv_vertical_scroll_mode_setting, NULL, NULL, Icon_NOICON); 119 tv_vertical_scroll_mode_setting, NULL, NULL, Icon_NOICON);
138MENUITEM_FUNCTION(page_mode_item, 0, "Overlap Pages", tv_page_mode_setting, 120MENUITEM_FUNCTION(overlap_page_mode_item, 0, "Overlap Pages", tv_overlap_page_mode_setting,
139 NULL, NULL, Icon_NOICON); 121 NULL, NULL, Icon_NOICON);
140MENUITEM_FUNCTION(autoscroll_speed_item, 0, "Auto-Scroll Speed", 122MENUITEM_FUNCTION(autoscroll_speed_item, 0, "Auto-Scroll Speed",
141 tv_autoscroll_speed_setting, NULL, NULL, Icon_NOICON); 123 tv_autoscroll_speed_setting, NULL, NULL, Icon_NOICON);
@@ -146,7 +128,7 @@ MAKE_MENU(vertical_scroll_menu, "Vertical", NULL, Icon_NOICON,
146#ifdef HAVE_LCD_BITMAP 128#ifdef HAVE_LCD_BITMAP
147 &vertical_scrollbar_item, 129 &vertical_scrollbar_item,
148#endif 130#endif
149 &vertical_scroll_mode_item, &page_mode_item, &autoscroll_speed_item, 131 &vertical_scroll_mode_item, &overlap_page_mode_item, &autoscroll_speed_item,
150 &narrow_mode_item); 132 &narrow_mode_item);
151 133
152/* */ 134/* */
@@ -219,37 +201,17 @@ static bool tv_alignment_setting(void)
219#ifdef HAVE_LCD_BITMAP 201#ifdef HAVE_LCD_BITMAP
220static bool tv_header_setting(void) 202static bool tv_header_setting(void)
221{ 203{
222 static const struct opt_items names[4] = 204 return rb->set_bool("Show Header", &new_prefs.header_mode);
223 {
224 {"None", -1},
225 {"File path", -1},
226 };
227
228 return rb->set_option("Show Header", &new_prefs.header_mode, INT,
229 names, 2, NULL);
230} 205}
231 206
232static bool tv_footer_setting(void) 207static bool tv_footer_setting(void)
233{ 208{
234 static const struct opt_items names[4] = 209 return rb->set_bool("Show Footer", &new_prefs.footer_mode);
235 {
236 {"None", -1},
237 {"Page Num", -1},
238 };
239
240 return rb->set_option("Show Footer", &new_prefs.footer_mode, INT,
241 names, 2, NULL);
242} 210}
243 211
244static bool tv_statusbar_setting(void) 212static bool tv_statusbar_setting(void)
245{ 213{
246 static const struct opt_items names[] = { 214 return rb->set_bool("Show Statusbar", &new_prefs.statusbar);
247 {"No", -1},
248 {"Yes", -1},
249 };
250
251 return rb->set_option("Show Statusbar", &new_prefs.statusbar, BOOL,
252 names, 2, NULL);
253} 215}
254 216
255static bool tv_font_setting(void) 217static bool tv_font_setting(void)
diff --git a/apps/plugins/text_viewer/tv_preferences.c b/apps/plugins/text_viewer/tv_preferences.c
index 7d4fd3c2e3..5e6677ea58 100644
--- a/apps/plugins/text_viewer/tv_preferences.c
+++ b/apps/plugins/text_viewer/tv_preferences.c
@@ -43,7 +43,7 @@ static bool tv_notify_change_preferences(const struct tv_preferences *oldp)
43 * - alignment 43 * - alignment
44 * - horizontal_scroll_mode 44 * - horizontal_scroll_mode
45 * - vertical_scroll_mode 45 * - vertical_scroll_mode
46 * - page_mode 46 * - overlap_page_mode
47 * - font 47 * - font
48 * - autoscroll_speed 48 * - autoscroll_speed
49 * - narrow_mode 49 * - narrow_mode
@@ -99,18 +99,18 @@ void tv_set_default_preferences(struct tv_preferences *p)
99 p->alignment = AL_LEFT; 99 p->alignment = AL_LEFT;
100 p->horizontal_scroll_mode = HS_SCREEN; 100 p->horizontal_scroll_mode = HS_SCREEN;
101 p->vertical_scroll_mode = VS_PAGE; 101 p->vertical_scroll_mode = VS_PAGE;
102 p->page_mode = PM_NO_OVERLAP; 102 p->overlap_page_mode = false;
103 p->horizontal_scrollbar = SB_OFF; 103 p->horizontal_scrollbar = false;
104 p->vertical_scrollbar = SB_OFF; 104 p->vertical_scrollbar = false;
105#ifdef HAVE_LCD_BITMAP 105#ifdef HAVE_LCD_BITMAP
106 p->header_mode = HD_PATH; 106 p->header_mode = true;
107 p->footer_mode = FT_PAGE; 107 p->footer_mode = true;
108 p->statusbar = true; 108 p->statusbar = true;
109 rb->strlcpy(p->font_name, rb->global_settings->font_file, MAX_PATH); 109 rb->strlcpy(p->font_name, rb->global_settings->font_file, MAX_PATH);
110 p->font = rb->font_get(FONT_UI); 110 p->font = rb->font_get(FONT_UI);
111#else 111#else
112 p->header_mode = HD_NONE; 112 p->header_mode = false;
113 p->footer_mode = FT_NONE; 113 p->footer_mode = false;
114 p->statusbar = false; 114 p->statusbar = false;
115#endif 115#endif
116 p->autoscroll_speed = 1; 116 p->autoscroll_speed = 1;
diff --git a/apps/plugins/text_viewer/tv_preferences.h b/apps/plugins/text_viewer/tv_preferences.h
index 42d6fb4887..bc871a7255 100644
--- a/apps/plugins/text_viewer/tv_preferences.h
+++ b/apps/plugins/text_viewer/tv_preferences.h
@@ -29,12 +29,6 @@ enum {
29 TV_CALLBACK_ERROR, 29 TV_CALLBACK_ERROR,
30}; 30};
31 31
32/* scrollbar_mode */
33enum {
34 SB_OFF = 0,
35 SB_ON,
36};
37
38/* word_mode */ 32/* word_mode */
39enum { 33enum {
40 WM_WRAP = 0, 34 WM_WRAP = 0,
@@ -55,25 +49,6 @@ enum {
55 AL_RIGHT, 49 AL_RIGHT,
56}; 50};
57 51
58/* page_mode */
59enum {
60 PM_NO_OVERLAP = 0,
61 PM_OVERLAP,
62};
63
64/* header_mode */
65enum {
66 HD_NONE = 0,
67 HD_PATH,
68};
69
70/* footer_mode */
71enum {
72
73 FT_NONE = 0,
74 FT_PAGE,
75};
76
77/* horizontal_scroll_mode */ 52/* horizontal_scroll_mode */
78enum { 53enum {
79 HS_SCREEN = 0, 54 HS_SCREEN = 0,
@@ -99,12 +74,12 @@ struct tv_preferences {
99 74
100 unsigned encoding; 75 unsigned encoding;
101 76
102 unsigned horizontal_scrollbar; 77 bool horizontal_scrollbar;
103 unsigned vertical_scrollbar; 78 bool vertical_scrollbar;
104 79
105 unsigned page_mode; 80 bool overlap_page_mode;
106 unsigned header_mode; 81 bool header_mode;
107 unsigned footer_mode; 82 bool footer_mode;
108 unsigned horizontal_scroll_mode; 83 unsigned horizontal_scroll_mode;
109 unsigned vertical_scroll_mode; 84 unsigned vertical_scroll_mode;
110 85
diff --git a/apps/plugins/text_viewer/tv_settings.c b/apps/plugins/text_viewer/tv_settings.c
index 45eac627b2..2419ae0705 100644
--- a/apps/plugins/text_viewer/tv_settings.c
+++ b/apps/plugins/text_viewer/tv_settings.c
@@ -40,7 +40,7 @@
40 * encoding 1 40 * encoding 1
41 * vertical_scrollbar 1 41 * vertical_scrollbar 1
42 * (unused) 1 (for compatibility) 42 * (unused) 1 (for compatibility)
43 * page_mode 1 43 * overlap_page_mode 1
44 * header_mode 1 44 * header_mode 1
45 * footer_mode 1 45 * footer_mode 1
46 * scroll_mode 1 46 * scroll_mode 1
@@ -83,7 +83,7 @@
83 * encoding 1 83 * encoding 1
84 * vertical_scrollbar 1 84 * vertical_scrollbar 1
85 * (unused) 1 (for compatibility) 85 * (unused) 1 (for compatibility)
86 * page_mode 1 86 * overlap_page_mode 1
87 * header_mode 1 87 * header_mode 1
88 * footer_mode 1 88 * footer_mode 1
89 * scroll_mode 1 89 * scroll_mode 1
@@ -153,45 +153,45 @@ static bool tv_read_preferences(int pfd, int version, struct tv_preferences *pre
153 prefs->alignment = AL_LEFT; 153 prefs->alignment = AL_LEFT;
154 154
155 prefs->encoding = *p++; 155 prefs->encoding = *p++;
156 prefs->vertical_scrollbar = *p++; 156 prefs->vertical_scrollbar = (*p++ != 0);
157 /* skip need_scrollbar */ 157 /* skip need_scrollbar */
158 p++; 158 p++;
159 prefs->page_mode = *p++; 159 prefs->overlap_page_mode = (*p++ != 0);
160 160
161 if (version < 7) 161 if (version < 7)
162 { 162 {
163 prefs->statusbar = false; 163 prefs->statusbar = false;
164 if (*p > 1) 164 if (*p > 1)
165 { 165 {
166 prefs->header_mode = (*p & 1); 166 prefs->header_mode = ((*p & 1) != 0);
167 prefs->statusbar = true; 167 prefs->statusbar = true;
168 } 168 }
169 else 169 else
170 prefs->header_mode = *p; 170 prefs->header_mode = (*p != 0);
171 171
172 if (*(++p) > 1) 172 if (*(++p) > 1)
173 { 173 {
174 prefs->footer_mode = (*p & 1); 174 prefs->footer_mode = ((*p & 1) != 0);
175 prefs->statusbar = true; 175 prefs->statusbar = true;
176 } 176 }
177 else 177 else
178 prefs->footer_mode = *p; 178 prefs->footer_mode = (*p != 0);
179 179
180 p++; 180 p++;
181 } 181 }
182 else 182 else
183 { 183 {
184 prefs->header_mode = *p++; 184 prefs->header_mode = (*p++ != 0);
185 prefs->footer_mode = *p++; 185 prefs->footer_mode = (*p++ != 0);
186 } 186 }
187 187
188 prefs->vertical_scroll_mode = *p++; 188 prefs->vertical_scroll_mode = *p++;
189 prefs->autoscroll_speed = *p++; 189 prefs->autoscroll_speed = *p++;
190 190
191 if (version > 2) 191 if (version > 2)
192 prefs->horizontal_scrollbar = *p; 192 prefs->horizontal_scrollbar = (*p != 0);
193 else 193 else
194 prefs->horizontal_scrollbar = SB_OFF; 194 prefs->horizontal_scrollbar = false;
195 195
196 if (version > 3) 196 if (version > 3)
197 prefs->horizontal_scroll_mode = *p++; 197 prefs->horizontal_scroll_mode = *p++;
@@ -233,7 +233,7 @@ static bool tv_write_preferences(int pfd, const struct tv_preferences *prefs)
233 *p++ = prefs->vertical_scrollbar; 233 *p++ = prefs->vertical_scrollbar;
234 /* skip need_scrollbar */ 234 /* skip need_scrollbar */
235 p++; 235 p++;
236 *p++ = prefs->page_mode; 236 *p++ = prefs->overlap_page_mode;
237 *p++ = prefs->header_mode; 237 *p++ = prefs->header_mode;
238 *p++ = prefs->footer_mode; 238 *p++ = prefs->footer_mode;
239 *p++ = prefs->vertical_scroll_mode; 239 *p++ = prefs->vertical_scroll_mode;