浏览代码

perf ui browser: Return the current color when setting a new one

Tools that want to change parts of the line to a different color and
then restore the previous one will use this, starting with the annotate
browser that will change the color of addresses if not on the current
entry, i.e. the selected one.

Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-uiajpevhxo4mzrvna6remb4a@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Arnaldo Carvalho de Melo 13 年之前
父节点
当前提交
087091652b
共有 2 个文件被更改,包括 6 次插入2 次删除
  1. 4 1
      tools/perf/util/ui/browser.c
  2. 2 1
      tools/perf/util/ui/browser.h

+ 4 - 1
tools/perf/util/ui/browser.c

@@ -27,9 +27,12 @@ static int ui_browser__percent_color(struct ui_browser *browser,
 	return HE_COLORSET_NORMAL;
 	return HE_COLORSET_NORMAL;
 }
 }
 
 
-void ui_browser__set_color(struct ui_browser *self __used, int color)
+int ui_browser__set_color(struct ui_browser *browser, int color)
 {
 {
+	int ret = browser->current_color;
+	browser->current_color = color;
 	SLsmg_set_color(color);
 	SLsmg_set_color(color);
+	return ret;
 }
 }
 
 
 void ui_browser__set_percent_color(struct ui_browser *self,
 void ui_browser__set_percent_color(struct ui_browser *self,

+ 2 - 1
tools/perf/util/ui/browser.h

@@ -15,6 +15,7 @@ struct ui_browser {
 	u64	      index, top_idx;
 	u64	      index, top_idx;
 	void	      *top, *entries;
 	void	      *top, *entries;
 	u16	      y, x, width, height;
 	u16	      y, x, width, height;
+	int	      current_color;
 	void	      *priv;
 	void	      *priv;
 	const char    *title;
 	const char    *title;
 	char	      *helpline;
 	char	      *helpline;
@@ -27,7 +28,7 @@ struct ui_browser {
 	bool	      use_navkeypressed;
 	bool	      use_navkeypressed;
 };
 };
 
 
-void ui_browser__set_color(struct ui_browser *self, int color);
+int  ui_browser__set_color(struct ui_browser *browser, int color);
 void ui_browser__set_percent_color(struct ui_browser *self,
 void ui_browser__set_percent_color(struct ui_browser *self,
 				   double percent, bool current);
 				   double percent, bool current);
 bool ui_browser__is_current_entry(struct ui_browser *self, unsigned row);
 bool ui_browser__is_current_entry(struct ui_browser *self, unsigned row);