1
0
Fork 0
forked from len0rd/rockbox

get the button bar working like it used to (hopefully)

Remove tabs


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12492 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2007-02-26 08:17:07 +00:00
parent 6b704b8941
commit 1ba493e4b4

View file

@ -318,11 +318,11 @@ static char * get_menu_item_name(int selected_item,void * data, char *buffer)
} }
menu = menu->submenus[selected_item]; menu = menu->submenus[selected_item];
if (menu->flags&MENU_DYNAMIC_DESC) if (menu->flags&MENU_DYNAMIC_DESC)
return menu->menu_get_name_and_icon->list_get_name(selected_item, return menu->menu_get_name_and_icon->list_get_name(selected_item,
menu->menu_get_name_and_icon->list_get_name_data, buffer); menu->menu_get_name_and_icon->list_get_name_data, buffer);
type = (menu->flags&MENU_TYPE_MASK); type = (menu->flags&MENU_TYPE_MASK);
if (type == MT_SETTING) if (type == MT_SETTING)
{ {
@ -338,15 +338,15 @@ static char * get_menu_item_name(int selected_item,void * data, char *buffer)
static void menu_get_icon(int selected_item, void * data, ICON * icon) static void menu_get_icon(int selected_item, void * data, ICON * icon)
{ {
const struct menu_item_ex *menu = (const struct menu_item_ex *)data; const struct menu_item_ex *menu = (const struct menu_item_ex *)data;
ICON menu_icon = NOICON; ICON menu_icon = NOICON;
selected_item = get_menu_selection(selected_item, menu); selected_item = get_menu_selection(selected_item, menu);
menu = menu->submenus[selected_item]; menu = menu->submenus[selected_item];
if (menu->flags&MENU_HAS_DESC) if (menu->flags&MENU_HAS_DESC)
menu_icon = menu->callback_and_desc->icon; menu_icon = menu->callback_and_desc->icon;
else if (menu->flags&MENU_DYNAMIC_DESC) else if (menu->flags&MENU_DYNAMIC_DESC)
menu_icon = menu->menu_get_name_and_icon->icon; menu_icon = menu->menu_get_name_and_icon->icon;
switch (menu->flags&MENU_TYPE_MASK) switch (menu->flags&MENU_TYPE_MASK)
{ {
case MT_SETTING: case MT_SETTING:
@ -446,119 +446,119 @@ static void talk_menu_item(const struct menu_item_ex *menu,
/* returns true if the menu needs to be redrwan */ /* returns true if the menu needs to be redrwan */
bool do_setting_from_menu(const struct menu_item_ex *temp) bool do_setting_from_menu(const struct menu_item_ex *temp)
{ {
int setting_id; int setting_id;
const struct settings_list *setting = find_setting( const struct settings_list *setting = find_setting(
temp->variable, temp->variable,
&setting_id); &setting_id);
bool ret_val = false; bool ret_val = false;
if (setting) if (setting)
{ {
if ((setting->flags&F_BOOL_SETTING) == F_BOOL_SETTING) if ((setting->flags&F_BOOL_SETTING) == F_BOOL_SETTING)
{ {
bool temp_var, *var; bool temp_var, *var;
bool show_icons = global_settings.show_icons; bool show_icons = global_settings.show_icons;
if (setting->flags&F_TEMPVAR) if (setting->flags&F_TEMPVAR)
{ {
temp_var = *(bool*)setting->setting; temp_var = *(bool*)setting->setting;
var = &temp_var; var = &temp_var;
} }
else else
{ {
var = (bool*)setting->setting; var = (bool*)setting->setting;
} }
set_bool_options(str(setting->lang_id),var, set_bool_options(str(setting->lang_id),var,
STR(setting->bool_setting->lang_yes), STR(setting->bool_setting->lang_yes),
STR(setting->bool_setting->lang_no), STR(setting->bool_setting->lang_no),
setting->bool_setting->option_callback); setting->bool_setting->option_callback);
if (setting->flags&F_TEMPVAR) if (setting->flags&F_TEMPVAR)
*(bool*)setting->setting = temp_var; *(bool*)setting->setting = temp_var;
if (show_icons != global_settings.show_icons) if (show_icons != global_settings.show_icons)
ret_val = true; ret_val = true;
} }
else if (setting->flags&F_T_SOUND) else if (setting->flags&F_T_SOUND)
{ {
set_sound(str(setting->lang_id), setting->setting, set_sound(str(setting->lang_id), setting->setting,
setting->sound_setting->setting); setting->sound_setting->setting);
} }
else /* other setting, must be an INT type */ else /* other setting, must be an INT type */
{ {
int temp_var, *var; int temp_var, *var;
if (setting->flags&F_TEMPVAR) if (setting->flags&F_TEMPVAR)
{ {
temp_var = *(int*)setting->setting; temp_var = *(int*)setting->setting;
var = &temp_var; var = &temp_var;
} }
else else
{ {
var = (int*)setting->setting; var = (int*)setting->setting;
} }
if (setting->flags&F_INT_SETTING) if (setting->flags&F_INT_SETTING)
{ {
int min, max, step; int min, max, step;
if (setting->flags&F_FLIPLIST) if (setting->flags&F_FLIPLIST)
{ {
min = setting->int_setting->max; min = setting->int_setting->max;
max = setting->int_setting->min; max = setting->int_setting->min;
step = -setting->int_setting->step; step = -setting->int_setting->step;
} }
else else
{ {
max = setting->int_setting->max; max = setting->int_setting->max;
min = setting->int_setting->min; min = setting->int_setting->min;
step = setting->int_setting->step; step = setting->int_setting->step;
} }
set_int_ex(str(setting->lang_id), set_int_ex(str(setting->lang_id),
NULL, NULL,
setting->int_setting->unit,var, setting->int_setting->unit,var,
setting->int_setting->option_callback, setting->int_setting->option_callback,
step, min, max, step, min, max,
setting->int_setting->formatter, setting->int_setting->formatter,
setting->int_setting->get_talk_id); setting->int_setting->get_talk_id);
} }
else if (setting->flags&F_CHOICE_SETTING) else if (setting->flags&F_CHOICE_SETTING)
{ {
static struct opt_items options[MAX_OPTIONS]; static struct opt_items options[MAX_OPTIONS];
char buffer[256]; char buffer[256];
char *buf_start = buffer; char *buf_start = buffer;
int buf_free = 256; int buf_free = 256;
int i,j, count = setting->choice_setting->count; int i,j, count = setting->choice_setting->count;
for (i=0, j=0; i<count && i<MAX_OPTIONS; i++) for (i=0, j=0; i<count && i<MAX_OPTIONS; i++)
{ {
if (setting->flags&F_CHOICETALKS) if (setting->flags&F_CHOICETALKS)
{ {
if (cfg_int_to_string(setting_id, i, if (cfg_int_to_string(setting_id, i,
buf_start, buf_free)) buf_start, buf_free))
{ {
int len = strlen(buf_start) +1; int len = strlen(buf_start) +1;
options[j].string = buf_start; options[j].string = buf_start;
buf_start += len; buf_start += len;
buf_free -= len; buf_free -= len;
options[j].voice_id = options[j].voice_id =
setting->choice_setting->talks[i]; setting->choice_setting->talks[i];
j++; j++;
} }
} }
else else
{ {
options[j].string = options[j].string =
P2STR(setting-> P2STR(setting->
choice_setting->desc[i]); choice_setting->desc[i]);
options[j].voice_id = options[j].voice_id =
P2ID(setting-> P2ID(setting->
choice_setting->desc[i]); choice_setting->desc[i]);
j++; j++;
} }
} }
set_option(str(setting->lang_id), var, INT, set_option(str(setting->lang_id), var, INT,
options,j, options,j,
setting-> setting->
choice_setting->option_callback); choice_setting->option_callback);
} }
if (setting->flags&F_TEMPVAR) if (setting->flags&F_TEMPVAR)
*(int*)setting->setting = temp_var; *(int*)setting->setting = temp_var;
} }
} }
return ret_val; return ret_val;
} }
int do_menu(const struct menu_item_ex *start_menu) int do_menu(const struct menu_item_ex *start_menu)
@ -568,7 +568,10 @@ int do_menu(const struct menu_item_ex *start_menu)
struct gui_synclist lists; struct gui_synclist lists;
const struct menu_item_ex *temp, *menu; const struct menu_item_ex *temp, *menu;
int ret = 0; int ret = 0;
#ifdef HAS_BUTTONBAR
struct gui_buttonbar buttonbar;
#endif
const struct menu_item_ex *menu_stack[MAX_MENUS]; const struct menu_item_ex *menu_stack[MAX_MENUS];
int menu_stack_selected_item[MAX_MENUS]; int menu_stack_selected_item[MAX_MENUS];
int stack_top = 0; int stack_top = 0;
@ -577,7 +580,12 @@ int do_menu(const struct menu_item_ex *start_menu)
if (start_menu == NULL) if (start_menu == NULL)
menu = &main_menu_; menu = &main_menu_;
else menu = start_menu; else menu = start_menu;
#ifdef HAS_BUTTONBAR
gui_buttonbar_init(&buttonbar);
gui_buttonbar_set_display(&buttonbar, &(screens[SCREEN_MAIN]) );
gui_buttonbar_set(&buttonbar, "<<<", "", "");
gui_buttonbar_draw(&buttonbar);
#endif
init_menu_lists(menu,&lists,selected,true); init_menu_lists(menu,&lists,selected,true);
in_stringlist = ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID); in_stringlist = ((menu->flags&MENU_TYPE_MASK) == MT_RETURN_ID);
@ -637,6 +645,10 @@ int do_menu(const struct menu_item_ex *start_menu)
else if (action == ACTION_STD_OK) else if (action == ACTION_STD_OK)
{ {
int type; int type;
#ifdef HAS_BUTTONBAR
gui_buttonbar_unset(&buttonbar);
gui_buttonbar_draw(&buttonbar);
#endif
selected = get_menu_selection(gui_synclist_get_sel_pos(&lists), menu); selected = get_menu_selection(gui_synclist_get_sel_pos(&lists), menu);
temp = menu->submenus[selected]; temp = menu->submenus[selected];
if (in_stringlist) if (in_stringlist)
@ -676,7 +688,7 @@ int do_menu(const struct menu_item_ex *start_menu)
case MT_SETTING: case MT_SETTING:
{ {
if (do_setting_from_menu(temp)) if (do_setting_from_menu(temp))
init_menu_lists(menu, &lists, 0, true); init_menu_lists(menu, &lists, 0, true);
break; break;
} }
case MT_RETURN_ID: case MT_RETURN_ID:
@ -700,6 +712,10 @@ int do_menu(const struct menu_item_ex *start_menu)
menu_callback(ACTION_EXIT_MENUITEM,temp); menu_callback(ACTION_EXIT_MENUITEM,temp);
/* callback was changed, so reload the menu's callback */ /* callback was changed, so reload the menu's callback */
get_menu_callback(menu, &menu_callback); get_menu_callback(menu, &menu_callback);
#ifdef HAS_BUTTONBAR
gui_buttonbar_set(&buttonbar, "<<<", "", "");
gui_buttonbar_draw(&buttonbar);
#endif
} }
else if(default_event_handler(action) == SYS_USB_CONNECTED) else if(default_event_handler(action) == SYS_USB_CONNECTED)
ret = MENU_ATTACHED_USB; ret = MENU_ATTACHED_USB;