summaryrefslogtreecommitdiffstats
path: root/apps/gui/viewport.h
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-12-09 07:25:46 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-12-09 07:25:46 +0000
commitb2eb44ce0eb24632a46b0ea8c8c46a8f2ba35e24 (patch)
treeff3c0e14e9a53c08749ee1f233a5b1e887d3561a /apps/gui/viewport.h
parent85aad9b3972208b0e34ba0241ebb5314118ae05e (diff)
downloadrockbox-b2eb44ce0eb24632a46b0ea8c8c46a8f2ba35e24.tar.gz
rockbox-b2eb44ce0eb24632a46b0ea8c8c46a8f2ba35e24.tar.bz2
rockbox-b2eb44ce0eb24632a46b0ea8c8c46a8f2ba35e24.zip
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
Diffstat (limited to 'apps/gui/viewport.h')
-rw-r--r--apps/gui/viewport.h48
1 files changed, 9 insertions, 39 deletions
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__ */