Commit | Line | Data |
---|---|---|
34cea7f7 | 1 | #include "../cache.h" |
7da5c85d NK |
2 | #include "../progress.h" |
3 | #include "../libslang.h" | |
4 | #include "../ui.h" | |
4779a2e9 | 5 | #include "tui.h" |
7da5c85d | 6 | #include "../browser.h" |
34cea7f7 | 7 | |
4d3001fd | 8 | static void tui_progress__update(struct ui_progress *p) |
34cea7f7 | 9 | { |
ca59bcbc | 10 | int bar, y; |
34cea7f7 ACM |
11 | /* |
12 | * FIXME: We should have a per UI backend way of showing progress, | |
13 | * stdio will just show a percentage as NN%, etc. | |
14 | */ | |
15 | if (use_browser <= 0) | |
16 | return; | |
34cea7f7 | 17 | |
4d3001fd | 18 | if (p->total == 0) |
18b55235 ACM |
19 | return; |
20 | ||
71172ed9 | 21 | ui__refresh_dimensions(true); |
ca59bcbc ACM |
22 | pthread_mutex_lock(&ui__lock); |
23 | y = SLtt_Screen_Rows / 2 - 2; | |
24 | SLsmg_set_color(0); | |
25 | SLsmg_draw_box(y, 0, 3, SLtt_Screen_Cols); | |
26 | SLsmg_gotorc(y++, 1); | |
4d3001fd | 27 | SLsmg_write_string((char *)p->title); |
ca59bcbc | 28 | SLsmg_set_color(HE_COLORSET_SELECTED); |
4d3001fd | 29 | bar = ((SLtt_Screen_Cols - 2) * p->curr) / p->total; |
ca59bcbc ACM |
30 | SLsmg_fill_region(y, 1, 1, bar, ' '); |
31 | SLsmg_refresh(); | |
32 | pthread_mutex_unlock(&ui__lock); | |
34cea7f7 | 33 | } |
688f2f5b | 34 | |
4779a2e9 | 35 | static struct ui_progress_ops tui_progress__ops = |
688f2f5b NK |
36 | { |
37 | .update = tui_progress__update, | |
38 | }; | |
39 | ||
4779a2e9 | 40 | void tui_progress__init(void) |
688f2f5b | 41 | { |
4779a2e9 | 42 | ui_progress__ops = &tui_progress__ops; |
688f2f5b | 43 | } |