From 2ace7723979a1b3cc6ee9846055e0543b4b64105 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Fri, 14 Jul 2023 13:45:01 +0200 Subject: [PATCH] OFW compatible elements_scrollable_text_line --- .../main/archive/views/archive_browser_view.c | 3 +-- applications/services/gui/elements.c | 12 ++++++++++++ applications/services/gui/elements.h | 8 ++++++++ applications/services/gui/modules/file_browser.c | 3 +-- applications/services/gui/modules/menu.c | 2 +- .../services/gui/modules/variable_item_list.c | 3 +-- firmware/targets/f7/api_symbols.csv | 3 ++- 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/applications/main/archive/views/archive_browser_view.c b/applications/main/archive/views/archive_browser_view.c index 7bc608040f..2f0bd3878e 100644 --- a/applications/main/archive/views/archive_browser_view.c +++ b/applications/main/archive/views/archive_browser_view.c @@ -246,8 +246,7 @@ static void draw_list(Canvas* canvas, ArchiveBrowserViewModel* model) { ((scrollbar ? MAX_LEN_PX - 6 : MAX_LEN_PX) - x_offset), str_buf, scroll_counter, - (model->item_idx != idx), - false); + (model->item_idx != idx)); furi_string_free(str_buf); } diff --git a/applications/services/gui/elements.c b/applications/services/gui/elements.c index fc5609a364..f70a9f2320 100644 --- a/applications/services/gui/elements.c +++ b/applications/services/gui/elements.c @@ -632,6 +632,18 @@ void elements_scrollable_text_line_str( } void elements_scrollable_text_line( + Canvas* canvas, + uint8_t x, + uint8_t y, + uint8_t width, + FuriString* string, + size_t scroll, + bool ellipsis) { + elements_scrollable_text_line_str( + canvas, x, y, width, furi_string_get_cstr(string), scroll, ellipsis, false); +} + +void elements_scrollable_text_line_centered( Canvas* canvas, uint8_t x, uint8_t y, diff --git a/applications/services/gui/elements.h b/applications/services/gui/elements.h index 7cab3a67f7..e8029f75b9 100644 --- a/applications/services/gui/elements.h +++ b/applications/services/gui/elements.h @@ -230,6 +230,14 @@ void elements_scrollable_text_line_str( bool ellipsis, bool centered); void elements_scrollable_text_line( + Canvas* canvas, + uint8_t x, + uint8_t y, + uint8_t width, + FuriString* string, + size_t scroll, + bool ellipsis); +void elements_scrollable_text_line_centered( Canvas* canvas, uint8_t x, uint8_t y, diff --git a/applications/services/gui/modules/file_browser.c b/applications/services/gui/modules/file_browser.c index 4ffecbf66c..089b0b6b71 100644 --- a/applications/services/gui/modules/file_browser.c +++ b/applications/services/gui/modules/file_browser.c @@ -619,8 +619,7 @@ static void browser_draw_list(Canvas* canvas, FileBrowserModel* model) { (show_scrollbar ? MAX_LEN_PX - 6 : MAX_LEN_PX), filename, scroll_counter, - (model->item_idx != idx), - false); + (model->item_idx != idx)); } if(show_scrollbar) { diff --git a/applications/services/gui/modules/menu.c b/applications/services/gui/modules/menu.c index fecefb3c0b..29c5b41319 100644 --- a/applications/services/gui/modules/menu.c +++ b/applications/services/gui/modules/menu.c @@ -91,7 +91,7 @@ static void menu_draw_callback(Canvas* canvas, void* _model) { furi_string_right(name, trim + 2); } } - elements_scrollable_text_line( + elements_scrollable_text_line_centered( canvas, 20 + x_off, 26 + y_off, 36, name, scroll_counter, false, true); if(item_i == position) { canvas_set_color(canvas, ColorBlack); diff --git a/applications/services/gui/modules/variable_item_list.c b/applications/services/gui/modules/variable_item_list.c index 225118586c..e37af509aa 100644 --- a/applications/services/gui/modules/variable_item_list.c +++ b/applications/services/gui/modules/variable_item_list.c @@ -101,8 +101,7 @@ static void variable_item_list_draw_callback(Canvas* canvas, void* _model) { 37, item->current_value_text, scroll_counter, - false, - true); + false); if(item->current_value_index < (item->values_count - 1)) { canvas_draw_str(canvas, 115, item_text_y, ">"); diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 91e27443ad..0671c52118 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -832,7 +832,8 @@ Function,+,elements_multiline_text_aligned,void,"Canvas*, uint8_t, uint8_t, Alig Function,+,elements_multiline_text_framed,void,"Canvas*, uint8_t, uint8_t, const char*" Function,+,elements_progress_bar,void,"Canvas*, uint8_t, uint8_t, uint8_t, float" Function,+,elements_progress_bar_with_text,void,"Canvas*, uint8_t, uint8_t, uint8_t, float, const char*" -Function,+,elements_scrollable_text_line,void,"Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool, _Bool" +Function,+,elements_scrollable_text_line,void,"Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool" +Function,+,elements_scrollable_text_line_centered,void,"Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool, _Bool" Function,+,elements_scrollable_text_line_str,void,"Canvas*, uint8_t, uint8_t, uint8_t, const char*, size_t, _Bool, _Bool" Function,+,elements_scrollbar,void,"Canvas*, uint16_t, uint16_t" Function,+,elements_scrollbar_pos,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint16_t, uint16_t"