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 217da5c85dSNamhyung Kim ui__refresh_dimensions(true); 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); 287da5c85dSNamhyung Kim SLsmg_set_color(HE_COLORSET_SELECTED); 294d3001fdSArnaldo Carvalho de Melo bar = ((SLtt_Screen_Cols - 2) * p->curr) / p->total; 307da5c85dSNamhyung Kim SLsmg_fill_region(y, 1, 1, bar, ' '); 317da5c85dSNamhyung Kim SLsmg_refresh(); 327da5c85dSNamhyung Kim pthread_mutex_unlock(&ui__lock); 337da5c85dSNamhyung Kim } 34688f2f5bSNamhyung Kim 354779a2e9SArnaldo Carvalho de Melo static struct ui_progress_ops tui_progress__ops = 36688f2f5bSNamhyung Kim { 37688f2f5bSNamhyung Kim .update = tui_progress__update, 38688f2f5bSNamhyung Kim }; 39688f2f5bSNamhyung Kim 404779a2e9SArnaldo Carvalho de Melo void tui_progress__init(void) 41688f2f5bSNamhyung Kim { 424779a2e9SArnaldo Carvalho de Melo ui_progress__ops = &tui_progress__ops; 43688f2f5bSNamhyung Kim } 44