summaryrefslogtreecommitdiff
path: root/apps/menus
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-09-07 17:37:06 +0000
committerThomas Martitz <kugel@rockbox.org>2009-09-07 17:37:06 +0000
commit2eb1cb6f826a6542b3947f36a57130de235e530e (patch)
treed6ade8f11719173c858f606ad123240a72abc553 /apps/menus
parent47611321c0adafa4125070ac83aa56817504e579 (diff)
downloadrockbox-2eb1cb6f826a6542b3947f36a57130de235e530e.tar.gz
rockbox-2eb1cb6f826a6542b3947f36a57130de235e530e.zip
Fix buttonbar handling/theme changed handling in lists.
The lists need to copy to a local parent if a list passes NULL as parent in the init. This was before the commit of custom ui vp, but I removed it since I (wrongly) thought using the ui vp as parent would be fine. Let the viewportmanager fire a event in case when a theme-related setting changed and simply the handling in the lists code. However the buttonbar handling didn't work before anyway, since list code didn't know if the buttonbar was active (it asked a variable which was always false....). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22651 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menus')
-rw-r--r--apps/menus/theme_menu.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/apps/menus/theme_menu.c b/apps/menus/theme_menu.c
index b4505de4b3..38e052b262 100644
--- a/apps/menus/theme_menu.c
+++ b/apps/menus/theme_menu.c
@@ -38,6 +38,7 @@
38#include "backdrop.h" 38#include "backdrop.h"
39#include "exported_menus.h" 39#include "exported_menus.h"
40#include "appevents.h" 40#include "appevents.h"
41#include "viewport.h"
41 42
42#if LCD_DEPTH > 1 43#if LCD_DEPTH > 1
43/** 44/**
@@ -177,6 +178,20 @@ static int statusbar_callback(int action,const struct menu_item_ex *this_item)
177{ 178{
178 return statusbar_callback_ex(action, this_item, SCREEN_MAIN); 179 return statusbar_callback_ex(action, this_item, SCREEN_MAIN);
179} 180}
181
182#ifdef HAVE_BUTTONBAR
183static int buttonbar_callback(int action, const struct menu_item_ex *this_item)
184{
185 (void)this_item;
186 switch (action)
187 {
188 case ACTION_EXIT_MENUITEM:
189 viewportmanager_theme_changed(THEME_BUTTONBAR);
190 break;
191 }
192 return ACTION_REDRAW;
193}
194#endif
180MENUITEM_SETTING(scrollbar_item, &global_settings.scrollbar, NULL); 195MENUITEM_SETTING(scrollbar_item, &global_settings.scrollbar, NULL);
181MENUITEM_SETTING(scrollbar_width, &global_settings.scrollbar_width, NULL); 196MENUITEM_SETTING(scrollbar_width, &global_settings.scrollbar_width, NULL);
182MENUITEM_SETTING(statusbar, &global_settings.statusbar, 197MENUITEM_SETTING(statusbar, &global_settings.statusbar,
@@ -185,8 +200,8 @@ MENUITEM_SETTING(statusbar, &global_settings.statusbar,
185MENUITEM_SETTING(remote_statusbar, &global_settings.remote_statusbar, 200MENUITEM_SETTING(remote_statusbar, &global_settings.remote_statusbar,
186 statusbar_callback_remote); 201 statusbar_callback_remote);
187#endif 202#endif
188#if CONFIG_KEYPAD == RECORDER_PAD 203#ifdef HAVE_BUTTONBAR
189MENUITEM_SETTING(buttonbar, &global_settings.buttonbar, NULL); 204MENUITEM_SETTING(buttonbar, &global_settings.buttonbar, buttonbar_callback);
190#endif 205#endif
191MENUITEM_SETTING(volume_type, &global_settings.volume_type, NULL); 206MENUITEM_SETTING(volume_type, &global_settings.volume_type, NULL);
192MENUITEM_SETTING(battery_display, &global_settings.battery_display, NULL); 207MENUITEM_SETTING(battery_display, &global_settings.battery_display, NULL);