GUI: Add submenu_remove_item()

This commit is contained in:
Willy-JL
2025-03-21 05:08:29 +00:00
parent f01972ea71
commit 5ed0dc2066
3 changed files with 28 additions and 0 deletions

View File

@@ -235,6 +235,25 @@ void submenu_change_item_label(Submenu* submenu, uint32_t index, const char* lab
true);
}
void submenu_remove_item(Submenu* submenu, uint32_t index) {
furi_check(submenu);
with_view_model(
submenu->view,
SubmenuModel * model,
{
SubmenuItemArray_it_t it;
for(SubmenuItemArray_it(it, model->items); !SubmenuItemArray_end_p(it);
SubmenuItemArray_next(it)) {
if(index == SubmenuItemArray_cref(it)->index) {
SubmenuItemArray_remove(model->items, it);
break;
}
}
},
true);
}
void submenu_reset(Submenu* submenu) {
furi_check(submenu);

View File

@@ -61,6 +61,14 @@ void submenu_add_item(
*/
void submenu_change_item_label(Submenu* submenu, uint32_t index, const char* label);
/** Remove item from submenu
*
* @param submenu Submenu instance
* @param index menu item index, used for callback, may be
* the same with other items, first one is removed
*/
void submenu_remove_item(Submenu* submenu, uint32_t index);
/** Remove all items from submenu
*
* @param submenu Submenu instance