summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/splash.c20
-rw-r--r--apps/gui/viewport.c13
2 files changed, 10 insertions, 23 deletions
diff --git a/apps/gui/splash.c b/apps/gui/splash.c
index 10a6885f92..aaa259c09d 100644
--- a/apps/gui/splash.c
+++ b/apps/gui/splash.c
@@ -48,7 +48,6 @@
48static void splash_internal(struct screen * screen, const char *fmt, va_list ap) 48static void splash_internal(struct screen * screen, const char *fmt, va_list ap)
49{ 49{
50 char splash_buf[MAXBUFFER]; 50 char splash_buf[MAXBUFFER];
51 short widths[MAXLINES];
52 char *lines[MAXLINES]; 51 char *lines[MAXLINES];
53 52
54 char *next; 53 char *next;
@@ -95,7 +94,6 @@ static void splash_internal(struct screen * screen, const char *fmt, va_list ap)
95 if (x + (next - lastbreak) * space_w + w 94 if (x + (next - lastbreak) * space_w + w
96 > screen->lcdwidth - RECT_SPACING*2) 95 > screen->lcdwidth - RECT_SPACING*2)
97 { /* too wide, wrap */ 96 { /* too wide, wrap */
98 widths[line] = x;
99#ifdef HAVE_LCD_BITMAP 97#ifdef HAVE_LCD_BITMAP
100 if (x > maxw) 98 if (x > maxw)
101 maxw = x; 99 maxw = x;
@@ -118,7 +116,6 @@ static void splash_internal(struct screen * screen, const char *fmt, va_list ap)
118 next = strtok_r(NULL, " ", &store); 116 next = strtok_r(NULL, " ", &store);
119 if (!next) 117 if (!next)
120 { /* no more words */ 118 { /* no more words */
121 widths[line] = x;
122#ifdef HAVE_LCD_BITMAP 119#ifdef HAVE_LCD_BITMAP
123 if (x > maxw) 120 if (x > maxw)
124 maxw = x; 121 maxw = x;
@@ -149,7 +146,8 @@ static void splash_internal(struct screen * screen, const char *fmt, va_list ap)
149 vp.width = screen->lcdwidth; 146 vp.width = screen->lcdwidth;
150 if (vp.height > screen->lcdheight) 147 if (vp.height > screen->lcdheight)
151 vp.height = screen->lcdheight; 148 vp.height = screen->lcdheight;
152 149
150 vp.flags |= VP_FLAG_CENTER_ALIGN;
153#if LCD_DEPTH > 1 151#if LCD_DEPTH > 1
154 if (screen->depth > 1) 152 if (screen->depth > 1)
155 { 153 {
@@ -179,7 +177,6 @@ static void splash_internal(struct screen * screen, const char *fmt, va_list ap)
179 y = RECT_SPACING; 177 y = RECT_SPACING;
180#else /* HAVE_LCD_CHARCELLS */ 178#else /* HAVE_LCD_CHARCELLS */
181 y = 0; /* vertical centering on 2 lines would be silly */ 179 y = 0; /* vertical centering on 2 lines would be silly */
182 x = 0;
183 screen->clear_display(); 180 screen->clear_display();
184#endif 181#endif
185 182
@@ -187,19 +184,10 @@ static void splash_internal(struct screen * screen, const char *fmt, va_list ap)
187 for (i = 0; i <= line; i++, y+=h) 184 for (i = 0; i <= line; i++, y+=h)
188 { 185 {
189#ifdef HAVE_LCD_BITMAP 186#ifdef HAVE_LCD_BITMAP
190#define W (vp.width - RECT_SPACING*2) 187 screen->putsxy(0, y, lines[i]);
191#else
192#define W (screens->lcdwidth)
193#endif
194 x = (W - widths[i])/2;
195 if (x < 0)
196 x = 0;
197#ifdef HAVE_LCD_BITMAP
198 screen->putsxy(x+RECT_SPACING, y, lines[i]);
199#else 188#else
200 screen->puts(x, y, lines[i]); 189 screen->puts(0, y, lines[i]);
201#endif 190#endif
202#undef W
203 } 191 }
204 screen->update_viewport(); 192 screen->update_viewport();
205end: 193end:
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 6f9abb74a0..d5f45b3382 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -62,7 +62,7 @@
62static int statusbar_enabled = 0; 62static int statusbar_enabled = 0;
63 63
64#ifdef HAVE_LCD_BITMAP 64#ifdef HAVE_LCD_BITMAP
65static void viewport_rtl_handler(struct viewport *vp); 65static void set_default_align_flags(struct viewport *vp);
66 66
67static struct { 67static struct {
68 struct viewport* vp; 68 struct viewport* vp;
@@ -109,7 +109,7 @@ void viewport_set_fullscreen(struct viewport *vp,
109 vp->width = screens[screen].lcdwidth; 109 vp->width = screens[screen].lcdwidth;
110 110
111#ifdef HAVE_LCD_BITMAP 111#ifdef HAVE_LCD_BITMAP
112 viewport_rtl_handler(vp); 112 set_default_align_flags(vp);
113 vp->drawmode = DRMODE_SOLID; 113 vp->drawmode = DRMODE_SOLID;
114 vp->font = FONT_UI; /* default to UI to discourage SYSFONT use */ 114 vp->font = FONT_UI; /* default to UI to discourage SYSFONT use */
115 115
@@ -245,7 +245,7 @@ void viewportmanager_theme_changed(const int which)
245 else if (which & THEME_LANGUAGE) 245 else if (which & THEME_LANGUAGE)
246 { /* THEME_UI_VIEWPORT handles rtl already */ 246 { /* THEME_UI_VIEWPORT handles rtl already */
247 FOR_NB_SCREENS(i) 247 FOR_NB_SCREENS(i)
248 viewport_rtl_handler(&custom_vp[i]); 248 set_default_align_flags(&custom_vp[i]);
249 } 249 }
250 if (which & THEME_STATUSBAR) 250 if (which & THEME_STATUSBAR)
251 { 251 {
@@ -364,14 +364,13 @@ bool viewport_point_within_vp(const struct viewport *vp,
364 364
365#ifdef HAVE_LCD_BITMAP 365#ifdef HAVE_LCD_BITMAP
366 366
367static void viewport_rtl_handler(struct viewport *vp) 367static void set_default_align_flags(struct viewport *vp)
368{ 368{
369 vp->flags &= ~VP_FLAG_ALIGNMENT_MASK;
369#ifndef __PCTOOL__ 370#ifndef __PCTOOL__
370 if (UNLIKELY(lang_is_rtl())) 371 if (UNLIKELY(lang_is_rtl()))
371 vp->flags |= VP_FLAG_IS_RTL; 372 vp->flags |= VP_FLAG_IS_RTL;
372 else
373#endif 373#endif
374 vp->flags &= ~VP_FLAG_IS_RTL;
375} 374}
376 375
377const char* viewport_parse_viewport(struct viewport *vp, 376const char* viewport_parse_viewport(struct viewport *vp,
@@ -456,7 +455,7 @@ const char* viewport_parse_viewport(struct viewport *vp,
456 455
457 /* Set the defaults for fields not user-specified */ 456 /* Set the defaults for fields not user-specified */
458 vp->drawmode = DRMODE_SOLID; 457 vp->drawmode = DRMODE_SOLID;
459 viewport_rtl_handler(vp); 458 set_default_align_flags(vp);
460 459
461 return ptr; 460 return ptr;
462} 461}