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:
parent
e481e887db
commit
adc9cb1adc
3 changed files with 10 additions and 0 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue