aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/ui/browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/ui/browser.c')
-rw-r--r--tools/perf/ui/browser.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c
index 973ff74e3640..32ac1165100d 100644
--- a/tools/perf/ui/browser.c
+++ b/tools/perf/ui/browser.c
@@ -600,6 +600,45 @@ void ui_browser__write_graph(struct ui_browser *browser __used, int graph)
600 SLsmg_set_char_set(0); 600 SLsmg_set_char_set(0);
601} 601}
602 602
603void __ui_browser__line_arrow_up(struct ui_browser *browser, unsigned int column,
604 u64 start, u64 end, int start_width)
605{
606 unsigned int row, end_row;
607
608 SLsmg_set_char_set(1);
609
610 if (start < browser->top_idx + browser->height) {
611 row = start - browser->top_idx;
612 ui_browser__gotorc(browser, row, column);
613 SLsmg_write_char(SLSMG_LLCORN_CHAR);
614 ui_browser__gotorc(browser, row, column + 1);
615 SLsmg_draw_hline(start_width);
616
617 if (row-- == 0)
618 goto out;
619 } else
620 row = browser->height - 1;
621
622 if (end > browser->top_idx)
623 end_row = end - browser->top_idx;
624 else
625 end_row = 0;
626
627 ui_browser__gotorc(browser, end_row, column);
628 SLsmg_draw_vline(row - end_row + 1);
629
630 ui_browser__gotorc(browser, end_row, column);
631 if (end >= browser->top_idx) {
632 SLsmg_write_char(SLSMG_ULCORN_CHAR);
633 ui_browser__gotorc(browser, end_row, column + 1);
634 SLsmg_write_char(SLSMG_HLINE_CHAR);
635 ui_browser__gotorc(browser, end_row, column + 2);
636 SLsmg_write_char(SLSMG_RARROW_CHAR);
637 }
638out:
639 SLsmg_set_char_set(0);
640}
641
603void ui_browser__init(void) 642void ui_browser__init(void)
604{ 643{
605 int i = 0; 644 int i = 0;