summaryrefslogtreecommitdiff
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.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 @@
31/* return the number of text lines in the vp viewport */ 31/* return the number of text lines in the vp viewport */
32int viewport_get_nb_lines(const struct viewport *vp); 32int viewport_get_nb_lines(const struct viewport *vp);
33 33
34void viewport_set_defaults(struct viewport *vp,
35 const enum screen_type screen);
36
37/* Used to specify which screens the statusbar (SB) should be displayed on.
38 *
39 * The parameter is a bit OR'ed combination of the following (screen is
40 * SCREEN_MAIN or SCREEN_REMOTE from screen_access.h):
41 *
42 * VP_SB_HIDE_ALL means "hide the SB on all screens"
43 * VP_SB_ONSCREEN(screen) means "display the SB on the given screen
44 * as specified by the SB setting for that screen"
45 * VP_SB_IGNORE_SETTING(screen) means "ignore the SB setting for that screen"
46 * VP_SB_ALLSCREENS means "VP_SB_ONSCREEN for all screens"
47 *
48 * In most cases, VP_SB_ALLSCREENS should be used which means display the SB
49 * as specified by the settings.
50 * For the WPS (and other possible exceptions) use VP_SB_IGNORE_SETTING() to
51 * FORCE the statusbar on for the given screen (i.e it will show regardless
52 * of the setting)
53 *
54 * Returns the status before the call. This value can be used to restore the
55 * SB "displaying rules".
56 */
57
58
59#define THEME_STATUSBAR (BIT_N(0)) 34#define THEME_STATUSBAR (BIT_N(0))
60#define THEME_UI_VIEWPORT (BIT_N(1)) 35#define THEME_UI_VIEWPORT (BIT_N(1))
61#define THEME_BUTTONBAR (BIT_N(2)) 36#define THEME_BUTTONBAR (BIT_N(2))
62#define THEME_LANGUAGE (BIT_N(3)) 37#define THEME_LANGUAGE (BIT_N(3))
63#define THEME_ALL (~(0u)) 38#define THEME_ALL (~(0u))
64 39
65#define VP_SB_HIDE_ALL 0
66#define VP_SB_ONSCREEN(screen) BIT_N(screen)
67#define VP_SB_IGNORE_SETTING(screen) BIT_N(4+screen)
68#define VP_SB_ALLSCREENS (VP_SB_ONSCREEN(0)|VP_SB_ONSCREEN(1))
69
70#ifndef __PCTOOL__ 40#ifndef __PCTOOL__
71/* 41/*
72 * Initialize the viewportmanager, which in turns initializes the UI vp and 42 * Initialize the viewportmanager, which in turns initializes the UI vp and
73 * statusbar stuff 43 * statusbar stuff
74 */ 44 */
75void viewportmanager_init(void); 45void viewportmanager_init(void);
76int viewportmanager_get_statusbar(void);
77int viewportmanager_set_statusbar(const int enabled);
78 46
79 47
80/* 48void viewport_set_defaults(struct viewport *vp,
81 * Initializes the given viewport with maximum dimensions minus status- and 49 const enum screen_type screen);
82 * buttonbar
83 */
84void viewport_set_fullscreen(struct viewport *vp, 50void viewport_set_fullscreen(struct viewport *vp,
85 const enum screen_type screen); 51 const enum screen_type screen);
86 52
87#ifdef HAVE_LCD_BITMAP 53#ifdef HAVE_LCD_BITMAP
54void viewportmanager_theme_enable(enum screen_type screen, bool enable,
55 struct viewport *viewport);
56
57void viewportmanager_theme_undo(enum screen_type screen);
88 58
89/* call this when a theme changed */ 59/* call this when a theme changed */
90void viewportmanager_theme_changed(const int); 60void viewportmanager_theme_changed(const int);
@@ -95,9 +65,9 @@ bool viewport_point_within_vp(const struct viewport *vp,
95#endif 65#endif
96 66
97#else /* HAVE_LCD_CHARCELL */ 67#else /* HAVE_LCD_CHARCELL */
98#define viewport_set_current_vp(a)
99#define viewport_get_current_vp() NULL
100#define viewportmanager_theme_changed(a) 68#define viewportmanager_theme_changed(a)
69#define viewportmanager_theme_enable(...)
70#define viewportmanager_theme_undo(...)
101#endif 71#endif
102 72
103#endif /* __PCTOOL__ */ 73#endif /* __PCTOOL__ */