Commit graph

1501 commits

Author SHA1 Message Date
Thomas Martitz
8a0152bd4a Two new lcd/multi screen api convinience functions: draw_viewport(), fill_viewport().
They work as the drawrect/fillrect pendants but work on a viewport basis; pass NULL to draw the current viewport (the one set with set_viewport()).
In conjunction with action_get_touchscreen_press_in_vp() it should be less of a pain to draw buttons and get presses on them.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28239 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 23:15:05 +00:00
Frank Gevaerts
561999ebff Make skin_render_playlistviewer() noinline. This function uses lots of stack (around 1 kilobyte), and is called from a recursive function. gcc's stack allocation strategy makes the calling function then use all this stack space when inlining.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28231 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 13:26:51 +00:00
Frank Gevaerts
d0bf13b486 Revert accidental commit of skin_render.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28230 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 13:21:49 +00:00
Frank Gevaerts
c8c40c5291 Add a "early_usb" argument to gui_usb_screen_run(), and don't do skin unloading/reloading in gui_usb_screen_run() in the early usb case. Fixes the crash part of FS#11589
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28229 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 13:17:39 +00:00
Jonathan Gordon
0b824da4de fix FS#11662 and FS#11629 - skin %t() issues. %t should now work properly inside and outside of conditionals.
Remember that skins update at a rather slow speed so even if you have %t(0.2) in your skin it depends on which screen you are in for it to work (the main menu only updates at 2FPS, the WPS is 25FPS with peakmeters enabled... this is on the fixme list)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28226 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 06:47:52 +00:00
Jonathan Gordon
a7b1f7577b Add "resumeplayback" touchscreen button action which returns you to the previous music screen (WPS or FM) from most of the lists (browsers and menus)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28223 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 04:17:34 +00:00
Jonathan Gordon
3f7b780b54 fix a stupid typo in the vertical bar tag parser, spotted by teru
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28222 a1c6a512-1295-4272-9138-f99709370657
2010-10-09 12:18:10 +00:00
Thomas Martitz
b39a4933cb Fix several inaccuracies in list handling on touchscreen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28221 a1c6a512-1295-4272-9138-f99709370657
2010-10-09 11:22:52 +00:00
Teruaki Kawashima
cc8918e909 fix displaying of the slider when default is used for pb->y and pb->height.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28220 a1c6a512-1295-4272-9138-f99709370657
2010-10-08 14:26:36 +00:00
Teruaki Kawashima
2d86417c46 use CONTEXT_LIST in simplelist_show_list() so that button combinations for page down/page up work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28216 a1c6a512-1295-4272-9138-f99709370657
2010-10-07 12:27:26 +00:00
Thomas Martitz
d9d0b4dd20 Pixel-accurate (vertical) list scrolling for touchscreen targets.
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
2010-10-06 12:46:42 +00:00
Jonathan Gordon
dd6b1dc5d2 Fix FS#11651 - slider wasnt being drawn correctly with inverted (and vertical) bars
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28207 a1c6a512-1295-4272-9138-f99709370657
2010-10-04 13:20:37 +00:00
Teruaki Kawashima
0f8fe94f46 correct drawing of the bar type tags when nofill is set.
draw the slider bitmap before drawing A-B repeat markers so that they are visible.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28204 a1c6a512-1295-4272-9138-f99709370657
2010-10-03 14:19:30 +00:00
Teruaki Kawashima
55a63609ef use correct condition for #if for tagcache_fill_tags().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28188 a1c6a512-1295-4272-9138-f99709370657
2010-09-30 13:09:50 +00:00
Teruaki Kawashima
717f0bd982 explicitly set img->using_preloaded_icons in parse_image_load() and don't rely on parse_image_display().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28184 a1c6a512-1295-4272-9138-f99709370657
2010-09-29 13:23:24 +00:00
Magnus Holmgren
927a7bdb4b Make sure get_lif_token_value isn't inlined, as it would defeat the purpose of introducing that function. E.g., gcc 3.4.6 for m68k is keen on inlining code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28172 a1c6a512-1295-4272-9138-f99709370657
2010-09-26 11:58:58 +00:00
Jonathan Gordon
0dd8ba4725 Fix FS#11552 - touches outside of the UI viewport can do unexpected list movements.
Also remove naughty // comments from r28145

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28168 a1c6a512-1295-4272-9138-f99709370657
2010-09-26 07:32:16 +00:00
Jonathan Gordon
562437b8e7 Fix FS#1159 - stack overflow in the skin engine when there is too many nested conditionals
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28167 a1c6a512-1295-4272-9138-f99709370657
2010-09-26 06:43:33 +00:00
Thomas Martitz
f060cd5428 Don't actually reimplement an existing feature for hiding the selection marker
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
2010-09-23 00:37:33 +00:00
Thomas Martitz
e5d43300af Explicitly disable hiding the selection bar by default.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28146 a1c6a512-1295-4272-9138-f99709370657
2010-09-23 00:13:11 +00:00
Thomas Martitz
ac08e6942a Touchscreen: Improve scrolling in absolute point mode.
* 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
2010-09-23 00:02:32 +00:00
Jonathan Gordon
2c8204cd91 Hopefully fix FS#11630 where the wps backdrop would be shown instead of the menu one
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28116 a1c6a512-1295-4272-9138-f99709370657
2010-09-19 11:49:33 +00:00
Frank Gevaerts
f366090562 Make disabling HAVE_PITCHSCREEN actually work without breaking the build
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28102 a1c6a512-1295-4272-9138-f99709370657
2010-09-17 20:28:47 +00:00
Jonathan Gordon
10b6861bfd fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28094 a1c6a512-1295-4272-9138-f99709370657
2010-09-16 14:01:43 +00:00
Jonathan Gordon
fbb008331d skin engine: completly rework the sbs title handing code
This hopefully fixes the remaining data aborts and freezes when loading skins caused by the somewhat nasty list/sbs title handling code.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28093 a1c6a512-1295-4272-9138-f99709370657
2010-09-16 12:56:51 +00:00
Jonathan Gordon
75f04f56eb woops
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28076 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 12:30:45 +00:00
Jonathan Gordon
71379cafb1 fix errors, warnings, tabs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28075 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 12:21:56 +00:00
Jonathan Gordon
46142b91cd new file got lost
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28074 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 11:59:52 +00:00
Jonathan Gordon
9928e3418f Another major skin backend update/hopefully bugfix:
Skins are now more self contained in the skin manager which in the future might allow on demand skin loading (i.e smaller skin buffers)
Skin backdrops are also managed more intelegently (fixes a bug where you can get a crazy backdrop loaded if a .sbs fails to load)

the rockbox_default rescue theme is now called rockbox_failsafe to better express what it actually is.

This commit hopefully/maybe fixes the heavily reported data aborts, so please check if you are getting them

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28073 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 11:56:50 +00:00
Jonathan Gordon
a1612bbd1a fix warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28010 a1c6a512-1295-4272-9138-f99709370657
2010-09-06 13:36:23 +00:00
Jonathan Gordon
4caa8326ab 2 new touch region options... "settings_inc" and "settings_dec" which will increase or decrease most of the available settings. To use it put the config name of the setting as the next param after settings_inc... i.e %T(0, 0, 32, 32, settings_inc, repeat)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28009 a1c6a512-1295-4272-9138-f99709370657
2010-09-06 13:33:49 +00:00
Jonathan Gordon
dbde63bfec progressbars are drawn inside viewports so all coords are viewport relative. so fix - for the x coord to be 0 instead of vp->x which never made sense (woops from 18months ago :p )
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27998 a1c6a512-1295-4272-9138-f99709370657
2010-09-05 10:23:09 +00:00
Jonathan Gordon
216ed29e4d fix FS#11588 - %t(0) inside conditionals wasnt making that subline skip
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27983 a1c6a512-1295-4272-9138-f99709370657
2010-09-02 11:43:33 +00:00
Fred Bauer
55704d8942 font_table[].name wasn't filled
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27963 a1c6a512-1295-4272-9138-f99709370657
2010-09-01 05:21:39 +00:00
Jonathan Gordon
4dd6b14453 Should fix the line alternator issue described in http://forums.rockbox.org/index.php?topic=25545
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27956 a1c6a512-1295-4272-9138-f99709370657
2010-08-31 02:19:48 +00:00
Bertrik Sikken
a290ce4222 tcc77x targets: various minor cleanups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27913 a1c6a512-1295-4272-9138-f99709370657
2010-08-28 10:17:19 +00:00
Fred Bauer
cf8f526d16 change get_glyph_size() to font_glyphs_to_bufsize(). fixes a bug when font glyph buffer < font header
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27911 a1c6a512-1295-4272-9138-f99709370657
2010-08-27 18:25:23 +00:00
Jonathan Gordon
1d613bee0f Make the yes/no screen useable in the stylus touchscreen mode, add 2 soft-buttons. Also make bottom left yes in grid mode to line up with the new button
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27890 a1c6a512-1295-4272-9138-f99709370657
2010-08-26 10:20:16 +00:00
Jonathan Gordon
0d040838be fix errors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27883 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 14:23:31 +00:00
Jonathan Gordon
faaf431d32 Accept FS#11567 by Fred Bauer - better memory management for the skin fonts
%Fl now takes an optional 3rd param which is the number of glyphs to cache (default to 256). the smaller the number, the less ram will be used (i.e using 15 for a font which only shown numbers is a good idea)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27882 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 14:11:38 +00:00
Jonathan Gordon
74ec011bb8 New skin tag: %if(<tag>, <operator>, <operand> [,option count]) which lets you do very simple logical comparissons on other tags.
<tag> is the tag to check against
<operator> is the comparisson to do, any one of... =, !=, >, >=, <, <=    (when comparring against a string tag like %ia only = and != work, and it is done NOT case sensitive)
<operand> is either another tag, a number, or text.
[option count] is an optinal number to use for the few tags which scale to the amount of options when used as a conditional (i.e %?pv<a|b|c|d> would have 4 options)

example: %?if(%pv, >=, 0)<Warning.. volume clipping|coool...>
That says "If the value from %pv (volume) is greater than or equal to 0 then display the warning line, otherwise the cool line."
%?if(%ia, =, %Ia)<same artist>   <= this artist and next artist are the same.

some tags might need a touch of tweaking to work better with this. experiment and have fun

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27846 a1c6a512-1295-4272-9138-f99709370657
2010-08-19 13:49:32 +00:00
Jonathan Gordon
2cc6b5a79d Fix FS#11524 - a sbs could crash on load
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27829 a1c6a512-1295-4272-9138-f99709370657
2010-08-16 12:53:29 +00:00
Jonathan Gordon
0be2426528 Make %pb without any params work as expected
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27827 a1c6a512-1295-4272-9138-f99709370657
2010-08-16 12:07:39 +00:00
Jonathan Gordon
a71db516f2 fix FS#11542 - %t() not working
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27826 a1c6a512-1295-4272-9138-f99709370657
2010-08-16 10:40:50 +00:00
Jonathan Gordon
e8bbbdffd4 fix FS#11519 - clock tags wernt updating like they should
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27822 a1c6a512-1295-4272-9138-f99709370657
2010-08-15 14:35:34 +00:00
Jonathan Gordon
eda80390d5 A bunch of new features for the bar type tags (%pb, %pv, %bl, etc):
* the bar orientation (horiz/vert) is now chosen based on the width and heigt values (or can be forced).
* the fill direction can now be inverted (fill right to left, or top to bottom is considered inverted)
* It can now draw a slider type bar instead of a fill type (or indeed a slider with a fill type)

To configure the new bar, any (or all) of the following params can be used after the bmp filename (order makes no difference either):
invert - cause the bar to fill in the inverted direction
vertical - draw a vertical bar (not needed if the height > width)
horizontal - draw a horizontal bar (this is obviously the default)
nofill - dont draw the filling bar (this still draws the outline, obviously pointless without the slider param)
slider - draw an image for the slider. The next param MUST be the label of the image to draw. No option to use a subimage here, so the whole image needs to be the image you want on the slider. 

example: %pb(0,0,-,-,-,nofill, slider, slider_image, invert) - draw a boring horizontal progressbar which doesnt fill and only draws the image "slider_image" which moves right to left.

the slider type might need some tweaking. let us know how it goes


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27821 a1c6a512-1295-4272-9138-f99709370657
2010-08-15 14:13:36 +00:00
Magnus Holmgren
ac2c69ccae Allow 'long' labels with single-argument %xd too. The label need to be at least 3 chars long (2 chars are treated as a single-letter-label image with a subimage).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27820 a1c6a512-1295-4272-9138-f99709370657
2010-08-15 07:08:23 +00:00
Jonathan Gordon
a9d752b1bd *really* fix the last warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27817 a1c6a512-1295-4272-9138-f99709370657
2010-08-14 15:31:04 +00:00
Jonathan Gordon
d23d7a1686 last warning and fix manual
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27816 a1c6a512-1295-4272-9138-f99709370657
2010-08-14 15:27:46 +00:00
Jonathan Gordon
b9093f22dd fix warnings and errors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27815 a1c6a512-1295-4272-9138-f99709370657
2010-08-14 15:23:07 +00:00