summaryrefslogtreecommitdiff
path: root/apps/gui/bitmap (follow)
Commit message (Collapse)AuthorAge
* touchscreen: Rewrite kinetic scrolling using a state machine.Thomas Martitz2012-04-08
| | | | | | | | | | | The old code was very confusing. The scrolling modes need to be handled differently, thus a state machine makes sense. Should fix numerious glitches and be easier to maintain. NOTE: Behavior is still a bit glitchy with an SBS in use, because the skin engine sees the touch events earlier than the list code. Change-Id: I4ccead359c81de0d0fc3dea636fe2cb3a28d1bc6
* touchscreen: Fix kinetic scrolling when the statusbar is off.Thomas Martitz2012-04-05
| | | | | | | | | | | The scrolling code cannot differentiate between the BUTTON_TOUCHSCREEN post from normal touches and the one posted in the timeout callback. To fix introduce a global special button (BUTTON_REDRAW) that results in the desired redraw. This existed already as a local kludge for android and is now generalized. Change-Id: I6bfa6c66431c48f5042fcd8fce2ea72cd3457f58
* Make %LC and %LR always have predictable and usable values.Frank Gevaerts2012-03-01
| | | | | | | %LC is now 1 for non-tiled list items (instead of undefined) %LC and %LR are now -1 in non-list contexts. Change-Id: Ib7090429fa95528bd141d3d7ca95fd917b25b96e
* Clean up some variables.Frank Gevaerts2012-02-25
| | | | | | | Renames origional_* variables to original_* Removes original_(width,height) variables that weren't actually used Change-Id: I604c2ef9ce9d806551e8c52080a5c895415e088c
* Add %LR and %LC to get at the current row and columm in skinned lists.Frank Gevaerts2012-02-25
| | | | | | | This allows list items to be rendered differently depending on their on-screen position, allowing things like gradients or nonlinear alignment Change-Id: I1d9c080f97e83707f0e80f57abc762cb2b94f6ed
* Store listitem_viewport_cfg->label as skinoffset instead of raw pointerFrank Gevaerts2012-02-22
| | | | | | | | | This fixes the case where some blocks got relocated and the skin render code couldn't find the matching viewports any more. Change-Id: I4394444fb139ee5bc986f374dba82a104013e354 Reviewed-on: http://gerrit.rockbox.org/112 Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
* Make skinned lists handle the "0 items" case without crashingFrank Gevaerts2012-02-21
| | | | Change-Id: Iaf69c93727e0f0e2a48b44c330883f7a620c4d99
* Fix another skinned list buflib issueFrank Gevaerts2012-02-19
| | | | Change-Id: Ib0eebf56b1bf4f4119ebfd21679f6cd9c8986ea4
* Fix a nullpointer dereference in skinned lists.Frank Gevaerts2012-02-19
| | | | | | | Unfortunately this doesn't seem to be the only problem with skinned lists. Fixing this still doesn't make them work right. Change-Id: Ibf80eb2a4fa4eb392e2f3ea9744aec68c6181961
* make local variable current_list staticBertrik Sikken2012-02-19
| | | | Change-Id: Ibe3536a4865c12160e933d3696af4b5507713ffe
* Use buflib for all skin engine allocations.Jonathan Gordon2011-11-15
| | | | | | | | Massive thanks to Michael Chicoine and other testers for finding the early bugs. This removes all skin memory limitations git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30991 a1c6a512-1295-4272-9138-f99709370657
* Commit FS#12321 - Touchscreen: List line padding, to more easily select linesThomas Martitz2011-10-17
| | | | | | | | | | | | | | This adds line padding to lists on touchscreens, in order to make lists reasonably useful without huge fonts. It's configurable: * Automatic (default, line height calculated using a lcd dpi aware function) * Off (status quo, line height = font height) * X pixels (from 2 to 50 in even steps) The automatic setting should/aims to Just Work Out Of The Box on all targets git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30773 a1c6a512-1295-4272-9138-f99709370657
* Changed the FOR_NB_SCREENS macro to always be a for loop that declares its ↵Björn Stenberg2011-10-15
| | | | | | own loop variable. This removes the need to declare this variable in the outer scope. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30756 a1c6a512-1295-4272-9138-f99709370657
* Fix touchscreen behavior in time&date screen.Thomas Martitz2011-10-07
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30725 a1c6a512-1295-4272-9138-f99709370657
* Add "%LN" tag to retrieve the list item number of the current item. This ↵Frank Gevaerts2011-09-18
| | | | | | allows e.g. putting item numbers in skinned lists. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30568 a1c6a512-1295-4272-9138-f99709370657
* Rework how the skin gets the list item text to save some ram. Also allow the ↵Jonathan Gordon2011-09-11
| | | | | | | | | | | | | | | | | %LI and %LT tags to take 2 optional parameters to get a different items text/icon: %LT(offset, nowrap) - get the text for the "being drawn"+offset item (offset being + or -). if the second param is "nowrap" (Without quotes) the text will be blank if the item would need to wrap. Same for the icon e.g: %LT(-1) %LT << %LT(1, nowrap) will display: Four Five << Six (or nothing if Five is the last item) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30502 a1c6a512-1295-4272-9138-f99709370657
* Add the new file and fix the compile errorJonathan Gordon2011-09-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30462 a1c6a512-1295-4272-9138-f99709370657
* Touchscreen: Fix minor redraw after entering the context menu.Thomas Martitz2011-02-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29193 a1c6a512-1295-4272-9138-f99709370657
* Redo r29168. Use similar but existing mechanism in the action system which ↵Thomas Martitz2011-02-02
| | | | | | | | seems to work better. Don't eat buttons on context change if it was waiting for button release (you did need another release). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29192 a1c6a512-1295-4272-9138-f99709370657
* Touchscreen/lists: Hopefully fix glitchy behavior that happened after ↵Thomas Martitz2011-01-29
| | | | | | opening the context menu. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29168 a1c6a512-1295-4272-9138-f99709370657
* Touchscreen: Improved scroll thresholdThomas Martitz2010-11-10
| | | | | | | | | Remove the hardcoded (and way too small) scroll threshold (the distance moved in pixels before we think the users wants to scroll) and replace it with something based on the actual DPI of the screen. On Android we call the API for that, on other touchscreens we reimplemented Android's formula (as of 2.2) and calculate it. Flyspray: 11727 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28548 a1c6a512-1295-4272-9138-f99709370657
* Make the context menu pop up instantly after the long press timeout when ↵Thomas Martitz2010-11-05
| | | | | | holding a list item instead of just after the thumb/styles left the screen. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28499 a1c6a512-1295-4272-9138-f99709370657
* FS#11686 - Kinetic list scrolling for touchscreenThomas Martitz2010-10-31
| | | | | | | | | | 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
* fix that disktidy plugin and shopper plugin is not usable when Show Icons ↵Teruaki Kawashima2010-10-26
| | | | | | setting is turned off. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28362 a1c6a512-1295-4272-9138-f99709370657
* Fix several inaccuracies in list handling on touchscreen.Thomas Martitz2010-10-09
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28221 a1c6a512-1295-4272-9138-f99709370657
* Pixel-accurate (vertical) list scrolling for touchscreen targets.Thomas Martitz2010-10-06
| | | | | | | | Looks much smoother now as you don't scroll by whole lines anymore. Add some functions lcd driver to enable the line based scrolling engine to draw the lines with a pixel-based y-offset. This should also allow for a sensible kinetic scrolling mechanism (still a todo). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28214 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#11552 - touches outside of the UI viewport can do unexpected list ↵Jonathan Gordon2010-09-26
| | | | | | | | movements. Also remove naughty // comments from r28145 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28168 a1c6a512-1295-4272-9138-f99709370657
* Don't actually reimplement an existing feature for hiding the selection markerThomas Martitz2010-09-23
| | | | | | | | | 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
* Touchscreen: Improve scrolling in absolute point mode.Thomas Martitz2010-09-23
| | | | | | | | | | | | | | | | | | | | | * 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
* I somehow messed up the previous commit, undo the unrelated changes.Maurus Cuelenaere2010-06-24
| | | | | | Also, r26922 wasn't the culprit but r27004. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27108 a1c6a512-1295-4272-9138-f99709370657
* Fix touchscreen scrollbar behaviour when it's on the right.Maurus Cuelenaere2010-06-24
| | | | | | This was broken since r26922. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27107 a1c6a512-1295-4272-9138-f99709370657
* Make the title area go up one level in the lists again. This Doesnt work if ↵Jonathan Gordon2010-06-21
| | | | | | you have the title in a seperate viewport in the sbs, but that isnt really a problem because if you are doing that there is a good chance you will setup a region for that press anyway git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27015 a1c6a512-1295-4272-9138-f99709370657
* Touchregion support for the Base Skin and FM Skins. display obviously needs ↵Jonathan Gordon2010-06-21
| | | | | | | | | to be in stylus mode for this to work. Just about all screens should be mostly useable if your sbs has the next/prev/select/cancel/menu regions defined. Plenty of room to add new action abilities if they are wanted. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27004 a1c6a512-1295-4272-9138-f99709370657
* Fix error: assignment of read-only variable 'list_width'Maurus Cuelenaere2010-06-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26923 a1c6a512-1295-4272-9138-f99709370657
* Simplify check in gui_synclist_do_touchscreen(), no functional changes.Maurus Cuelenaere2010-06-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26922 a1c6a512-1295-4272-9138-f99709370657
* Move c/h files implementing/defining standard library stuff into a new libc ↵Thomas Martitz2010-05-06
| | | | | | | | directory, also standard'ify some parts of the code base (almost entirely #include fixes). This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
* 2 new tags for the base skin.Jonathan Gordon2010-02-26
| | | | | | | | %Lt - the title text for the current list %Li - the icon number. Same order as the CustomIcons list, except the first icon is the "no icon" icon. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24917 a1c6a512-1295-4272-9138-f99709370657
* Touchscreen: fix scrollbar handling when it's on the rightMaurus Cuelenaere2010-02-13
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24635 a1c6a512-1295-4272-9138-f99709370657
* fix text scrolling handling in do_menu, set_time_screen and time_screen.Teruaki Kawashima2010-02-11
| | | | | | 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
* list: improvement to move and show selection in multi-line lists.Teruaki Kawashima2010-01-07
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24195 a1c6a512-1295-4272-9138-f99709370657
* apps/gui/bitmap/list.c: use bool instead of int to hold boolean valueBertrik Sikken2010-01-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24161 a1c6a512-1295-4272-9138-f99709370657
* fix another bug from FS#10771 - list touchscreen handling needs to ignore ↵Jonathan Gordon2009-12-21
| | | | | | | | | presses outside the list viewport. It probably makes sense to pass off any button presses outside of the list viewport to the sbs, I'll leave that for someone else though git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24086 a1c6a512-1295-4272-9138-f99709370657
* Fix FS#10289 - screens showing a list need to check the show_icons setting ↵Jonathan Gordon2009-12-16
| | | | | | before setting the callback. the List will now always draw icons if a callback is set (like its always done for voice) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24022 a1c6a512-1295-4272-9138-f99709370657
* Fix position calculation of title icon.Teruaki Kawashima2009-10-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22983 a1c6a512-1295-4272-9138-f99709370657
* Use macro to test viewport's RTL flagTomer Shalev2009-10-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22978 a1c6a512-1295-4272-9138-f99709370657
* Fine tuning of gui elements positioning in RTL modeTomer Shalev2009-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22976 a1c6a512-1295-4272-9138-f99709370657
* Remove redundant code in list.cTomer Shalev2009-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22974 a1c6a512-1295-4272-9138-f99709370657
* Add rtl flagging to viewport_set_defaults(), and ensure thatTomer Shalev2009-10-05
| | | | | | | viewportmanager_theme_changed() is called during font loading git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22971 a1c6a512-1295-4272-9138-f99709370657
* Implement RTL as a viewport's bit-fieldTomer Shalev2009-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22968 a1c6a512-1295-4272-9138-f99709370657
* Fix red - typeTomer Shalev2009-10-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22966 a1c6a512-1295-4272-9138-f99709370657