diff options
Diffstat (limited to 'tools/perf/ui/progress.c')
| -rw-r--r-- | tools/perf/ui/progress.c | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/tools/perf/ui/progress.c b/tools/perf/ui/progress.c new file mode 100644 index 00000000000..13aa64e50e1 --- /dev/null +++ b/tools/perf/ui/progress.c @@ -0,0 +1,32 @@ +#include "../cache.h" +#include "progress.h" +#include "libslang.h" +#include "ui.h" +#include "browser.h" + +void ui_progress__update(u64 curr, u64 total, const char *title) +{ +	int bar, y; +	/* +	 * FIXME: We should have a per UI backend way of showing progress, +	 * stdio will just show a percentage as NN%, etc. +	 */ +	if (use_browser <= 0) +		return; + +	if (total == 0) +		return; + +	ui__refresh_dimensions(true); +	pthread_mutex_lock(&ui__lock); +	y = SLtt_Screen_Rows / 2 - 2; +	SLsmg_set_color(0); +	SLsmg_draw_box(y, 0, 3, SLtt_Screen_Cols); +	SLsmg_gotorc(y++, 1); +	SLsmg_write_string((char *)title); +	SLsmg_set_color(HE_COLORSET_SELECTED); +	bar = ((SLtt_Screen_Cols - 2) * curr) / total; +	SLsmg_fill_region(y, 1, 1, bar, ' '); +	SLsmg_refresh(); +	pthread_mutex_unlock(&ui__lock); +}  |