Add var item list set item label api

This commit is contained in:
Willy-JL
2023-07-21 01:03:31 +01:00
parent df08c0f14d
commit 970d905eae
3 changed files with 18 additions and 4 deletions

View File

@@ -7,7 +7,7 @@
#include <stdint.h> #include <stdint.h>
struct VariableItem { struct VariableItem {
const char* label; FuriString* label;
uint8_t current_value_index; uint8_t current_value_index;
FuriString* current_value_text; FuriString* current_value_text;
uint8_t values_count; uint8_t values_count;
@@ -81,9 +81,9 @@ static void variable_item_list_draw_callback(Canvas* canvas, void* _model) {
if(item->current_value_index == 0 && furi_string_empty(item->current_value_text)) { if(item->current_value_index == 0 && furi_string_empty(item->current_value_text)) {
// Only left text, no right text // Only left text, no right text
canvas_draw_str(canvas, 6, item_text_y, item->label); canvas_draw_str(canvas, 6, item_text_y, furi_string_get_cstr(item->label));
} else { } else {
elements_scrollable_text_line_str( elements_scrollable_text_line_centered(
canvas, 6, item_text_y, 66, item->label, scroll_counter, false, false); canvas, 6, item_text_y, 66, item->label, scroll_counter, false, false);
} }
@@ -420,6 +420,7 @@ void variable_item_list_free(VariableItemList* variable_item_list) {
VariableItemArray_it_t it; VariableItemArray_it_t it;
for(VariableItemArray_it(it, model->items); !VariableItemArray_end_p(it); for(VariableItemArray_it(it, model->items); !VariableItemArray_end_p(it);
VariableItemArray_next(it)) { VariableItemArray_next(it)) {
furi_string_free(VariableItemArray_ref(it)->label);
furi_string_free(VariableItemArray_ref(it)->current_value_text); furi_string_free(VariableItemArray_ref(it)->current_value_text);
furi_string_free(VariableItemArray_ref(it)->locked_message); furi_string_free(VariableItemArray_ref(it)->locked_message);
} }
@@ -444,6 +445,7 @@ void variable_item_list_reset(VariableItemList* variable_item_list) {
VariableItemArray_it_t it; VariableItemArray_it_t it;
for(VariableItemArray_it(it, model->items); !VariableItemArray_end_p(it); for(VariableItemArray_it(it, model->items); !VariableItemArray_end_p(it);
VariableItemArray_next(it)) { VariableItemArray_next(it)) {
furi_string_free(VariableItemArray_ref(it)->label);
furi_string_free(VariableItemArray_ref(it)->current_value_text); furi_string_free(VariableItemArray_ref(it)->current_value_text);
furi_string_free(VariableItemArray_ref(it)->locked_message); furi_string_free(VariableItemArray_ref(it)->locked_message);
} }
@@ -472,7 +474,7 @@ VariableItem* variable_item_list_add(
VariableItemListModel * model, VariableItemListModel * model,
{ {
item = VariableItemArray_push_new(model->items); item = VariableItemArray_push_new(model->items);
item->label = label; item->label = furi_string_alloc_set(label);
item->values_count = values_count; item->values_count = values_count;
item->change_callback = change_callback; item->change_callback = change_callback;
item->context = context; item->context = context;
@@ -510,6 +512,10 @@ void variable_item_set_values_count(VariableItem* item, uint8_t values_count) {
item->values_count = values_count; item->values_count = values_count;
} }
void variable_item_set_item_label(VariableItem* item, const char* label) {
furi_string_set(item->label, label);
}
void variable_item_set_current_value_text(VariableItem* item, const char* current_value_text) { void variable_item_set_current_value_text(VariableItem* item, const char* current_value_text) {
furi_string_set(item->current_value_text, current_value_text); furi_string_set(item->current_value_text, current_value_text);
} }

View File

@@ -88,6 +88,13 @@ void variable_item_set_current_value_index(VariableItem* item, uint8_t current_v
*/ */
void variable_item_set_values_count(VariableItem* item, uint8_t values_count); void variable_item_set_values_count(VariableItem* item, uint8_t values_count);
/** Set number of values for item
*
* @param item VariableItem* instance
* @param label The new label text
*/
void variable_item_set_item_label(VariableItem* item, const char* label);
/** Set item current selected text /** Set item current selected text
* *
* @param item VariableItem* instance * @param item VariableItem* instance

View File

@@ -3135,6 +3135,7 @@ Function,+,variable_item_list_set_enter_callback,void,"VariableItemList*, Variab
Function,+,variable_item_list_set_selected_item,void,"VariableItemList*, uint8_t" Function,+,variable_item_list_set_selected_item,void,"VariableItemList*, uint8_t"
Function,+,variable_item_set_current_value_index,void,"VariableItem*, uint8_t" Function,+,variable_item_set_current_value_index,void,"VariableItem*, uint8_t"
Function,+,variable_item_set_current_value_text,void,"VariableItem*, const char*" Function,+,variable_item_set_current_value_text,void,"VariableItem*, const char*"
Function,+,variable_item_set_item_label,void,"VariableItem*, const char*"
Function,+,variable_item_set_locked,void,"VariableItem*, _Bool, const char*" Function,+,variable_item_set_locked,void,"VariableItem*, _Bool, const char*"
Function,+,variable_item_set_values_count,void,"VariableItem*, uint8_t" Function,+,variable_item_set_values_count,void,"VariableItem*, uint8_t"
Function,-,vasiprintf,int,"char**, const char*, __gnuc_va_list" Function,-,vasiprintf,int,"char**, const char*, __gnuc_va_list"
1 entry status name type params
3135 Function + variable_item_list_set_selected_item void VariableItemList*, uint8_t
3136 Function + variable_item_set_current_value_index void VariableItem*, uint8_t
3137 Function + variable_item_set_current_value_text void VariableItem*, const char*
3138 Function + variable_item_set_item_label void VariableItem*, const char*
3139 Function + variable_item_set_locked void VariableItem*, _Bool, const char*
3140 Function + variable_item_set_values_count void VariableItem*, uint8_t
3141 Function - vasiprintf int char**, const char*, __gnuc_va_list