diff --git a/menu/widgets/menu_entry.c b/menu/widgets/menu_entry.c index 76371f1c85..f5a368efc4 100644 --- a/menu/widgets/menu_entry.c +++ b/menu/widgets/menu_entry.c @@ -121,6 +121,29 @@ void menu_entry_get_rich_label(uint32_t i, char *s, size_t len) strlcpy(s, entry.path, len); } +void menu_entry_get_sublabel(uint32_t i, char *s, size_t len) +{ + menu_entry_t entry; + + entry.path[0] = '\0'; + entry.label[0] = '\0'; + entry.sublabel[0] = '\0'; + entry.value[0] = '\0'; + entry.rich_label[0] = '\0'; + entry.enum_idx = MSG_UNKNOWN; + entry.entry_idx = 0; + entry.idx = 0; + entry.type = 0; + entry.spacing = 0; + + menu_entry_get(&entry, 0, i, NULL, true); + + if (!string_is_empty(entry.sublabel)) + strlcpy(s, entry.sublabel, len); + else + strlcpy(s, entry.path, len); +} + void menu_entry_get_label(uint32_t i, char *s, size_t len) { menu_entry_t entry; diff --git a/menu/widgets/menu_entry.h b/menu/widgets/menu_entry.h index 741263ffeb..2c8afa9540 100644 --- a/menu/widgets/menu_entry.h +++ b/menu/widgets/menu_entry.h @@ -95,6 +95,8 @@ void menu_entry_reset(uint32_t i); void menu_entry_get_rich_label(uint32_t i, char *s, size_t len); +void menu_entry_get_sublabel(uint32_t i, char *s, size_t len); + void menu_entry_get_value(uint32_t i, void *data, char *s, size_t len); void menu_entry_set_value(uint32_t i, const char *s);