Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolay Minaylov <nm29719@gmail.com>2021-11-04 22:33:28 +0300
committerGitHub <noreply@github.com>2021-11-04 22:33:28 +0300
commitf8d3cc251c1d8d8a56c50208de78396c80ec6de1 (patch)
tree3961260df438c68157dc19c6609232a3c1c9966c /applications/gui
parent3225f408708fafde07d942645c6e739f1c399db4 (diff)
[FL-1984, FL-2004, FL-2010] USB CDC Fixes (#801)
* [FL-1984, FL-2004] USB-UART Fixes, test with high timer task priority * added forgotten file * switch from EventFlags to ThreadFlags * [FL-1984, FL-2010] USB-UART and furi-hal-vcp rework * Scripts: modernize string formatting. Co-authored-by: あく <alleteam@gmail.com>
Diffstat (limited to 'applications/gui')
-rw-r--r--[-rwxr-xr-x]applications/gui/modules/variable-item-list.c36
-rwxr-xr-xapplications/gui/modules/variable-item-list.h4
2 files changed, 39 insertions, 1 deletions
diff --git a/applications/gui/modules/variable-item-list.c b/applications/gui/modules/variable-item-list.c
index 800e0602..03f04cb6 100755..100644
--- a/applications/gui/modules/variable-item-list.c
+++ b/applications/gui/modules/variable-item-list.c
@@ -84,6 +84,40 @@ static void variable_item_list_draw_callback(Canvas* canvas, void* _model) {
elements_scrollbar(canvas, model->position, VariableItemArray_size(model->items));
}
+void variable_item_list_set_selected_item(VariableItemList* variable_item_list, uint8_t index) {
+ with_view_model(
+ variable_item_list->view, (VariableItemListModel * model) {
+ uint8_t position = index;
+ if(position >= VariableItemArray_size(model->items)) {
+ position = 0;
+ }
+
+ model->position = position;
+ model->window_position = position;
+
+ if(model->window_position > 0) {
+ model->window_position -= 1;
+ }
+
+ if(VariableItemArray_size(model->items) <= 4) {
+ model->window_position = 0;
+ } else {
+ if(model->window_position >= (VariableItemArray_size(model->items) - 4)) {
+ model->window_position = (VariableItemArray_size(model->items) - 4);
+ }
+ }
+
+ return true;
+ });
+}
+
+uint8_t variable_item_list_get_selected_item_index(VariableItemList* variable_item_list) {
+ VariableItemListModel* model = view_get_model(variable_item_list->view);
+ uint8_t idx = model->position;
+ view_commit_model(variable_item_list->view, false);
+ return idx;
+}
+
static bool variable_item_list_input_callback(InputEvent* event, void* context) {
VariableItemList* variable_item_list = context;
furi_assert(variable_item_list);
@@ -323,4 +357,4 @@ uint8_t variable_item_get_current_value_index(VariableItem* item) {
void* variable_item_get_context(VariableItem* item) {
return item->context;
-} \ No newline at end of file
+}
diff --git a/applications/gui/modules/variable-item-list.h b/applications/gui/modules/variable-item-list.h
index e1e3cbf7..b67a02e6 100755
--- a/applications/gui/modules/variable-item-list.h
+++ b/applications/gui/modules/variable-item-list.h
@@ -70,6 +70,10 @@ void variable_item_list_set_enter_callback(
VariableItemListEnterCallback callback,
void* context);
+void variable_item_list_set_selected_item(VariableItemList* variable_item_list, uint8_t index);
+
+uint8_t variable_item_list_get_selected_item_index(VariableItemList* variable_item_list);
+
/** Set item current selected index
*
* @param item VariableItem* instance