From cd25f8874a47abac871fa5444dc291ba6d9ad056 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 12 May 2015 10:28:29 +0200 Subject: [PATCH] Rename menu_entries_deferred_push to menu_displaylist_deferred_push --- menu/menu_displaylist.c | 37 +++++++++++++++++++++++++++++- menu/menu_displaylist.h | 3 +++ menu/menu_entries.c | 25 -------------------- menu/menu_entries.h | 2 -- ui/drivers/cocoa/cocoatouch_menu.m | 24 +++++++++++-------- 5 files changed, 53 insertions(+), 38 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 56e76cb6f2..ca7f4dd959 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -16,12 +16,47 @@ #include "menu.h" #include "menu_display.h" #include "menu_entries.h" +#include "menu_displaylist.h" + +int menu_displaylist_deferred_push(menu_displaylist_info_t *info) +{ + unsigned type = 0; + const char *path = NULL; + const char *label = NULL; + menu_file_list_cbs_t *cbs = NULL; + menu_handle_t *menu = menu_driver_get_ptr(); + + if (!info->list) + return -1; + + menu_list_get_last_stack(menu->menu_list, &path, &label, &type); + + if (!strcmp(label, "Main Menu")) + return menu_entries_push_list(menu, info->list, path, label, type, + SL_FLAG_MAIN_MENU); + else if (!strcmp(label, "Horizontal Menu")) + return menu_entries_push_horizontal_menu_list(menu, info->list, path, label, type); + + cbs = (menu_file_list_cbs_t*) + menu_list_get_last_stack_actiondata(menu->menu_list); + + if (!cbs->action_deferred_push) + return 0; + + return cbs->action_deferred_push(info->list, info->menu_list, path, label, type); +} int menu_displaylist_push(file_list_t *list, file_list_t *menu_list) { + int ret; menu_handle_t *menu = menu_driver_get_ptr(); driver_t *driver = driver_get_ptr(); - int ret = menu_entries_deferred_push(list, menu_list); + menu_displaylist_info_t info = {0}; + + info.list = list; + info.menu_list = menu_list; + + ret = menu_displaylist_deferred_push(&info); menu->need_refresh = false; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 938c02f819..7f5a0aacf4 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -27,12 +27,15 @@ extern "C" { typedef struct menu_displaylist_info { file_list_t *list; + file_list_t *menu_list; char path[PATH_MAX_LENGTH]; char label[PATH_MAX_LENGTH]; unsigned type; unsigned flags; } menu_displaylist_info_t; +int menu_displaylist_deferred_push(menu_displaylist_info_t *info); + int menu_displaylist_push(file_list_t *list, file_list_t *menu_list); #ifdef __cplusplus diff --git a/menu/menu_entries.c b/menu/menu_entries.c index 27e0703805..25e822a7ad 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -484,31 +484,6 @@ int menu_entries_parse_list( return 0; } -int menu_entries_deferred_push(file_list_t *list, file_list_t *menu_list) -{ - unsigned type = 0; - const char *path = NULL; - const char *label = NULL; - menu_file_list_cbs_t *cbs = NULL; - menu_handle_t *menu = menu_driver_get_ptr(); - - menu_list_get_last_stack(menu->menu_list, &path, &label, &type); - - if (!strcmp(label, "Main Menu")) - return menu_entries_push_list(menu, list, path, label, type, - SL_FLAG_MAIN_MENU); - else if (!strcmp(label, "Horizontal Menu")) - return menu_entries_push_horizontal_menu_list(menu, list, path, label, type); - - cbs = (menu_file_list_cbs_t*) - menu_list_get_last_stack_actiondata(menu->menu_list); - - if (!cbs->action_deferred_push) - return 0; - - return cbs->action_deferred_push(list, menu_list, path, label, type); -} - /** * menu_entries_init: * @menu : Menu handle. diff --git a/menu/menu_entries.h b/menu/menu_entries.h index 0da1b82af9..428bcc52f4 100644 --- a/menu/menu_entries.h +++ b/menu/menu_entries.h @@ -38,8 +38,6 @@ void menu_entries_cbs_init_bind_toggle(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, const char *elem0, const char *elem1, const char *menu_label); -int menu_entries_deferred_push(file_list_t *list, file_list_t *menu_list); - /** * menu_entries_init: * @menu : Menu handle. diff --git a/ui/drivers/cocoa/cocoatouch_menu.m b/ui/drivers/cocoa/cocoatouch_menu.m index 2794571827..44d9097d14 100644 --- a/ui/drivers/cocoa/cocoatouch_menu.m +++ b/ui/drivers/cocoa/cocoatouch_menu.m @@ -25,6 +25,7 @@ #include "../../../input/input_keymaps.h" #include "../../../input/drivers/cocoa_input.h" +#include "../../../menu/menu_displaylist.h" #include "../../../menu/menu_entries.h" #include "../../../menu/menu_navigation.h" #include "../../../menu/menu_list.h" @@ -769,16 +770,19 @@ didSelectRowAtIndexPath:(NSIndexPath *)indexPath - (void)menuRefresh { - menu_handle_t *menu = menu_driver_get_ptr(); - menu_list_t *menu_list = menu_list_get_ptr(); - if (!menu || !menu_list) - return; - if (!menu->need_refresh) - return; - - menu_entries_deferred_push(menu_list->selection_buf, - menu_list->menu_stack); - menu->need_refresh = false; + menu_displaylist_info_t info = {0}; + menu_handle_t *menu = menu_driver_get_ptr(); + menu_list_t *menu_list = menu_list_get_ptr(); + if (!menu || !menu_list) + return; + if (!menu->need_refresh) + return; + + info.list = menu_list->selection_buf; + info.menu_list = menu_list->menu_stack; + + menu_displaylist_deferred_push(&info); + menu->need_refresh = false; } - (void)menuBack