From b2eb44ce0eb24632a46b0ea8c8c46a8f2ba35e24 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 9 Dec 2009 07:25:46 +0000 Subject: 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 --- apps/gui/viewport.h | 48 +++++++++--------------------------------------- 1 file changed, 9 insertions(+), 39 deletions(-) (limited to 'apps/gui/viewport.h') diff --git a/apps/gui/viewport.h b/apps/gui/viewport.h index 54424339ca..6cb8d1f574 100644 --- a/apps/gui/viewport.h +++ b/apps/gui/viewport.h @@ -31,60 +31,30 @@ /* return the number of text lines in the vp viewport */ int viewport_get_nb_lines(const struct viewport *vp); -void viewport_set_defaults(struct viewport *vp, - const enum screen_type screen); - -/* Used to specify which screens the statusbar (SB) should be displayed on. - * - * The parameter is a bit OR'ed combination of the following (screen is - * SCREEN_MAIN or SCREEN_REMOTE from screen_access.h): - * - * VP_SB_HIDE_ALL means "hide the SB on all screens" - * VP_SB_ONSCREEN(screen) means "display the SB on the given screen - * as specified by the SB setting for that screen" - * VP_SB_IGNORE_SETTING(screen) means "ignore the SB setting for that screen" - * VP_SB_ALLSCREENS means "VP_SB_ONSCREEN for all screens" - * - * In most cases, VP_SB_ALLSCREENS should be used which means display the SB - * as specified by the settings. - * For the WPS (and other possible exceptions) use VP_SB_IGNORE_SETTING() to - * FORCE the statusbar on for the given screen (i.e it will show regardless - * of the setting) - * - * Returns the status before the call. This value can be used to restore the - * SB "displaying rules". - */ - - #define THEME_STATUSBAR (BIT_N(0)) #define THEME_UI_VIEWPORT (BIT_N(1)) #define THEME_BUTTONBAR (BIT_N(2)) #define THEME_LANGUAGE (BIT_N(3)) #define THEME_ALL (~(0u)) -#define VP_SB_HIDE_ALL 0 -#define VP_SB_ONSCREEN(screen) BIT_N(screen) -#define VP_SB_IGNORE_SETTING(screen) BIT_N(4+screen) -#define VP_SB_ALLSCREENS (VP_SB_ONSCREEN(0)|VP_SB_ONSCREEN(1)) - #ifndef __PCTOOL__ /* * Initialize the viewportmanager, which in turns initializes the UI vp and * statusbar stuff */ void viewportmanager_init(void); -int viewportmanager_get_statusbar(void); -int viewportmanager_set_statusbar(const int enabled); -/* - * Initializes the given viewport with maximum dimensions minus status- and - * buttonbar - */ +void viewport_set_defaults(struct viewport *vp, + const enum screen_type screen); void viewport_set_fullscreen(struct viewport *vp, - const enum screen_type screen); + const enum screen_type screen); #ifdef HAVE_LCD_BITMAP +void viewportmanager_theme_enable(enum screen_type screen, bool enable, + struct viewport *viewport); + +void viewportmanager_theme_undo(enum screen_type screen); /* call this when a theme changed */ void viewportmanager_theme_changed(const int); @@ -95,9 +65,9 @@ bool viewport_point_within_vp(const struct viewport *vp, #endif #else /* HAVE_LCD_CHARCELL */ -#define viewport_set_current_vp(a) -#define viewport_get_current_vp() NULL #define viewportmanager_theme_changed(a) +#define viewportmanager_theme_enable(...) +#define viewportmanager_theme_undo(...) #endif #endif /* __PCTOOL__ */ -- cgit v1.2.3