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
This commit is contained in:
Jonathan Gordon 2010-06-21 12:43:08 +00:00
parent e481e887db
commit adc9cb1adc
3 changed files with 10 additions and 0 deletions

View file

@ -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;

View file

@ -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;

View file

@ -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