summaryrefslogtreecommitdiff
path: root/apps/gui/viewport.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/viewport.c')
-rw-r--r--apps/gui/viewport.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 52704d9f69..fbbd4eab5a 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -37,12 +37,24 @@
37 37
38 38
39 39
40#ifdef HAVE_LCD_COLOR
40#define LINE_SEL_FROM_SETTINGS(vp) \ 41#define LINE_SEL_FROM_SETTINGS(vp) \
41 do { \ 42 do { \
42 vp->lss_pattern = global_settings.lss_color; \ 43 vp->lss_pattern = global_settings.lss_color; \
43 vp->lse_pattern = global_settings.lse_color; \ 44 vp->lse_pattern = global_settings.lse_color; \
44 vp->lst_pattern = global_settings.lst_color; \ 45 vp->lst_pattern = global_settings.lst_color; \
45 } while (0) 46 } while (0)
47#else
48#define LINE_SEL_FROM_SETTINGS(vp)
49#endif
50
51#ifdef HAVE_LCD_COLOR
52#define FG_FALLBACK global_settings.fg_color
53#define BG_FALLBACK global_settings.bg_color
54#else
55#define FG_FALLBACK LCD_DEFAULT_FG
56#define BG_FALLBACK LCD_DEFAULT_FG
57#endif
46 58
47static int statusbar_enabled = 0; 59static int statusbar_enabled = 0;
48 60
@@ -89,20 +101,17 @@ void viewport_set_defaults(struct viewport *vp, enum screen_type screen)
89#endif 101#endif
90 vp->height = screens[screen].lcdheight - (showing_bars(screen)?STATUSBAR_HEIGHT:0); 102 vp->height = screens[screen].lcdheight - (showing_bars(screen)?STATUSBAR_HEIGHT:0);
91 103
104#if LCD_DEPTH > 1
92#ifdef HAVE_REMOTE_LCD 105#ifdef HAVE_REMOTE_LCD
93 /* We only need this test if there is a remote LCD */ 106 /* We only need this test if there is a remote LCD */
94 if (screen == SCREEN_MAIN) 107 if (screen == SCREEN_MAIN)
95#endif 108#endif
96 { 109 {
97#ifdef HAVE_LCD_COLOR 110 vp->fg_pattern = FG_FALLBACK;
98 vp->fg_pattern = global_settings.fg_color; 111 vp->bg_pattern = BG_FALLBACK;
99 vp->bg_pattern = global_settings.bg_color;
100 LINE_SEL_FROM_SETTINGS(vp); 112 LINE_SEL_FROM_SETTINGS(vp);
101#elif LCD_DEPTH > 1
102 vp->fg_pattern = LCD_DEFAULT_FG;
103 vp->bg_pattern = LCD_DEFAULT_BG;
104#endif
105 } 113 }
114#endif
106 115
107#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 116#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
108 if (screen == SCREEN_REMOTE) 117 if (screen == SCREEN_REMOTE)
@@ -159,6 +168,7 @@ void viewportmanager_statusbar_changed(void* data)
159 viewportmanager_set_statusbar(statusbar_enabled); 168 viewportmanager_set_statusbar(statusbar_enabled);
160} 169}
161 170
171#ifdef HAVE_LCD_BITMAP
162const char* viewport_parse_viewport(struct viewport *vp, 172const char* viewport_parse_viewport(struct viewport *vp,
163 enum screen_type screen, 173 enum screen_type screen,
164 const char *bufptr, 174 const char *bufptr,
@@ -219,15 +229,15 @@ const char* viewport_parse_viewport(struct viewport *vp,
219 if (!LIST_VALUE_PARSED(set, PL_HEIGHT)) 229 if (!LIST_VALUE_PARSED(set, PL_HEIGHT))
220 vp->height = screens[screen].lcdheight - vp->y; 230 vp->height = screens[screen].lcdheight - vp->y;
221 231
222#if (LCD_DEPTH > 1) 232#if LCD_DEPTH > 1 || LCD_REMOTE_DEPTH > 1
223 if (!LIST_VALUE_PARSED(set, PL_FG)) 233 if (!LIST_VALUE_PARSED(set, PL_FG))
224 vp->fg_pattern = global_settings.fg_color; 234 vp->fg_pattern = FG_FALLBACK;
225 if (!LIST_VALUE_PARSED(set, PL_BG)) 235 if (!LIST_VALUE_PARSED(set, PL_BG))
226 vp->bg_pattern = global_settings.bg_color; 236 vp->bg_pattern = BG_FALLBACK;
227#endif 237#endif /* LCD_DEPTH > 1 || LCD_REMOTE_DEPTH > 1 */
228#ifdef HAVE_LCD_COLOR 238
229 LINE_SEL_FROM_SETTINGS(vp); 239 LINE_SEL_FROM_SETTINGS(vp);
230#endif 240
231 /* Validate the viewport dimensions - we know that the numbers are 241 /* Validate the viewport dimensions - we know that the numbers are
232 non-negative integers, ignore bars and assume the viewport takes them 242 non-negative integers, ignore bars and assume the viewport takes them
233 * into account */ 243 * into account */
@@ -249,3 +259,5 @@ const char* viewport_parse_viewport(struct viewport *vp,
249 259
250 return ptr; 260 return ptr;
251} 261}
262
263#endif /* HAVE_LCD_BITMAP */