Scrollable text support center alignment

This commit is contained in:
Willy-JL
2023-03-14 22:10:04 +00:00
parent 28593fbc43
commit 9bfcf08b22
5 changed files with 15 additions and 6 deletions
@@ -300,7 +300,8 @@ 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));
(model->item_idx != idx),
false);
furi_string_free(str_buf);
}
+7 -2
View File
@@ -580,7 +580,8 @@ void elements_scrollable_text_line(
uint8_t width,
FuriString* string,
size_t scroll,
bool ellipsis) {
bool ellipsis,
bool centered) {
FuriString* line = furi_string_alloc_set(string);
size_t len_px = canvas_string_width(canvas, furi_string_get_cstr(line));
@@ -616,7 +617,11 @@ void elements_scrollable_text_line(
}
}
canvas_draw_str(canvas, x, y, furi_string_get_cstr(line));
if (centered) {
canvas_draw_str_aligned(canvas, x, y, AlignCenter, AlignCenter, furi_string_get_cstr(line));
} else {
canvas_draw_str(canvas, x, y, furi_string_get_cstr(line));
}
furi_string_free(line);
}
+3 -1
View File
@@ -218,6 +218,7 @@ void elements_string_fit_width(Canvas* canvas, FuriString* string, uint8_t width
* @param string The string
* @param[in] scroll The scroll counter: 0 - no scroll, any other number - scroll. Just count up, everything else will be calculated on the inside.
* @param[in] ellipsis The ellipsis flag: true to add ellipse
* @param[in] centered The centered flag: true to center text on x and y
*/
void elements_scrollable_text_line(
Canvas* canvas,
@@ -226,7 +227,8 @@ void elements_scrollable_text_line(
uint8_t width,
FuriString* string,
size_t scroll,
bool ellipsis);
bool ellipsis,
bool centered);
/** Draw text box element
*
@@ -604,7 +604,8 @@ 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));
(model->item_idx != idx),
false);
}
if(show_scrollbar) {
+1 -1
View File
@@ -831,7 +831,7 @@ 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"
Function,+,elements_scrollable_text_line,void,"Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, 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"
Function,+,elements_slightly_rounded_box,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
1 entry status name type params
831 Function + elements_multiline_text_framed void Canvas*, uint8_t, uint8_t, const char*
832 Function + elements_progress_bar void Canvas*, uint8_t, uint8_t, uint8_t, float
833 Function + elements_progress_bar_with_text void Canvas*, uint8_t, uint8_t, uint8_t, float, const char*
834 Function + elements_scrollable_text_line void Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool, _Bool
835 Function + elements_scrollbar void Canvas*, uint16_t, uint16_t
836 Function + elements_scrollbar_pos void Canvas*, uint8_t, uint8_t, uint8_t, uint16_t, uint16_t
837 Function + elements_slightly_rounded_box void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t