3 new tokens:
%ax - the next token should follow the language direction (what that means is defined by the individual tokens)
%aL - align left on LTR language (same as %al), right on RTL languages
%aR - align right on LTR language (same as %ar), left on RTL languages
This commit adds %ax support to the %V and %Cl tokens.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24193 a1c6a512-1295-4272-9138-f99709370657
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
Hopefully the only user visible changes are:
- fm and recording screens go by the statusbar setting (sbs or inbuilt)
- plugins go back to using the theme as they should for menus and lists
- splash screens might get cut a bit... entirely theme and splash dependant.. if there is a problematic one we can look at it later.
- hopefully nothing more than very minor screen flickerings... let me know exactly where they are so they can be fixed
New GUI screen rules:
* Screens assume that the theme (sbs+ui viewport+ maybe background image) are always enabled. They may be disabled on a per display basis, but MUST be re-enabled on exit
* Screens must not be coded in a way that requires a statusbar of any type.. the inbuilt bar will be removed shortly.
ALWAYS RESPECT THE USERS SETTINGS unless the screen requires the full display to fit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23904 a1c6a512-1295-4272-9138-f99709370657
Also change GUI_EVENT_REFRESH event handling so that the passed drawing function is always called, not only when sbs or custom ui vp are used.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23644 a1c6a512-1295-4272-9138-f99709370657
- Use the %Sx skin tag in WPS to translate 'Next Track', 'Next', and 'of' (X of Y tracks)
- New conditional skin token 'Sr' which checks whether the currently loaded language is an RTL language (Hebrew/Arabic). It uses lang_is_rtl().
- Added Hebrew translation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23638 a1c6a512-1295-4272-9138-f99709370657
* viewport_set_current_vp() because if a screen wants to not use the user setting it shouldn't be dealing with the viewport manager at all (other than to disable the bars)
* viewport_ui_vp_get_state() is unused (and not needed)
* viewport_get_current_vp() because you should be using set_defaults() instead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23606 a1c6a512-1295-4272-9138-f99709370657
Now, call it earlier and remove parts of it that caused the need to call it later. Removing that is OK since it's done again on settings loading.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23603 a1c6a512-1295-4272-9138-f99709370657
This is similar to %Sp for pitch. The conditional form %?Ss<...> is also
supported in the same way as FS#10680; you can use
%?Ss<%xdAa|%xdAb|>
to show an icon of a tortoise (subpicture 1 of image A) or a hare
(subpicture 2 of image A) when not playing at the normal speed.
Flyspray: FS#10681
Author: Junio C Hamano
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23591 a1c6a512-1295-4272-9138-f99709370657
When there are two choices (i.e. boolean), choose the first one if the
pitch is different from the normal value, and choose the second one if the
pitch is the same as the normal value.
When there are more than two choices (i.e. enum), the left half of the
choices are used to show 0..normal range, and the right half of the
choices are used to show values over that range. The last entry is used
when it is set to the normal setting, following the rockbox convention to
use the last entry for special values.
2 items: %?Sp<0..99 or 101..infinity|100>
3 items: %?Sp<0..99|101..infinity|100>
4 items: %?Sp<0..49|50..99|101..infinity|100>
5 items: %?Sp<0..49|50..99|101..149|150..infinity|100>
6 items: %?Sp<0..33|34..66|67..99|101..133|134..infinity|100>
7 items: %?Sp<0..33|34..66|67..99|101..133|134..167|167..infinity|100>
This will allow two expected use cases:
(1) %?Sp<%Sp> to show the pitch only when playing at a modified pitch.
(2) %?Sp<%xdAa|%xdAb|> to show an icon of Darth Vader (subpicture 1
of image A) when playing at a lower pitch than the original, and to
show an icon of a chipmunk (subpicture 2 of image A) when playing at
a higher pitch than the original. When playing at a normal pitch,
nothing is shown.
Flyspray: FS#10680
Author: Junio C Hamano
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23589 a1c6a512-1295-4272-9138-f99709370657
Also, slightly reorder the enum to group misc items together
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23573 a1c6a512-1295-4272-9138-f99709370657
* viewport_set_defaults() will always set the viewport to the intersection of the user setting and any sbs set user viewport
* viewport_set_fullscreen() will always set the viewport to the full display, take care to disable the statusbars if you use this!
This patch is from FS#10709 and contains code which will be removed once the current inbuilt statusbar is finally removed. This *may* break themes which dont use the %we or %wd token.. follow up commit to fix this coming...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23507 a1c6a512-1295-4272-9138-f99709370657
new skin tokens:
%Rp - does the target have recording?
%Rf - samplerate
%Re - encoder
%Rb - bitrate
%Rm - mono/stereo
Please put all bugs from these (which very probably dont work 100%) into FS#10755. And someone who knows how the recoding capabilities work please look this over... ideally the same value should be returned for the middle three tags no matter what the capabilities of the target are.
CustomWPS on the wiki for more details
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23491 a1c6a512-1295-4272-9138-f99709370657
If the feature is known to be unavailable at compile time or runtime detected, then let parsing skip over the true case. That enables parsing skins that properly put tags not available on a target within these tags. In the past the true case was parsed even if never could be true, which led to unexpected parsing failures.
Parsing %cc<%St|time format|[..]|> is now possible on target where that setting doesn't exist (the %St parser wold fail).
More of these tags are to be added, for example to indicate fm radio or recording capabilities.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23479 a1c6a512-1295-4272-9138-f99709370657
This fix is as good as we can do, but not perfect. Because the sbs is only updated when a button is pressed it will stay in the "volume changing" state probalby longer than expected.. which isnt terrible, but useful to remember.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23455 a1c6a512-1295-4272-9138-f99709370657
* add the TOKEN_RTC_PRESENT value to the skin debugger listing
* Allow the width and height of a viewport to be negative values (so width -50 means extend to 50pixels inside from the right edge)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23393 a1c6a512-1295-4272-9138-f99709370657
%V|-50|0|-|..... will position that viewport 50 pixels from the right of the display at the top.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23378 a1c6a512-1295-4272-9138-f99709370657
* Add function list_get_nb_lines and replace duplicated codes to calculate number of lines by it.
* Refine calculation of start_item in function gui_list_put_selection_on_screen.
- displays as many items as possible. hopefully fix FS#10054.
* Fix checking bounds in function gui_synclist_item_is_onscreen.
* Remove trailing spaces and fix indents.
Flyspray: FS#10722
Author: myself
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23367 a1c6a512-1295-4272-9138-f99709370657
Instead, introduce a new skin struct holding data which is meant for all screens for a single skin (struct wps_state is currently used by both at the same time). Also clean up (classic) statusbar handling for skins using this new struct.
Also, implement deactivating updating of the custom statusbar when the LCD is deactivated, saving a bit battery life on some targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23304 a1c6a512-1295-4272-9138-f99709370657
Increase maximum event count as we need more (I actually had a report about it during custom statusbar testing).
Removed corresponding functions from the core and plugin api. Bump min version and sort.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23302 a1c6a512-1295-4272-9138-f99709370657
The custom statusbar can be used as a WPS for the main UI, using .(r)sbs files. It's using the skin engine and knows all tags the WPS also knows.
The default folder for .sbs is the wps folder to reuse images used in the WPS.
As it can be shown in the WPS also, it's useful to move shared parts to the custom statusbar in order to save skin buffer space.
There are a few restrictions/TODOs:
*) Peak meter doesn't redraw nicely(not frequent enough), as very frequent updates would slow the UI down as hell (some targets fight with it in the WPS already: FS#10686)
*) No touchregion support as the statusbar doesn't have any action handling (it won't fail to parse though).
*) Drawing stuff into the default VP is forbidden (loading images in it is not). You *need* to use viewports for the displaying stuff (parsing fails if no viewport is used).
*) Themes that don't use a custom ui viewport can be fixed up using the new %Vi tag to avoid nasty redraw effectts (you must not draw into it as well, it's used to fix up the ui viewport). %Vi describes the viewport that the lists can use without getting in the way of the statusbar.
Otherwise, it behaves like the classic statusbar, it can be configured in the theme settings, and can be turned off in the wps using %wd.
Note to translaters: When translating LANG_STATUSBAR_CUSTOM, please consider using the same translation as for LANG_CHANNEL_CUSTOM if it's compatible. They could be combined later then.
Flyspray: FS#10566
Author: myself
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23258 a1c6a512-1295-4272-9138-f99709370657