diff options
author | Thomas Martitz <kugel@rockbox.org> | 2009-08-26 00:06:27 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2009-08-26 00:06:27 +0000 |
commit | af967d77d39307d7c9faacd360b117fdaa63f64a (patch) | |
tree | 97f58bfa26f167b0a1e6b944fb6809b1cfe0cd07 /apps/gui/skin_engine/skin_display.c | |
parent | 51743419993ca23bb78d00b195eb2773743aed39 (diff) | |
download | rockbox-af967d77d39307d7c9faacd360b117fdaa63f64a.tar.gz rockbox-af967d77d39307d7c9faacd360b117fdaa63f64a.zip |
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
Diffstat (limited to 'apps/gui/skin_engine/skin_display.c')
-rw-r--r-- | apps/gui/skin_engine/skin_display.c | 31 |
1 files changed, 30 insertions, 1 deletions
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) | |||
129 | return retval; | 129 | return retval; |
130 | } | 130 | } |
131 | 131 | ||
132 | void skin_statusbar_changed(struct gui_wps *skin) | ||
133 | { | ||
134 | if (!skin) | ||
135 | return; | ||
136 | struct wps_data *data = skin->data; | ||
137 | const struct screen *display = skin->display; | ||
138 | |||
139 | struct viewport *vp = &find_viewport(VP_DEFAULT_LABEL, data)->vp; | ||
140 | viewport_set_fullscreen(vp, display->screen_type); | ||
141 | |||
142 | if (data->wps_sb_tag) | ||
143 | { /* fix up the default viewport */ | ||
144 | if (data->show_sb_on_wps) | ||
145 | { | ||
146 | bool bar_at_top = | ||
147 | statusbar_position(display->screen_type) != STATUSBAR_BOTTOM; | ||
148 | |||
149 | vp->y = bar_at_top?STATUSBAR_HEIGHT:0; | ||
150 | vp->height = display->lcdheight - STATUSBAR_HEIGHT; | ||
151 | } | ||
152 | else | ||
153 | { | ||
154 | vp->y = 0; | ||
155 | vp->height = display->lcdheight; | ||
156 | } | ||
157 | } | ||
158 | |||
159 | |||
160 | } | ||
132 | 161 | ||
133 | #ifdef HAVE_LCD_BITMAP | 162 | #ifdef HAVE_LCD_BITMAP |
134 | 163 | ||
@@ -1141,7 +1170,7 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1141 | 1170 | ||
1142 | if (refresh_mode & WPS_REFRESH_STATUSBAR) | 1171 | if (refresh_mode & WPS_REFRESH_STATUSBAR) |
1143 | { | 1172 | { |
1144 | gwps_draw_statusbars(); | 1173 | viewportmanager_set_statusbar(*gwps->statusbars); |
1145 | } | 1174 | } |
1146 | /* Restore the default viewport */ | 1175 | /* Restore the default viewport */ |
1147 | display->set_viewport(NULL); | 1176 | display->set_viewport(NULL); |