From 290bff009719915b4b3d8efdc58a07488d374291 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 7 May 2015 10:10:08 +0200 Subject: [PATCH] Create menu_list_get_current_entry_id --- menu/menu_list.c | 22 ++++++++++++++++++++++ menu/menu_list.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/menu/menu_list.c b/menu/menu_list.c index f766934099..c03b8d5a1d 100644 --- a/menu/menu_list.c +++ b/menu/menu_list.c @@ -488,3 +488,25 @@ bool menu_list_entry_is_currently_selected(menu_entry_t *entry) return false; return (entry->id == nav->selection_ptr); } + +int menu_list_get_current_entry_id(void) +{ + size_t i; + const char *label = NULL; + menu_list_t *menu_list = menu_list_get_ptr(); + size_t end = menu_list_get_size(menu_list); + + menu_list_get_last_stack(menu_list, + NULL, &label, NULL); + + for (i = 0; i < end; i++) + { + menu_entry_t entry; + menu_list_get_entry(&entry, i, label, NULL); + + if (menu_list_entry_is_currently_selected(&entry)) + return i; + } + + return -1; +} diff --git a/menu/menu_list.h b/menu/menu_list.h index eaafb5ede8..388f15b803 100644 --- a/menu/menu_list.h +++ b/menu/menu_list.h @@ -110,6 +110,8 @@ int menu_list_populate_generic(file_list_t *list, void menu_list_get_entry(menu_entry_t *entry, size_t i, const char *label, void *userdata); +int menu_list_get_current_entry_id(void); + bool menu_list_entry_is_currently_selected(menu_entry_t *entry); #ifdef __cplusplus