FS#10806 - Yes/No Screen for absolute touchsreen mode

Attached to Project: Rockbox
Opened by Carsten Schreiter (Kuma76) - Monday, 23 November 2009, 06:04 GMT
Last edited by Maurus Cuelenaere (mcuelenaere) - Friday, 05 November 2010, 12:09 GMT
Task Type Patches
Category User Interface
Status Closed
Assigned To No-one
Operating System Another
Severity Low
Priority Normal
Reported Version Release 3.4
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


This patch allows to use the yes /no screen in the absolute touchscreen mode.
It draws the message at the screen center and two buttons (yes and no) below.

The functions to draw the buttons and to check if a button was pressed I put in separate files as they are used by the latest version of the absolute mode graphic EQ screen (FS#10639) too.
This task depends upon

Closed by  Maurus Cuelenaere (mcuelenaere)
Friday, 05 November 2010, 12:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  Yes/no support for touchscreens was introduced in r27890.
Comment by Rob Purchase (shotofadds) - Tuesday, 24 November 2009, 23:37 GMT
Following a discussion on the -dev mailing list recently, several people objected to any removal of the current "grid" mode, which basically means that all screens will need to work in both modes.

For the yes/no screen, I think it's sufficiently simple to keep everything in one merged yesno.c file. Something like the attached patch ;-)

There are a few more things that need fixing before this can be committed. In particular, you should make sure not to use any floating-point maths in the Rockbox core (it's ok in plugins, but not the core). If you want to calculate 10% of some value, use something like x*10/100 instead...
Comment by Carsten Schreiter (Kuma76) - Wednesday, 25 November 2009, 03:00 GMT
Thanks for the comments, I will check this floating point thing.

About the grid mode. I can change the patch to show the screen in the old fashioned way in grid mode and with buttons in the absoute mode.
Personally I don't like this screen in grid mode and I can not think of anybody with a touchscreen who does, therefore I fixed this to the absolute mode.

Actually for me sometimes the grid is better (e.g. in lists), in other screens I prefer the absolute mode (graphic EQ (still patch only)), which means I would
like to have the mode selectable for different screens. But this is a different issue and I am not sure how to accomplish this. Selections menus seem to be
wasted, I think something like WPS tags would be nice, though the WPS is probably not the best place.
Anyway, as long is such a thing is not available, I would like to have this screen fixed to absolute mode. can you agree? Anything else needed to get this
Comment by Rob Purchase (shotofadds) - Tuesday, 01 December 2009, 22:02 GMT
I don't think any screen should force the touchscreen mode. The screens that currently do, only do it as a temporary workaround - the user's choice should be obeyed wherever possible. If you prefer a different mode in different screens, it may be possible in future to introduce a key combination to switch between modes, if that's useful. I don't think we want a setting per screen, that's overkill I think.

Bearing this in mind, I think the patch I posted above is a good starting point. It needs some work still: the "grid mode" implementation is poor, and I think more code could be made common between the two implementations. Also the floating-point calculations need to be removed.