From a35c26b7a5ba209e784e450d2d6a2f10d20e69e4 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 12 May 2015 10:35:37 +0200 Subject: [PATCH] Create menu_displaylist_push_list --- menu/menu_displaylist.c | 24 ++++++++++++++++++++++++ menu/menu_displaylist.h | 8 ++++++++ menu/menu_entries.c | 8 ++------ 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index ca7f4dd959..80450ccd43 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -17,6 +17,7 @@ #include "menu_display.h" #include "menu_entries.h" #include "menu_displaylist.h" +#include "menu_navigation.h" int menu_displaylist_deferred_push(menu_displaylist_info_t *info) { @@ -46,6 +47,29 @@ int menu_displaylist_deferred_push(menu_displaylist_info_t *info) return cbs->action_deferred_push(info->list, info->menu_list, path, label, type); } +int menu_displaylist_push_list(unsigned type) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + menu_list_t *menu_list = menu_list_get_ptr(); + menu_navigation_t *nav = menu_navigation_get_ptr(); + + switch (type) + { + case DISPLAYLIST_NONE: + break; + case DISPLAYLIST_MAIN_MENU: + menu->list_settings = setting_new(SL_FLAG_ALL); + + menu_list_push(menu_list->menu_stack, "", "Main Menu", MENU_SETTINGS, 0); + menu_navigation_clear(nav, true); + menu_entries_push_list(menu, menu_list->selection_buf, + "", "Main Menu", 0, SL_FLAG_MAIN_MENU); + break; + } + + return 0; +} + int menu_displaylist_push(file_list_t *list, file_list_t *menu_list) { int ret; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 7f5a0aacf4..a070b8ab86 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -24,6 +24,12 @@ extern "C" { #endif +enum +{ + DISPLAYLIST_NONE = 0, + DISPLAYLIST_MAIN_MENU, +}; + typedef struct menu_displaylist_info { file_list_t *list; @@ -36,6 +42,8 @@ typedef struct menu_displaylist_info int menu_displaylist_deferred_push(menu_displaylist_info_t *info); +int menu_displaylist_push_list(unsigned type); + 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 25e822a7ad..5a6fb36ef3 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -14,6 +14,7 @@ * If not, see . */ +#include "menu_displaylist.h" #include "menu_entries.h" #include "menu_setting.h" #include "menu_navigation.h" @@ -497,12 +498,7 @@ bool menu_entries_init(menu_handle_t *menu) if (!menu) return false; - menu->list_settings = setting_new(SL_FLAG_ALL); - - menu_list_push(menu->menu_list->menu_stack, "", "Main Menu", MENU_SETTINGS, 0); - menu_navigation_clear(&menu->navigation, true); - menu_entries_push_list(menu, menu->menu_list->selection_buf, - "", "Main Menu", 0, SL_FLAG_MAIN_MENU); + menu_displaylist_push_list(DISPLAYLIST_MAIN_MENU); return true; }