diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2010-10-04 13:20:37 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2010-10-04 13:20:37 +0000 |
| commit | dd6b1dc5d247fdd8c7da50bf8de623a48aef529d (patch) | |
| tree | 09f154cbddc3930c777208a82938466d9d0a9950 /apps/gui | |
| parent | efbcece07b3a91f4b475559997f892e24751f0e6 (diff) | |
| download | rockbox-dd6b1dc5d247fdd8c7da50bf8de623a48aef529d.zip rockbox-dd6b1dc5d247fdd8c7da50bf8de623a48aef529d.tar.gz rockbox-dd6b1dc5d247fdd8c7da50bf8de623a48aef529d.tar.bz2 rockbox-dd6b1dc5d247fdd8c7da50bf8de623a48aef529d.tar.xz | |
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/gui')
| -rw-r--r-- | apps/gui/skin_engine/skin_display.c | 24 |
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 91e8bbf..a4588bb 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) { |