mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
Single text draw call
This commit is contained in:
@@ -64,9 +64,13 @@ static void archive_update_formatted_path(ArchiveBrowserViewModel* model) {
|
||||
return;
|
||||
}
|
||||
|
||||
ArchiveTabEnum tab = archive_get_tab(browser);
|
||||
if(momentum_settings.browser_path_mode == BrowserPathOff || archive_is_home(browser)) {
|
||||
furi_string_set(browser->formatted_path, ArchiveTabNames[tab]);
|
||||
if(model->tab_idx == ArchiveTabSearch &&
|
||||
scene_manager_get_scene_state(model->archive->scene_manager, ArchiveAppSceneSearch)) {
|
||||
furi_string_set(browser->formatted_path, "Searching");
|
||||
|
||||
} else if(momentum_settings.browser_path_mode == BrowserPathOff || archive_is_home(browser)) {
|
||||
furi_string_set(browser->formatted_path, ArchiveTabNames[model->tab_idx]);
|
||||
|
||||
} else {
|
||||
const char* path = furi_string_get_cstr(browser->path);
|
||||
switch(momentum_settings.browser_path_mode) {
|
||||
@@ -328,14 +332,7 @@ static void draw_list(Canvas* canvas, ArchiveBrowserViewModel* model) {
|
||||
static void archive_render_status_bar(Canvas* canvas, ArchiveBrowserViewModel* model) {
|
||||
furi_assert(model);
|
||||
|
||||
const char* tab_name = ArchiveTabNames[model->tab_idx];
|
||||
if(model->tab_idx == ArchiveTabSearch &&
|
||||
scene_manager_get_scene_state(model->archive->scene_manager, ArchiveAppSceneSearch)) {
|
||||
tab_name = "Searching";
|
||||
} else {
|
||||
archive_update_formatted_path(model);
|
||||
tab_name = furi_string_get_cstr(model->archive->browser->formatted_path);
|
||||
}
|
||||
archive_update_formatted_path(model);
|
||||
bool clip = model->clipboard != NULL;
|
||||
|
||||
canvas_draw_icon(canvas, 0, 0, &I_Background_128x11);
|
||||
@@ -349,20 +346,15 @@ static void archive_render_status_bar(Canvas* canvas, ArchiveBrowserViewModel* m
|
||||
canvas_draw_rframe(canvas, 0, 0, 51, 13, 1); // frame
|
||||
canvas_draw_line(canvas, 49, 1, 49, 11); // shadow right
|
||||
canvas_draw_line(canvas, 1, 11, 49, 11); // shadow bottom
|
||||
|
||||
size_t text_width = canvas_string_width(canvas, tab_name);
|
||||
if(text_width > 45) {
|
||||
elements_scrollable_text_line(
|
||||
canvas,
|
||||
3,
|
||||
9,
|
||||
45,
|
||||
model->archive->browser->formatted_path,
|
||||
model->scroll_counter,
|
||||
false);
|
||||
} else {
|
||||
canvas_draw_str_aligned(canvas, 25, 9, AlignCenter, AlignBottom, tab_name);
|
||||
}
|
||||
elements_scrollable_text_line_centered(
|
||||
canvas,
|
||||
25,
|
||||
9,
|
||||
45,
|
||||
model->archive->browser->formatted_path,
|
||||
model->scroll_counter,
|
||||
false,
|
||||
true);
|
||||
|
||||
if(clip) {
|
||||
canvas_draw_rframe(canvas, 69, 0, 25, 13, 1);
|
||||
|
||||
Reference in New Issue
Block a user