diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/wps_parser.c | 3 | ||||
-rw-r--r-- | apps/gui/viewport.c | 37 |
2 files changed, 19 insertions, 21 deletions
diff --git a/apps/gui/skin_engine/wps_parser.c b/apps/gui/skin_engine/wps_parser.c index 9671d7c4dc..4a41a26c7d 100644 --- a/apps/gui/skin_engine/wps_parser.c +++ b/apps/gui/skin_engine/wps_parser.c | |||
@@ -625,9 +625,6 @@ static int parse_viewport(const char *wps_bufptr, | |||
625 | struct viewport *vp = &wps_data->viewports[wps_data->num_viewports].vp; | 625 | struct viewport *vp = &wps_data->viewports[wps_data->num_viewports].vp; |
626 | /* format: %V|x|y|width|height|font|fg_pattern|bg_pattern| */ | 626 | /* format: %V|x|y|width|height|font|fg_pattern|bg_pattern| */ |
627 | 627 | ||
628 | /* Set the defaults for fields not user-specified */ | ||
629 | vp->drawmode = DRMODE_SOLID; | ||
630 | |||
631 | if (!(ptr = viewport_parse_viewport(vp, screen, ptr, '|'))) | 628 | if (!(ptr = viewport_parse_viewport(vp, screen, ptr, '|'))) |
632 | return WPS_ERROR_INVALID_PARAM; | 629 | return WPS_ERROR_INVALID_PARAM; |
633 | 630 | ||
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index a2c4351d03..2819d36625 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c | |||
@@ -168,6 +168,12 @@ void viewportmanager_statusbar_changed(void* data) | |||
168 | viewportmanager_set_statusbar(statusbar_enabled); | 168 | viewportmanager_set_statusbar(statusbar_enabled); |
169 | } | 169 | } |
170 | 170 | ||
171 | #ifdef HAVE_LCD_COLOR | ||
172 | #define ARG_STRING (depth == 2 ? "dddddgg":"dddddcc") | ||
173 | #else | ||
174 | #define ARG_STRING "dddddcc" | ||
175 | #endif | ||
176 | |||
171 | #ifdef HAVE_LCD_BITMAP | 177 | #ifdef HAVE_LCD_BITMAP |
172 | const char* viewport_parse_viewport(struct viewport *vp, | 178 | const char* viewport_parse_viewport(struct viewport *vp, |
173 | enum screen_type screen, | 179 | enum screen_type screen, |
@@ -191,31 +197,25 @@ const char* viewport_parse_viewport(struct viewport *vp, | |||
191 | 197 | ||
192 | /* Work out the depth of this display */ | 198 | /* Work out the depth of this display */ |
193 | depth = screens[screen].depth; | 199 | depth = screens[screen].depth; |
194 | #ifdef HAVE_LCD_COLOR | 200 | #if (LCD_DEPTH == 1) || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH == 1) |
195 | if (depth == 16) | 201 | if (depth == 1) |
196 | { | 202 | { |
197 | if (!(ptr = parse_list("dddddcc", &set, separator, ptr, &vp->x, &vp->y, &vp->width, | 203 | if (!(ptr = parse_list("ddddd", &set, separator, ptr, |
198 | &vp->height, &vp->font, &vp->fg_pattern,&vp->bg_pattern))) | 204 | &vp->x, &vp->y, &vp->width, &vp->height, &vp->font))) |
199 | return VP_ERROR; | ||
200 | } | ||
201 | else | ||
202 | #endif | ||
203 | #if (LCD_DEPTH == 2) || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH == 2) | ||
204 | if (depth == 2) { | ||
205 | if (!(ptr = parse_list("dddddgg", &set, separator, ptr, &vp->x, &vp->y, &vp->width, | ||
206 | &vp->height, &vp->font, &vp->fg_pattern, &vp->bg_pattern))) | ||
207 | return VP_ERROR; | 205 | return VP_ERROR; |
208 | } | 206 | } |
209 | else | 207 | else |
210 | #endif | 208 | #endif |
211 | #if (LCD_DEPTH == 1) || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH == 1) | 209 | #if (LCD_DEPTH > 1) || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1) |
212 | if (depth == 1) | 210 | if (depth >= 2) |
213 | { | 211 | { |
214 | if (!(ptr = parse_list("ddddd", &set, separator, ptr, &vp->x, &vp->y, &vp->width, | 212 | if (!(ptr = parse_list(ARG_STRING, &set, separator, ptr, |
215 | &vp->height, &vp->font))) | 213 | &vp->x, &vp->y, &vp->width, &vp->height, &vp->font, |
214 | &vp->fg_pattern,&vp->bg_pattern))) | ||
216 | return VP_ERROR; | 215 | return VP_ERROR; |
217 | } | 216 | } |
218 | else | 217 | else |
218 | #undef ARG_STRING | ||
219 | #endif | 219 | #endif |
220 | {} | 220 | {} |
221 | 221 | ||
@@ -254,7 +254,8 @@ const char* viewport_parse_viewport(struct viewport *vp, | |||
254 | || !LIST_VALUE_PARSED(set, PL_FONT) | 254 | || !LIST_VALUE_PARSED(set, PL_FONT) |
255 | ) | 255 | ) |
256 | vp->font = FONT_UI; | 256 | vp->font = FONT_UI; |
257 | 257 | ||
258 | /* Set the defaults for fields not user-specified */ | ||
258 | vp->drawmode = DRMODE_SOLID; | 259 | vp->drawmode = DRMODE_SOLID; |
259 | 260 | ||
260 | return ptr; | 261 | return ptr; |