diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2009-12-09 07:25:46 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2009-12-09 07:25:46 +0000 |
commit | b2eb44ce0eb24632a46b0ea8c8c46a8f2ba35e24 (patch) | |
tree | ff3c0e14e9a53c08749ee1f233a5b1e887d3561a /apps/gui/viewport.h | |
parent | 85aad9b3972208b0e34ba0241ebb5314118ae05e (diff) | |
download | rockbox-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.h | 48 |
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 */ |
32 | int viewport_get_nb_lines(const struct viewport *vp); | 32 | int viewport_get_nb_lines(const struct viewport *vp); |
33 | 33 | ||
34 | void 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 | */ |
75 | void viewportmanager_init(void); | 45 | void viewportmanager_init(void); |
76 | int viewportmanager_get_statusbar(void); | ||
77 | int viewportmanager_set_statusbar(const int enabled); | ||
78 | 46 | ||
79 | 47 | ||
80 | /* | 48 | void 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 | */ | ||
84 | void viewport_set_fullscreen(struct viewport *vp, | 50 | void 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 |
54 | void viewportmanager_theme_enable(enum screen_type screen, bool enable, | ||
55 | struct viewport *viewport); | ||
56 | |||
57 | void viewportmanager_theme_undo(enum screen_type screen); | ||
88 | 58 | ||
89 | /* call this when a theme changed */ | 59 | /* call this when a theme changed */ |
90 | void viewportmanager_theme_changed(const int); | 60 | void 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__ */ |