summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2010-10-04 13:20:37 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2010-10-04 13:20:37 +0000
commitdd6b1dc5d247fdd8c7da50bf8de623a48aef529d (patch)
tree09f154cbddc3930c777208a82938466d9d0a9950 /apps
parentefbcece07b3a91f4b475559997f892e24751f0e6 (diff)
downloadrockbox-dd6b1dc5d247fdd8c7da50bf8de623a48aef529d.tar.gz
rockbox-dd6b1dc5d247fdd8c7da50bf8de623a48aef529d.zip
Fix FS#11651 - slider wasnt being drawn correctly with inverted (and vertical) bars
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28207 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/skin_engine/skin_display.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c
index 91e8bbfafc..a4588bb861 100644
--- a/apps/gui/skin_engine/skin_display.c
+++ b/apps/gui/skin_engine/skin_display.c
@@ -181,7 +181,7 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
if (!pb->horizontal)
{
/* we want to fill upwards which is technically inverted. */
- flags = VERTICAL|INVERTFILL;
+ flags = INVERTFILL;
}
if (pb->invert_fill_direction)
@@ -209,15 +209,29 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
int height = pb->height;
struct gui_img *img = pb->slider;
- if (flags&VERTICAL)
+ if ((flags&HORIZONTAL) == 0)
{
- y += pb->height*end/length;
height = img->bm.height;
+ if (flags&INVERTFILL)
+ y += pb->height - pb->height*end/length;
+ else
+ y += pb->height*end/length;
+#if 0 /* maybe add this in later, make the slider bmp overlap abit */
+ if ((flags&INNER_NOFILL) == 0)
+ y -= img->bm.height/2;
+#endif
}
else
{
- x += pb->width*end/length;
- width = img->bm.width;
+ width = img->bm.width;
+ if (flags&INVERTFILL)
+ x += pb->width - pb->width*end/length;
+ else
+ x += pb->width*end/length;
+#if 0 /* maybe add this in later, make the slider bmp overlap abit */
+ if ((flags&INNER_NOFILL) == 0)
+ x -= img->bm.width/2;
+#endif
}
#if LCD_DEPTH > 1
if(img->bm.format == FORMAT_MONO) {