diff --git a/applications/services/gui/modules/menu.c b/applications/services/gui/modules/menu.c index c455952c7..87c27d57d 100644 --- a/applications/services/gui/modules/menu.c +++ b/applications/services/gui/modules/menu.c @@ -405,6 +405,18 @@ void menu_reset(Menu* menu) { true); } +void menu_set_selected_item(Menu* menu, uint32_t index) { + with_view_model( + menu->view, + MenuModel * model, + { + if(index < MenuItemArray_size(model->items)) { + model->position = index; + } + }, + true); +} + static void menu_process_up(Menu* menu) { MenuStyle menu_style = XTREME_SETTINGS()->menu_style; if(menu_style == MenuStyleDsi || menu_style == MenuStyleVertical) return; diff --git a/applications/services/gui/modules/menu.h b/applications/services/gui/modules/menu.h index 34c446214..f66514a71 100644 --- a/applications/services/gui/modules/menu.h +++ b/applications/services/gui/modules/menu.h @@ -61,6 +61,13 @@ void menu_add_item( */ void menu_reset(Menu* menu); +/** Set current menu item + * + * @param menu Menu instance + * @param index The index + */ +void menu_set_selected_item(Menu* menu, uint32_t index); + #ifdef __cplusplus } #endif diff --git a/firmware/targets/f18/api_symbols.csv b/firmware/targets/f18/api_symbols.csv index 256cf25f6..8dd50b537 100644 --- a/firmware/targets/f18/api_symbols.csv +++ b/firmware/targets/f18/api_symbols.csv @@ -1665,6 +1665,7 @@ Function,+,menu_alloc,Menu*, Function,+,menu_free,void,Menu* Function,+,menu_get_view,View*,Menu* Function,+,menu_reset,void,Menu* +Function,+,menu_set_selected_item,void,"Menu*, uint32_t" Function,-,mkdtemp,char*,char* Function,-,mkostemp,int,"char*, int" Function,-,mkostemps,int,"char*, int, int" diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 1f590c3b2..559823f9f 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -2019,6 +2019,7 @@ Function,+,menu_alloc,Menu*, Function,+,menu_free,void,Menu* Function,+,menu_get_view,View*,Menu* Function,+,menu_reset,void,Menu* +Function,+,menu_set_selected_item,void,"Menu*, uint32_t" Function,-,mf_classic_auth_attempt,_Bool,"FuriHalNfcTxRxContext*, Crypto1*, MfClassicAuthContext*, uint64_t" Function,-,mf_classic_auth_init_context,void,"MfClassicAuthContext*, uint8_t" Function,-,mf_classic_auth_write_block,_Bool,"FuriHalNfcTxRxContext*, MfClassicBlock*, uint8_t, MfClassicKey, uint64_t"