From f68cffef8df991b5f97e47caa980610e888c8af7 Mon Sep 17 00:00:00 2001 From: Giacomo Ferretti Date: Wed, 11 Jan 2023 00:35:22 +0100 Subject: [PATCH] Add function to add a lockable submenu item This will prevent to break existing apps --- applications/services/gui/modules/submenu.c | 9 +++++++++ applications/services/gui/modules/submenu.h | 18 ++++++++++++++++++ firmware/targets/f7/api_symbols.csv | 1 + 3 files changed, 28 insertions(+) diff --git a/applications/services/gui/modules/submenu.c b/applications/services/gui/modules/submenu.c index 34d5b5942..71aa4720c 100644 --- a/applications/services/gui/modules/submenu.c +++ b/applications/services/gui/modules/submenu.c @@ -261,6 +261,15 @@ View* submenu_get_view(Submenu* submenu) { } void submenu_add_item( + Submenu* submenu, + const char* label, + uint32_t index, + SubmenuItemCallback callback, + void* callback_context) { + submenu_add_lockable_item(submenu, label, index, callback, callback_context, false, NULL); +} + +void submenu_add_lockable_item( Submenu* submenu, const char* label, uint32_t index, diff --git a/applications/services/gui/modules/submenu.h b/applications/services/gui/modules/submenu.h index e7f8a61a2..e7252eb33 100644 --- a/applications/services/gui/modules/submenu.h +++ b/applications/services/gui/modules/submenu.h @@ -47,6 +47,24 @@ View* submenu_get_view(Submenu* submenu); * @param callback_context menu item callback context */ void submenu_add_item( + Submenu* submenu, + const char* label, + uint32_t index, + SubmenuItemCallback callback, + void* callback_context); + +/** Add lockable item to submenu + * + * @param submenu Submenu instance + * @param label menu item label + * @param index menu item index, used for callback, may be + * the same with other items + * @param callback menu item callback + * @param callback_context menu item callback context + * @param locked menu item locked status + * @param locked_message menu item locked message + */ +void submenu_add_lockable_item( Submenu* submenu, const char* label, uint32_t index, diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 13a6395f3..dea9b9a73 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -3414,6 +3414,7 @@ Function,+,subghz_worker_set_pair_callback,void,"SubGhzWorker*, SubGhzWorkerPair Function,+,subghz_worker_start,void,SubGhzWorker* Function,+,subghz_worker_stop,void,SubGhzWorker* Function,+,submenu_add_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*" +Function,+,submenu_add_lockable_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*, _Bool, const char*" Function,+,submenu_alloc,Submenu*, Function,+,submenu_free,void,Submenu* Function,+,submenu_get_view,View*,Submenu*