2 #include "../progress.h"
3 #include "../libslang.h"
6 #include "../browser.h"
8 static void tui_progress__update(struct ui_progress
*p
)
12 * FIXME: We should have a per UI backend way of showing progress,
13 * stdio will just show a percentage as NN%, etc.
21 ui__refresh_dimensions(false);
22 pthread_mutex_lock(&ui__lock
);
23 y
= SLtt_Screen_Rows
/ 2 - 2;
25 SLsmg_draw_box(y
, 0, 3, SLtt_Screen_Cols
);
27 SLsmg_write_string((char *)p
->title
);
28 SLsmg_fill_region(y
, 1, 1, SLtt_Screen_Cols
- 2, ' ');
29 SLsmg_set_color(HE_COLORSET_SELECTED
);
30 bar
= ((SLtt_Screen_Cols
- 2) * p
->curr
) / p
->total
;
31 SLsmg_fill_region(y
, 1, 1, bar
, ' ');
33 pthread_mutex_unlock(&ui__lock
);
36 static void tui_progress__finish(void)
43 ui__refresh_dimensions(false);
44 pthread_mutex_lock(&ui__lock
);
45 y
= SLtt_Screen_Rows
/ 2 - 2;
47 SLsmg_fill_region(y
, 0, 3, SLtt_Screen_Cols
, ' ');
49 pthread_mutex_unlock(&ui__lock
);
52 static struct ui_progress_ops tui_progress__ops
=
54 .update
= tui_progress__update
,
55 .finish
= tui_progress__finish
,
58 void tui_progress__init(void)
60 ui_progress__ops
= &tui_progress__ops
;