Refactor menu_action_handle_setting

This commit is contained in:
twinaphex 2014-10-28 20:12:21 +01:00
parent 074aa76b90
commit 7248e45f81

View File

@ -97,8 +97,8 @@ int menu_action_setting_set_current_string_path(
return 0; return 0;
} }
static int menu_entries_set_current_path_selection( static int menu_entries_action_ok_set_current_path_selection(
rarch_setting_t *setting, const char *start_path, rarch_setting_t *setting, const char *path,
const char *label, unsigned type, const char *label, unsigned type,
unsigned action) unsigned action)
{ {
@ -107,7 +107,7 @@ static int menu_entries_set_current_path_selection(
case MENU_ACTION_OK: case MENU_ACTION_OK:
menu_list_push_stack_refresh( menu_list_push_stack_refresh(
driver.menu->menu_list, driver.menu->menu_list,
start_path, path,
label, label,
type, type,
driver.menu->selection_ptr); driver.menu->selection_ptr);
@ -115,10 +115,6 @@ static int menu_entries_set_current_path_selection(
if (setting->cmd_trigger.idx != RARCH_CMD_NONE) if (setting->cmd_trigger.idx != RARCH_CMD_NONE)
setting->cmd_trigger.triggered = true; setting->cmd_trigger.triggered = true;
break; break;
case MENU_ACTION_START:
if (setting->action_start)
setting->action_start(setting);
break;
} }
if (setting->change_handler) if (setting->change_handler)
@ -142,6 +138,11 @@ int menu_action_handle_setting(rarch_setting_t *setting,
switch (setting->type) switch (setting->type)
{ {
case ST_PATH:
if (action == MENU_ACTION_OK)
return menu_entries_action_ok_set_current_path_selection(setting,
setting->default_value.string, setting->name, type, action);
/* fall-through */
case ST_BOOL: case ST_BOOL:
case ST_INT: case ST_INT:
case ST_UINT: case ST_UINT:
@ -151,9 +152,6 @@ int menu_action_handle_setting(rarch_setting_t *setting,
case ST_BIND: case ST_BIND:
case ST_ACTION: case ST_ACTION:
return setting_handler(setting, action); return setting_handler(setting, action);
case ST_PATH:
return menu_entries_set_current_path_selection(setting,
setting->default_value.string, setting->name, type, action);
default: default:
break; break;
} }