1
0
mirror of https://github.com/libretro/RetroArch synced 2025-02-18 00:40:36 +00:00

(menu) Start passing menu_handle to action_ok callback

This commit is contained in:
twinaphex 2018-04-10 18:39:03 +02:00
parent 6e299065ce
commit d2a1c39f4b
6 changed files with 297 additions and 205 deletions

File diff suppressed because it is too large Load Diff

@ -107,7 +107,11 @@ static int action_select_default(const char *path, const char *label, unsigned t
static int action_select_path_use_directory(const char *path,
const char *label, unsigned type, size_t idx)
{
return action_ok_path_use_directory(path, label, type, idx, 0 /* unused */);
menu_handle_t *menu = NULL;
if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
return menu_cbs_exit();
return action_ok_path_use_directory(menu,
path, label, type, idx, 0 /* unused */);
}
static int action_select_driver_setting(const char *path, const char *label, unsigned type,

@ -133,21 +133,26 @@ int action_refresh_default(file_list_t *list, file_list_t *menu_list);
int shader_action_parameter_right(unsigned type, const char *label, bool wraparound);
int generic_action_ok_displaylist_push(const char *path, const char *new_path,
int generic_action_ok_displaylist_push(void *data,
const char *path, const char *new_path,
const char *label, unsigned type, size_t idx, size_t entry_idx,
unsigned action_type);
int action_ok_push_generic_list(void *data,
const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
int action_ok_path_use_directory(void *data,
const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
int action_ok_directory_push(void *data,
const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
int generic_action_cheat_toggle(size_t idx, unsigned type, const char *label,
bool wraparound);
int action_ok_push_generic_list(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
int action_ok_path_use_directory(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
int action_ok_directory_push(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
int core_setting_right(unsigned type, const char *label,
bool wraparound);

@ -1706,7 +1706,8 @@ bool menu_driver_iterate(menu_ctx_iterate_t *iterate)
menu_entries_flush_stack(NULL, MENU_SETTINGS);
menu_display_set_msg_force(true);
generic_action_ok_displaylist_push("", NULL,
generic_action_ok_displaylist_push(menu_driver_data,
"", NULL,
"", 0, 0, 0, ACTION_OK_DL_CONTENT_SETTINGS);
if (menu_driver_pending_quit)

@ -107,7 +107,8 @@ typedef struct menu_file_list_cbs
size_t idx);
int (*action_get_title)(const char *path, const char *label,
unsigned type, char *s, size_t len);
int (*action_ok)(const char *path, const char *label, unsigned type,
int (*action_ok)(void *data,
const char *path, const char *label, unsigned type,
size_t idx, size_t entry_idx);
int (*action_cancel)(const char *path, const char *label, unsigned type,
size_t idx);

@ -448,9 +448,15 @@ int menu_entry_action(menu_entry_t *entry, unsigned i, enum menu_action action)
break;
case MENU_ACTION_OK:
if (cbs && cbs->action_ok)
ret = cbs->action_ok(entry->path,
entry->label, entry->type, i, entry->entry_idx);
{
menu_handle_t *menu = NULL;
menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu);
if (cbs && cbs->action_ok)
ret = cbs->action_ok(menu, entry->path,
entry->label, entry->type, i, entry->entry_idx);
}
break;
case MENU_ACTION_START:
if (cbs && cbs->action_start)