This adds kinetic scrolling to to lists on touchscreen targets and RaaA, like all other OSes on touchscreens have.
It's only enabled in the absolute point mode, so for non-touchscreen and in grid mode nothing changes.
Kinetic scrolling means that the list keeps scrolling (but is decelerating) after you leave the touchscreen with the finger.
Redraw interval and deceleration is hardcoded for now but could be made configurable if desired.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28408 a1c6a512-1295-4272-9138-f99709370657
during scrolling.
However, the existing one is part of the list api, so it shouldn't be overridden
blindly internally, so do the decision in a different but equivalent way.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28147 a1c6a512-1295-4272-9138-f99709370657
* Scrolling is now done by wiping over the screen. There's no acceleration or
kinetic scrolling yet though. But it works rather well (previously
you held the edges of the list to scroll).
* Improve scrollbar scrolling so that it keeps scrolling even if you leave the
scrollbar area.
* Hide selection during scrolling
* Prevent accidental hitting of the list title (which means go back) during
scrolling
* Don't go into context menu after scrolling when leaving the screen on an item
In general, it's very much like scrolling in native lists in Android,
except there's no kinetic scrolling and everything is still line based, but with
the feature that the scrollbar enables jumping around in the list and very fast
scrolling.
Thanks to Dustin Skoracki for his ideas and half of the code for this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28145 a1c6a512-1295-4272-9138-f99709370657
Don't scroll text in time_screen(). the lines will be redrawn before scrolling statrs, so they don't scroll anyway.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24591 a1c6a512-1295-4272-9138-f99709370657
The lists need to copy to a local parent if a list passes NULL as parent in the init. This was before the commit of custom ui vp, but I removed it since I (wrongly) thought using the ui vp as parent would be fine. Let the viewportmanager fire a event in case when a theme-related setting changed and simply the handling in the lists code.
However the buttonbar handling didn't work before anyway, since list code didn't know if the buttonbar was active (it asked a variable which was always false....).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22651 a1c6a512-1295-4272-9138-f99709370657
Flyspray: FS#8799
This will allow for pretty themes, for example those with nice glass effects on their backdrops (some might argue they're wasting screen space but it's upto them),
as well as allowing for future background WPS updates in the main UI.
Plugins are not converted yet, they simply use the full screen. Ideally, any plugin that does *not* want the UI viewport, should take care of that itself (i.e. plugins should normally use the UI viewport).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22365 a1c6a512-1295-4272-9138-f99709370657
viewport_Set_defaults() will setup the given viewport with the correct "full screen" dimensions (so start at 0,0 if statusbars are disabled or 0,8 if they are enabled.)
All screens should keep the statusbar enabled, but if you really want to ignore the user setting you can disbaled it with viewportmanager_set_statusbar(false).
This commit also includes some menu/list viewport cleanups from kugel in FS#9603
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19622 a1c6a512-1295-4272-9138-f99709370657
if the callback returns ACTION_STD_CANCEL when the user presses ACTION_STD_OK the simple list will exit and set the selection. Otherwise, when ACTION_STD_CANCEL happens the selection will be set to -1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18641 a1c6a512-1295-4272-9138-f99709370657
fix a problem where the menus wouldnt redraw when they should have when settings change
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16816 a1c6a512-1295-4272-9138-f99709370657
set a slightly saner default timeout
talk the selected item when the list is first displayed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15247 a1c6a512-1295-4272-9138-f99709370657
Example uses in debug_menu.c
This API works best if most of the text is static, or not many actions
need to acted on. (of course, any list could use this)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15221 a1c6a512-1295-4272-9138-f99709370657
Now returns true if the action was handled in that function instead of returning the handled action.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14733 a1c6a512-1295-4272-9138-f99709370657
Useful for the debug menus where users shouldn't think pressing select would do anything.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13588 a1c6a512-1295-4272-9138-f99709370657
=>hold RIGHT or LEFT button on a GUI based list to scroll horizontally.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10545 a1c6a512-1295-4272-9138-f99709370657
Also correct a var clash between the rockbox's gui api and doom plugin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9451 a1c6a512-1295-4272-9138-f99709370657