Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev --nobuild

This commit is contained in:
Willy-JL
2024-05-15 02:13:07 +01:00
37 changed files with 371 additions and 77 deletions

View File

@@ -138,7 +138,8 @@ void elements_multiline_text_aligned(
/** Draw multiline text
*
* @param canvas Canvas instance
* @param x, y top left corner coordinates
* @param x top left corner coordinates
* @param y top left corner coordinates
* @param text string (possible multiline)
*/
void elements_multiline_text(Canvas* canvas, int32_t x, int32_t y, const char* text);
@@ -146,7 +147,8 @@ void elements_multiline_text(Canvas* canvas, int32_t x, int32_t y, const char* t
/** Draw framed multiline text
*
* @param canvas Canvas instance
* @param x, y top left corner coordinates
* @param x top left corner coordinates
* @param y top left corner coordinates
* @param text string (possible multiline)
*/
void elements_multiline_text_framed(Canvas* canvas, int32_t x, int32_t y, const char* text);
@@ -154,8 +156,10 @@ void elements_multiline_text_framed(Canvas* canvas, int32_t x, int32_t y, const
/** Draw slightly rounded frame
*
* @param canvas Canvas instance
* @param x, y top left corner coordinates
* @param width, height size of frame
* @param x top left corner coordinates
* @param y top left corner coordinates
* @param width width of frame
* @param height height of frame
*/
void elements_slightly_rounded_frame(
Canvas* canvas,
@@ -167,8 +171,10 @@ void elements_slightly_rounded_frame(
/** Draw slightly rounded box
*
* @param canvas Canvas instance
* @param x, y top left corner coordinates
* @param width, height size of box
* @param x top left corner coordinates
* @param y top left corner coordinates
* @param width height of box
* @param height height of box
*/
void elements_slightly_rounded_box(
Canvas* canvas,
@@ -180,8 +186,10 @@ void elements_slightly_rounded_box(
/** Draw bold rounded frame
*
* @param canvas Canvas instance
* @param x, y top left corner coordinates
* @param width, height size of frame
* @param x top left corner coordinates
* @param y top left corner coordinates
* @param width width of frame
* @param height height of frame
*/
void elements_bold_rounded_frame(Canvas* canvas, int32_t x, int32_t y, size_t width, size_t height);

View File

@@ -311,6 +311,26 @@ void submenu_add_lockable_item(
true);
}
void submenu_change_item_label(Submenu* submenu, uint32_t index, const char* label) {
furi_check(submenu);
furi_check(label);
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) {
furi_string_set_str(SubmenuItemArray_cref(it)->label, label);
break;
}
}
},
true);
}
void submenu_reset(Submenu* submenu) {
furi_check(submenu);
view_set_orientation(submenu->view, ViewOrientationHorizontal);
@@ -328,6 +348,25 @@ void submenu_reset(Submenu* submenu) {
true);
}
uint32_t submenu_get_selected_item(Submenu* submenu) {
furi_check(submenu);
uint32_t selected_item_index = 0;
with_view_model(
submenu->view,
SubmenuModel * model,
{
if(model->position < SubmenuItemArray_size(model->items)) {
const SubmenuItem* item = SubmenuItemArray_cget(model->items, model->position);
selected_item_index = item->index;
}
},
false);
return selected_item_index;
}
void submenu_set_selected_item(Submenu* submenu, uint32_t index) {
furi_check(submenu);
with_view_model(

View File

@@ -53,6 +53,14 @@ void submenu_add_item(
SubmenuItemCallback callback,
void* callback_context);
/** Change label of an existing item
*
* @param submenu Submenu instance
* @param index The index of the item
* @param label The new label
*/
void submenu_change_item_label(Submenu* submenu, uint32_t index, const char* label);
/** Add lockable item to submenu
*
* @param submenu Submenu instance
@@ -79,10 +87,18 @@ void submenu_add_lockable_item(
*/
void submenu_reset(Submenu* submenu);
/** Set submenu item selector
/** Get submenu selected item index
*
* @param submenu Submenu instance
* @param index The index
*
* @return Index of the selected item
*/
uint32_t submenu_get_selected_item(Submenu* submenu);
/** Set submenu selected item by index
*
* @param submenu Submenu instance
* @param index The index of the selected item
*/
void submenu_set_selected_item(Submenu* submenu, uint32_t index);