diff options
author | Thomas Martitz <kugel@rockbox.org> | 2010-01-26 20:14:42 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2010-01-26 20:14:42 +0000 |
commit | 5629d551d710bd57a1cef129ce5a69b76cbbdd12 (patch) | |
tree | 1196849b9a02ebf39fa5d6c33df1db9334aeead2 /apps | |
parent | 7a73a9cd4e882ebbc37831160ec18d0f251f14bd (diff) | |
download | rockbox-5629d551d710bd57a1cef129ce5a69b76cbbdd12.tar.gz rockbox-5629d551d710bd57a1cef129ce5a69b76cbbdd12.zip |
Accept the last patch FS#10797 with a few changes by me (fixing side effects and adding the new backdrop_hide() to the multi screen api). It changes the hide_bars parameter to mean hide_theme.
This makes plugins show the menu backdrop in their backdrop so that they don't look like crap if you have an sbs and look more integrated. I've test about all plugins and all work fine.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24335 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/gui/backdrop.c | 13 | ||||
-rw-r--r-- | apps/gui/backdrop.h | 4 | ||||
-rw-r--r-- | apps/gui/viewport.c | 6 | ||||
-rw-r--r-- | apps/gui/wps.c | 3 | ||||
-rw-r--r-- | apps/menu.c | 14 | ||||
-rw-r--r-- | apps/menu.h | 2 | ||||
-rw-r--r-- | apps/plugin.h | 2 | ||||
-rw-r--r-- | apps/plugins/pictureflow/pictureflow.c | 15 | ||||
-rw-r--r-- | apps/screen_access.c | 2 | ||||
-rw-r--r-- | apps/screen_access.h | 1 |
10 files changed, 45 insertions, 17 deletions
diff --git a/apps/gui/backdrop.c b/apps/gui/backdrop.c index c220d06493..7e56dcb7db 100644 --- a/apps/gui/backdrop.c +++ b/apps/gui/backdrop.c | |||
@@ -124,6 +124,12 @@ void backdrop_show(enum backdrop_type bdrop) | |||
124 | show_skin_backdrop(); | 124 | show_skin_backdrop(); |
125 | } | 125 | } |
126 | 126 | ||
127 | void backdrop_hide(void) | ||
128 | { | ||
129 | lcd_set_backdrop(NULL); | ||
130 | } | ||
131 | |||
132 | |||
127 | 133 | ||
128 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 | 134 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 |
129 | 135 | ||
@@ -201,4 +207,11 @@ void remote_backdrop_unload(enum backdrop_type bdrop) | |||
201 | } | 207 | } |
202 | 208 | ||
203 | 209 | ||
210 | void remote_backdrop_hide(void) | ||
211 | { | ||
212 | lcd_remote_set_backdrop(NULL); | ||
213 | } | ||
214 | |||
204 | #endif | 215 | #endif |
216 | |||
217 | |||
diff --git a/apps/gui/backdrop.h b/apps/gui/backdrop.h index b37071b5d4..4083464cee 100644 --- a/apps/gui/backdrop.h +++ b/apps/gui/backdrop.h | |||
@@ -35,6 +35,7 @@ enum backdrop_type { | |||
35 | bool backdrop_load(enum backdrop_type bdrop, const char*); | 35 | bool backdrop_load(enum backdrop_type bdrop, const char*); |
36 | void backdrop_unload(enum backdrop_type bdrop); | 36 | void backdrop_unload(enum backdrop_type bdrop); |
37 | void backdrop_show(enum backdrop_type bdrop); | 37 | void backdrop_show(enum backdrop_type bdrop); |
38 | void backdrop_hide(void); | ||
38 | 39 | ||
39 | #else /* LCD_DEPTH <= 1 || __PCTOOL__ */ | 40 | #else /* LCD_DEPTH <= 1 || __PCTOOL__ */ |
40 | 41 | ||
@@ -52,6 +53,7 @@ static inline void backdrop_show(enum backdrop_type bdrop) | |||
52 | (void)bdrop; | 53 | (void)bdrop; |
53 | } | 54 | } |
54 | 55 | ||
56 | static inline void backdrop_hide(void) {} | ||
55 | #endif | 57 | #endif |
56 | 58 | ||
57 | #if defined(HAVE_REMOTE_LCD) | 59 | #if defined(HAVE_REMOTE_LCD) |
@@ -60,6 +62,7 @@ static inline void backdrop_show(enum backdrop_type bdrop) | |||
60 | bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename); | 62 | bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename); |
61 | void remote_backdrop_unload(enum backdrop_type bdrop); | 63 | void remote_backdrop_unload(enum backdrop_type bdrop); |
62 | void remote_backdrop_show(enum backdrop_type bdrop); | 64 | void remote_backdrop_show(enum backdrop_type bdrop); |
65 | void remote_backdrop_hide(void); | ||
63 | #else | 66 | #else |
64 | static inline | 67 | static inline |
65 | bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename) | 68 | bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename) |
@@ -76,6 +79,7 @@ static inline void remote_backdrop_show(enum backdrop_type bdrop) | |||
76 | { | 79 | { |
77 | (void)bdrop; | 80 | (void)bdrop; |
78 | } | 81 | } |
82 | static inline void remote_backdrop_hide(void) {} | ||
79 | #endif | 83 | #endif |
80 | #endif | 84 | #endif |
81 | 85 | ||
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index 22eccc161f..3c5249cff9 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c | |||
@@ -89,6 +89,8 @@ static void toggle_theme(enum screen_type screen, bool force) | |||
89 | add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, false, | 89 | add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, false, |
90 | do_sbs_update_callback); | 90 | do_sbs_update_callback); |
91 | 91 | ||
92 | screens[screen].backdrop_show(BACKDROP_MAIN); | ||
93 | |||
92 | /* remove the left overs from the previous screen. | 94 | /* remove the left overs from the previous screen. |
93 | * could cause a tiny flicker. Redo your screen code if that happens */ | 95 | * could cause a tiny flicker. Redo your screen code if that happens */ |
94 | if (!was_enabled[screen] || force) | 96 | if (!was_enabled[screen] || force) |
@@ -142,7 +144,11 @@ static void toggle_theme(enum screen_type screen, bool force) | |||
142 | else | 144 | else |
143 | { | 145 | { |
144 | FOR_NB_SCREENS(i) | 146 | FOR_NB_SCREENS(i) |
147 | { | ||
148 | screens[i].backdrop_hide(); | ||
145 | screens[i].stop_scroll(); | 149 | screens[i].stop_scroll(); |
150 | } | ||
151 | |||
146 | #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) | 152 | #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) |
147 | remove_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback); | 153 | remove_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback); |
148 | #endif | 154 | #endif |
diff --git a/apps/gui/wps.c b/apps/gui/wps.c index 14fb848ebe..a5394981ae 100644 --- a/apps/gui/wps.c +++ b/apps/gui/wps.c | |||
@@ -611,6 +611,7 @@ static void gwps_enter_wps(void) | |||
611 | vp->bg_pattern = display->get_background(); | 611 | vp->bg_pattern = display->get_background(); |
612 | } | 612 | } |
613 | #endif | 613 | #endif |
614 | display->backdrop_show(BACKDROP_SKIN_WPS); | ||
614 | skin_update(gwps, WPS_REFRESH_ALL); | 615 | skin_update(gwps, WPS_REFRESH_ALL); |
615 | } | 616 | } |
616 | } | 617 | } |
@@ -1180,8 +1181,6 @@ long gui_wps_show(void) | |||
1180 | /* we remove the update delay since it's not very usable in the wps, | 1181 | /* we remove the update delay since it's not very usable in the wps, |
1181 | * e.g. during volume changing or ffwd/rewind */ | 1182 | * e.g. during volume changing or ffwd/rewind */ |
1182 | sb_skin_set_update_delay(0); | 1183 | sb_skin_set_update_delay(0); |
1183 | FOR_NB_SCREENS(i) | ||
1184 | gui_wps[i].display->backdrop_show(BACKDROP_SKIN_WPS); | ||
1185 | wps_sync_data.do_full_update = update = false; | 1184 | wps_sync_data.do_full_update = update = false; |
1186 | gwps_enter_wps(); | 1185 | gwps_enter_wps(); |
1187 | } | 1186 | } |
diff --git a/apps/menu.c b/apps/menu.c index 88f0f3c529..eb29b43f3b 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -335,7 +335,7 @@ void do_setting_from_menu(const struct menu_item_ex *temp, | |||
335 | 335 | ||
336 | /* display a menu */ | 336 | /* display a menu */ |
337 | int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | 337 | int do_menu(const struct menu_item_ex *start_menu, int *start_selected, |
338 | struct viewport parent[NB_SCREENS], bool hide_bars) | 338 | struct viewport parent[NB_SCREENS], bool hide_theme) |
339 | { | 339 | { |
340 | int selected = start_selected? *start_selected : 0; | 340 | int selected = start_selected? *start_selected : 0; |
341 | int action; | 341 | int action; |
@@ -344,7 +344,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
344 | int ret = 0, i; | 344 | int ret = 0, i; |
345 | bool redraw_lists; | 345 | bool redraw_lists; |
346 | FOR_NB_SCREENS(i) | 346 | FOR_NB_SCREENS(i) |
347 | viewportmanager_theme_enable(i, !hide_bars, NULL); | 347 | viewportmanager_theme_enable(i, !hide_theme, NULL); |
348 | 348 | ||
349 | const struct menu_item_ex *menu_stack[MAX_MENUS]; | 349 | const struct menu_item_ex *menu_stack[MAX_MENUS]; |
350 | int menu_stack_selected_item[MAX_MENUS]; | 350 | int menu_stack_selected_item[MAX_MENUS]; |
@@ -363,7 +363,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
363 | menu = &main_menu_; | 363 | menu = &main_menu_; |
364 | else menu = start_menu; | 364 | else menu = start_menu; |
365 | 365 | ||
366 | /* if hide_bars is true, assume parent has been fixed before passed into | 366 | /* if hide_theme is true, assume parent has been fixed before passed into |
367 | * this function, e.g. with viewport_set_defaults(parent, screen) */ | 367 | * this function, e.g. with viewport_set_defaults(parent, screen) */ |
368 | init_menu_lists(menu, &lists, selected, true, parent); | 368 | init_menu_lists(menu, &lists, selected, true, parent); |
369 | vps = *(lists.parent); | 369 | vps = *(lists.parent); |
@@ -373,7 +373,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
373 | 373 | ||
374 | 374 | ||
375 | #ifdef HAVE_BUTTONBAR | 375 | #ifdef HAVE_BUTTONBAR |
376 | if (!hide_bars) | 376 | if (!hide_theme) |
377 | { | 377 | { |
378 | gui_buttonbar_set(&buttonbar, "<<<", "", ""); | 378 | gui_buttonbar_set(&buttonbar, "<<<", "", ""); |
379 | gui_buttonbar_draw(&buttonbar); | 379 | gui_buttonbar_draw(&buttonbar); |
@@ -382,7 +382,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
382 | while (!done) | 382 | while (!done) |
383 | { | 383 | { |
384 | redraw_lists = false; | 384 | redraw_lists = false; |
385 | if (!hide_bars) | 385 | if (!hide_theme) |
386 | { | 386 | { |
387 | #ifdef HAVE_BUTTONBAR | 387 | #ifdef HAVE_BUTTONBAR |
388 | gui_buttonbar_draw(&buttonbar); | 388 | gui_buttonbar_draw(&buttonbar); |
@@ -551,7 +551,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
551 | screens[i].scroll_stop(&vps[i]); | 551 | screens[i].scroll_stop(&vps[i]); |
552 | } | 552 | } |
553 | #ifdef HAVE_BUTTONBAR | 553 | #ifdef HAVE_BUTTONBAR |
554 | if (!hide_bars) | 554 | if (!hide_theme) |
555 | { | 555 | { |
556 | gui_buttonbar_unset(&buttonbar); | 556 | gui_buttonbar_unset(&buttonbar); |
557 | gui_buttonbar_draw(&buttonbar); | 557 | gui_buttonbar_draw(&buttonbar); |
@@ -653,7 +653,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
653 | break; | 653 | break; |
654 | } | 654 | } |
655 | #ifdef HAVE_BUTTONBAR | 655 | #ifdef HAVE_BUTTONBAR |
656 | if (!hide_bars) | 656 | if (!hide_theme) |
657 | { | 657 | { |
658 | gui_buttonbar_set(&buttonbar, "<<<", "", ""); | 658 | gui_buttonbar_set(&buttonbar, "<<<", "", ""); |
659 | gui_buttonbar_draw(&buttonbar); | 659 | gui_buttonbar_draw(&buttonbar); |
diff --git a/apps/menu.h b/apps/menu.h index b386b7ce4b..b5bab90981 100644 --- a/apps/menu.h +++ b/apps/menu.h | |||
@@ -121,7 +121,7 @@ void do_setting_from_menu(const struct menu_item_ex *temp, | |||
121 | If NULL it is ignored and the firs item starts selected | 121 | If NULL it is ignored and the firs item starts selected |
122 | */ | 122 | */ |
123 | int do_menu(const struct menu_item_ex *menu, int *start_selected, | 123 | int do_menu(const struct menu_item_ex *menu, int *start_selected, |
124 | struct viewport parent[NB_SCREENS], bool hide_bars); | 124 | struct viewport parent[NB_SCREENS], bool hide_theme); |
125 | 125 | ||
126 | /* In all the following macros the argument names are as follows: | 126 | /* In all the following macros the argument names are as follows: |
127 | - name: The name for the variable (so it can be used in a MAKE_MENU() | 127 | - name: The name for the variable (so it can be used in a MAKE_MENU() |
diff --git a/apps/plugin.h b/apps/plugin.h index cf16eef94f..a7a6203e53 100644 --- a/apps/plugin.h +++ b/apps/plugin.h | |||
@@ -659,7 +659,7 @@ struct plugin_api { | |||
659 | 659 | ||
660 | /* menu */ | 660 | /* menu */ |
661 | int (*do_menu)(const struct menu_item_ex *menu, int *start_selected, | 661 | int (*do_menu)(const struct menu_item_ex *menu, int *start_selected, |
662 | struct viewport parent[NB_SCREENS], bool hide_bars); | 662 | struct viewport parent[NB_SCREENS], bool hide_theme); |
663 | 663 | ||
664 | /* scroll bar */ | 664 | /* scroll bar */ |
665 | struct gui_syncstatusbar *statusbars; | 665 | struct gui_syncstatusbar *statusbars; |
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index eab1d0a00a..b3f81444bb 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c | |||
@@ -2019,6 +2019,7 @@ void update_scroll_animation(void) | |||
2019 | void cleanup(void *parameter) | 2019 | void cleanup(void *parameter) |
2020 | { | 2020 | { |
2021 | (void) parameter; | 2021 | (void) parameter; |
2022 | int i; | ||
2022 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 2023 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
2023 | rb->cpu_boost(false); | 2024 | rb->cpu_boost(false); |
2024 | #endif | 2025 | #endif |
@@ -2029,6 +2030,8 @@ void cleanup(void *parameter) | |||
2029 | #ifdef USEGSLIB | 2030 | #ifdef USEGSLIB |
2030 | grey_release(); | 2031 | grey_release(); |
2031 | #endif | 2032 | #endif |
2033 | FOR_NB_SCREENS(i) | ||
2034 | rb->viewportmanager_theme_undo(i, false); | ||
2032 | } | 2035 | } |
2033 | 2036 | ||
2034 | /** | 2037 | /** |
@@ -2076,7 +2079,7 @@ int settings_menu(void) | |||
2076 | }; | 2079 | }; |
2077 | 2080 | ||
2078 | do { | 2081 | do { |
2079 | selection=rb->do_menu(&settings_menu,&selection, NULL, false); | 2082 | selection=rb->do_menu(&settings_menu,&selection, NULL, true); |
2080 | switch(selection) { | 2083 | switch(selection) { |
2081 | case 0: | 2084 | case 0: |
2082 | rb->set_bool("Show FPS", &show_fps); | 2085 | rb->set_bool("Show FPS", &show_fps); |
@@ -2168,7 +2171,7 @@ int main_menu(void) | |||
2168 | #endif | 2171 | #endif |
2169 | "Settings", "Return", "Quit"); | 2172 | "Settings", "Return", "Quit"); |
2170 | while (1) { | 2173 | while (1) { |
2171 | switch (rb->do_menu(&main_menu,&selection, NULL, false)) { | 2174 | switch (rb->do_menu(&main_menu,&selection, NULL, true)) { |
2172 | case PF_GOTO_WPS: /* WPS */ | 2175 | case PF_GOTO_WPS: /* WPS */ |
2173 | return -2; | 2176 | return -2; |
2174 | #if PF_PLAYBACK_CAPABLE | 2177 | #if PF_PLAYBACK_CAPABLE |
@@ -2732,11 +2735,11 @@ int main(void) | |||
2732 | 2735 | ||
2733 | enum plugin_status plugin_start(const void *parameter) | 2736 | enum plugin_status plugin_start(const void *parameter) |
2734 | { | 2737 | { |
2735 | int ret; | 2738 | int ret, i; |
2736 | (void) parameter; | 2739 | (void) parameter; |
2737 | #if LCD_DEPTH > 1 | 2740 | |
2738 | rb->lcd_set_backdrop(NULL); | 2741 | FOR_NB_SCREENS(i) |
2739 | #endif | 2742 | rb->viewportmanager_theme_enable(i, false, NULL); |
2740 | /* Turn off backlight timeout */ | 2743 | /* Turn off backlight timeout */ |
2741 | backlight_force_on(); /* backlight control in lib/helper.c */ | 2744 | backlight_force_on(); /* backlight control in lib/helper.c */ |
2742 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 2745 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
diff --git a/apps/screen_access.c b/apps/screen_access.c index 19ab77654e..8267ce3ecd 100644 --- a/apps/screen_access.c +++ b/apps/screen_access.c | |||
@@ -202,6 +202,7 @@ struct screen screens[NB_SCREENS] = | |||
202 | .backdrop_load=&backdrop_load, | 202 | .backdrop_load=&backdrop_load, |
203 | .backdrop_unload=&backdrop_unload, | 203 | .backdrop_unload=&backdrop_unload, |
204 | .backdrop_show=&backdrop_show, | 204 | .backdrop_show=&backdrop_show, |
205 | .backdrop_hide=&backdrop_hide, | ||
205 | #ifdef HAVE_BUTTONBAR | 206 | #ifdef HAVE_BUTTONBAR |
206 | .has_buttonbar=false, | 207 | .has_buttonbar=false, |
207 | #endif | 208 | #endif |
@@ -288,6 +289,7 @@ struct screen screens[NB_SCREENS] = | |||
288 | .backdrop_load=&remote_backdrop_load, | 289 | .backdrop_load=&remote_backdrop_load, |
289 | .backdrop_unload=&remote_backdrop_unload, | 290 | .backdrop_unload=&remote_backdrop_unload, |
290 | .backdrop_show=&remote_backdrop_show, | 291 | .backdrop_show=&remote_backdrop_show, |
292 | .backdrop_hide=&remote_backdrop_hide, | ||
291 | #ifdef HAVE_BUTTONBAR | 293 | #ifdef HAVE_BUTTONBAR |
292 | .has_buttonbar=false, | 294 | .has_buttonbar=false, |
293 | #endif | 295 | #endif |
diff --git a/apps/screen_access.h b/apps/screen_access.h index be6247886e..396a0d0e88 100644 --- a/apps/screen_access.h +++ b/apps/screen_access.h | |||
@@ -150,6 +150,7 @@ struct screen | |||
150 | bool (*backdrop_load)(enum backdrop_type bdrop, const char* filename); | 150 | bool (*backdrop_load)(enum backdrop_type bdrop, const char* filename); |
151 | void (*backdrop_unload)(enum backdrop_type bdrop); | 151 | void (*backdrop_unload)(enum backdrop_type bdrop); |
152 | void (*backdrop_show)(enum backdrop_type bdrop); | 152 | void (*backdrop_show)(enum backdrop_type bdrop); |
153 | void (*backdrop_hide)(void); | ||
153 | }; | 154 | }; |
154 | 155 | ||
155 | #if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD) | 156 | #if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD) |