diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2010-06-21 12:43:08 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2010-06-21 12:43:08 +0000 |
commit | adc9cb1adc667997808b0abdbf8749fcbdbbf461 (patch) | |
tree | 7ef600a4946b6e67aa6bc9db29acebd9658341bd /apps | |
parent | e481e887db23d634c8c2dfcec1594eec0646a63d (diff) |
Allow the progressbar and volume touch regions to be reverse by prepending them with ! (so full is the left/top instead of right/bottom)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27013 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 7 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_touchsupport.c | 2 | ||||
-rw-r--r-- | apps/gui/skin_engine/wps_internals.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index bbcb3fe8f7..b9254d9dbd 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -1578,12 +1578,19 @@ static int parse_touchregion(const char *wps_bufptr, region->height = h; region->wvp = curr_vp; region->armed = false; + region->reverse_bar = false; end = strchr(action, ')'); if (!end || (size_t)(end-action+1) > sizeof temp) return WPS_ERROR_INVALID_PARAM; strlcpy(temp, action, end-action+1); action = temp; + + if (*action == '!') + { + region->reverse_bar = true; + action++; + } if(!strcmp(pb_string, action)) region->type = WPS_TOUCHREGION_SCROLLBAR; diff --git a/apps/gui/skin_engine/skin_touchsupport.c b/apps/gui/skin_engine/skin_touchsupport.c index 9c0cda779a..09fbd86acd 100644 --- a/apps/gui/skin_engine/skin_touchsupport.c +++ b/apps/gui/skin_engine/skin_touchsupport.c @@ -95,6 +95,8 @@ int skin_get_touchaction(struct wps_data *data, int* edge_offset) *edge_offset = vx*100/r->width; else *edge_offset = vy*100/r->height; + if (r->reverse_bar) + *edge_offset = 100 - *edge_offset; } returncode = r->type; break; diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h index 5501dd580b..4ef860a8b7 100644 --- a/apps/gui/skin_engine/wps_internals.h +++ b/apps/gui/skin_engine/wps_internals.h @@ -228,6 +228,7 @@ struct touchregion { WPS_TOUCHREGION_SCROLLBAR, WPS_TOUCHREGION_VOLUME } type; /* type of touch region */ + bool reverse_bar; /* if true 0% is the left or top */ bool repeat; /* requires the area be held for the action */ int action; /* action this button will return */ bool armed; /* A region is armed on press. Only armed regions are triggered |