Commit graph

20 commits

Author SHA1 Message Date
Jonathan Gordon
1c2aa35371 FS#10984 - multifont! 2 major additions:
1) seperate UI font for the remote and main displays
2) allow individual skins to load additional fonts for use in the skin (Uo to 7 extra in this first version) see CustomWPS for info on how to load a font in the skins.

Code should always use FONT_UI+screen_number to get the correct user font


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24644 a1c6a512-1295-4272-9138-f99709370657
2010-02-14 06:26:16 +00:00
Jonathan Gordon
f8aa88ba50 OK, this is hopefully the last sbs related fix. This one will fix the backdrop going garbage, and add a missing else which kugel spotted
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24579 a1c6a512-1295-4272-9138-f99709370657
2010-02-10 04:53:04 +00:00
Jonathan Gordon
c0e2d9fe1b Fix RTL list handing when not loading a custom base skin.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24401 a1c6a512-1295-4272-9138-f99709370657
2010-01-31 03:08:44 +00:00
Jonathan Gordon
4c514b9d94 really the last of the red this time
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24370 a1c6a512-1295-4272-9138-f99709370657
2010-01-29 08:39:08 +00:00
Jonathan Gordon
eee5423fe1 skin rework (FS#10922) notable changes:
- simplify the setting/skin relationship. settings are used as the fallback if it's not specified in the skin
- backdrop buffers are now in the skin buffer (which has also increased slightly to accomodate 1 backdrop for each skin and 2 full colour screens for bmps (up for 1.5))
- if no %X is specified in a skin then the backdrop setting will be used. use %Xd to explicitly disable a skin from displaying a backdrop
- the base skin can now specify a backdrop.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24366 a1c6a512-1295-4272-9138-f99709370657
2010-01-29 07:52:13 +00:00
Jonathan Gordon
0900b563f2 FS#10855 3 minor sbs bugs, spotted and fixed by Teruaki Kawashima
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24065 a1c6a512-1295-4272-9138-f99709370657
2009-12-18 06:51:36 +00:00
Jonathan Gordon
b2eb44ce0e FS#10824 - viewport/statusbar API rework.
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
2009-12-09 07:25:46 +00:00
Thomas Martitz
3e60fb410d Consolidate some #ifdef code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23636 a1c6a512-1295-4272-9138-f99709370657
2009-11-15 18:05:18 +00:00
Thomas Martitz
f80a6ddeae Fix crash when selecting statusbar: custom in the menus without having a valid sbs loaded.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23635 a1c6a512-1295-4272-9138-f99709370657
2009-11-15 17:44:13 +00:00
Jonathan Gordon
6008c29e5e try that previous commit again...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23581 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 06:27:04 +00:00
Jonathan Gordon
10fcb6b183 fix segfault on remote targets where no sbs is loaded for the remote
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23580 a1c6a512-1295-4272-9138-f99709370657
2009-11-09 06:17:56 +00:00
Thomas Martitz
c0635ba6c9 Remove wps_data.remote_wps. It's redundant with the new global curr_screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23512 a1c6a512-1295-4272-9138-f99709370657
2009-11-04 07:14:02 +00:00
Jonathan Gordon
c812614a1d Fix the WPS to work properly with the statusbar for the previous change.. Side effect is it fixes FS#10721 where %pb didnt work
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23508 a1c6a512-1295-4272-9138-f99709370657
2009-11-04 05:24:30 +00:00
Jonathan Gordon
a7d784b1d5 Fix viewport "UI area" to work based on what was agreed on last week in the mailing lists and IRC:
* 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
2009-11-04 05:10:53 +00:00
Thomas Martitz
3ddbe63ff5 Remove all update event callbacks if the custom statusbar is unused.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23306 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 23:29:13 +00:00
Thomas Martitz
8f11075f85 No need to have this variable global anymore.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23305 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 23:15:17 +00:00
Thomas Martitz
804e3aadae Fix a few potential redraw problems with the custom statusbar and wps fighting for the same full redraw variable.
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
2009-10-20 23:12:20 +00:00
Thomas Martitz
1016ee4e80 Initial custom statusbar commit.
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
2009-10-19 15:28:15 +00:00
Thomas Martitz
94f7651341 Revert r23212, I committed it accidentally.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23214 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 20:34:04 +00:00
Thomas Martitz
8d032ae136 initial custom statusbar commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23212 a1c6a512-1295-4272-9138-f99709370657
2009-10-16 20:30:09 +00:00