17da5c85dSNamhyung Kim #include "../cache.h" 27da5c85dSNamhyung Kim #include "../progress.h" 37da5c85dSNamhyung Kim #include "../libslang.h" 47da5c85dSNamhyung Kim #include "../ui.h" 54779a2e9SArnaldo Carvalho de Melo #include "tui.h" 67da5c85dSNamhyung Kim #include "../browser.h" 77da5c85dSNamhyung Kim 84d3001fdSArnaldo Carvalho de Melo static void tui_progress__update(struct ui_progress *p) 97da5c85dSNamhyung Kim { 107da5c85dSNamhyung Kim int bar, y; 117da5c85dSNamhyung Kim /* 127da5c85dSNamhyung Kim * FIXME: We should have a per UI backend way of showing progress, 137da5c85dSNamhyung Kim * stdio will just show a percentage as NN%, etc. 147da5c85dSNamhyung Kim */ 157da5c85dSNamhyung Kim if (use_browser <= 0) 167da5c85dSNamhyung Kim return; 177da5c85dSNamhyung Kim 184d3001fdSArnaldo Carvalho de Melo if (p->total == 0) 197da5c85dSNamhyung Kim return; 207da5c85dSNamhyung Kim 21d53e57d0SPatrick Palka ui__refresh_dimensions(false); 227da5c85dSNamhyung Kim pthread_mutex_lock(&ui__lock); 237da5c85dSNamhyung Kim y = SLtt_Screen_Rows / 2 - 2; 247da5c85dSNamhyung Kim SLsmg_set_color(0); 257da5c85dSNamhyung Kim SLsmg_draw_box(y, 0, 3, SLtt_Screen_Cols); 267da5c85dSNamhyung Kim SLsmg_gotorc(y++, 1); 274d3001fdSArnaldo Carvalho de Melo SLsmg_write_string((char *)p->title); 28d53e57d0SPatrick Palka SLsmg_fill_region(y, 1, 1, SLtt_Screen_Cols - 2, ' '); 297da5c85dSNamhyung Kim SLsmg_set_color(HE_COLORSET_SELECTED); 304d3001fdSArnaldo Carvalho de Melo bar = ((SLtt_Screen_Cols - 2) * p->curr) / p->total; 317da5c85dSNamhyung Kim SLsmg_fill_region(y, 1, 1, bar, ' '); 327da5c85dSNamhyung Kim SLsmg_refresh(); 337da5c85dSNamhyung Kim pthread_mutex_unlock(&ui__lock); 347da5c85dSNamhyung Kim } 35688f2f5bSNamhyung Kim 364779a2e9SArnaldo Carvalho de Melo static struct ui_progress_ops tui_progress__ops = 37688f2f5bSNamhyung Kim { 38688f2f5bSNamhyung Kim .update = tui_progress__update, 39688f2f5bSNamhyung Kim }; 40688f2f5bSNamhyung Kim 414779a2e9SArnaldo Carvalho de Melo void tui_progress__init(void) 42688f2f5bSNamhyung Kim { 434779a2e9SArnaldo Carvalho de Melo ui_progress__ops = &tui_progress__ops; 44688f2f5bSNamhyung Kim } 45