From af967d77d39307d7c9faacd360b117fdaa63f64a Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Wed, 26 Aug 2009 00:06:27 +0000 Subject: Fix skin engine calling wps code to draw the statusbars (add a pointer to viewportmanager-suitable statusbar values, which are the same for all screens), and re-arrange statusbar related code slightly. No functional change. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22514 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_display.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'apps/gui/skin_engine/skin_display.c') diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 85cc65d410..e674c9becf 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c @@ -129,6 +129,35 @@ bool skin_update(struct gui_wps *gwps, unsigned int update_type) return retval; } +void skin_statusbar_changed(struct gui_wps *skin) +{ + if (!skin) + return; + struct wps_data *data = skin->data; + const struct screen *display = skin->display; + + struct viewport *vp = &find_viewport(VP_DEFAULT_LABEL, data)->vp; + viewport_set_fullscreen(vp, display->screen_type); + + if (data->wps_sb_tag) + { /* fix up the default viewport */ + if (data->show_sb_on_wps) + { + bool bar_at_top = + statusbar_position(display->screen_type) != STATUSBAR_BOTTOM; + + vp->y = bar_at_top?STATUSBAR_HEIGHT:0; + vp->height = display->lcdheight - STATUSBAR_HEIGHT; + } + else + { + vp->y = 0; + vp->height = display->lcdheight; + } + } + + +} #ifdef HAVE_LCD_BITMAP @@ -1141,7 +1170,7 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) if (refresh_mode & WPS_REFRESH_STATUSBAR) { - gwps_draw_statusbars(); + viewportmanager_set_statusbar(*gwps->statusbars); } /* Restore the default viewport */ display->set_viewport(NULL); -- cgit v1.2.3