From e627e3543952975a08f184048e5fb458c5b31dd3 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Fri, 13 Oct 2006 11:53:57 +0000 Subject: More visual annoyance fixes. Backdrops no longer show though on centered splash screens. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11213 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/splash.c | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'apps/gui/splash.c') diff --git a/apps/gui/splash.c b/apps/gui/splash.c index 0995968415..1f04b89fc0 100644 --- a/apps/gui/splash.c +++ b/apps/gui/splash.c @@ -39,7 +39,7 @@ #endif -static void splash(struct screen * screen, bool center, +static void splash(struct screen * screen, bool center, const char *fmt, va_list ap) { char splash_buf[MAXBUFFER]; @@ -56,7 +56,6 @@ static void splash(struct screen * screen, bool center, #ifdef HAVE_LCD_BITMAP int maxw = 0; #if LCD_DEPTH > 1 - unsigned prevbg = 0; unsigned prevfg = 0; #endif @@ -64,7 +63,7 @@ static void splash(struct screen * screen, bool center, #else /* HAVE_LCD_CHARCELLS */ space_w = h = 1; - screen->double_height (false); + screen->double_height (false); #endif y = h; @@ -76,7 +75,7 @@ static void splash(struct screen * screen, bool center, next = strtok_r(splash_buf, " ", &store); if (!next) return; /* nothing to display */ - + lines[0] = next; while (true) { @@ -132,18 +131,27 @@ static void splash(struct screen * screen, bool center, { y = (screen->height - y) / 2; /* height => y start position */ x = (screen->width - maxw) / 2 - 2; + #if LCD_DEPTH > 1 if (screen->depth > 1) { - prevbg = screen->get_background(); prevfg = screen->get_foreground(); - screen->set_background(LCD_LIGHTGRAY); - screen->set_foreground(LCD_BLACK); + screen->set_drawmode(DRMODE_FG); + screen->set_foreground(LCD_LIGHTGRAY); } + else #endif - screen->set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + screen->set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + screen->fillrect(x, y-2, maxw+4, screen->height-y*2+4); - screen->set_drawmode(DRMODE_SOLID); + +#if LCD_DEPTH > 1 + if (screen->depth > 1) + screen->set_foreground(LCD_BLACK); + else +#endif + screen->set_drawmode(DRMODE_SOLID); + screen->drawrect(x, y-2, maxw+4, screen->height-y*2+4); } else @@ -174,10 +182,10 @@ static void splash(struct screen * screen, bool center, } #if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH > 1) - if (center && (screen->depth > 1)) + if (center && screen->depth > 1) { - screen->set_background(prevbg); screen->set_foreground(prevfg); + screen->set_drawmode(DRMODE_SOLID); } #endif #if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) -- cgit v1.2.3