]>
Commit | Line | Data |
---|---|---|
34cea7f7 ACM |
1 | #include "../cache.h" |
2 | #include "progress.h" | |
ca59bcbc ACM |
3 | #include "libslang.h" |
4 | #include "ui.h" | |
5 | #include "browser.h" | |
34cea7f7 | 6 | |
ca59bcbc | 7 | void ui_progress__update(u64 curr, u64 total, const char *title) |
34cea7f7 | 8 | { |
ca59bcbc | 9 | int bar, y; |
34cea7f7 ACM |
10 | /* |
11 | * FIXME: We should have a per UI backend way of showing progress, | |
12 | * stdio will just show a percentage as NN%, etc. | |
13 | */ | |
14 | if (use_browser <= 0) | |
15 | return; | |
34cea7f7 | 16 | |
71172ed9 | 17 | ui__refresh_dimensions(true); |
ca59bcbc ACM |
18 | pthread_mutex_lock(&ui__lock); |
19 | y = SLtt_Screen_Rows / 2 - 2; | |
20 | SLsmg_set_color(0); | |
21 | SLsmg_draw_box(y, 0, 3, SLtt_Screen_Cols); | |
22 | SLsmg_gotorc(y++, 1); | |
23 | SLsmg_write_string((char *)title); | |
24 | SLsmg_set_color(HE_COLORSET_SELECTED); | |
25 | bar = ((SLtt_Screen_Cols - 2) * curr) / total; | |
26 | SLsmg_fill_region(y, 1, 1, bar, ' '); | |
27 | SLsmg_refresh(); | |
28 | pthread_mutex_unlock(&ui__lock); | |
34cea7f7 | 29 | } |