perf ui browser: Use libslang to read keys

Just another step in stopping the use of libnewt in perf.

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-uy6s534uqxq8tenh6s3k8ocj@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo
2011-10-20 16:59:15 -02:00
parent 29208e573a
commit cf9580036a
9 changed files with 125 additions and 64 deletions

View File

@ -6,6 +6,7 @@
#include "../../sort.h"
#include "../../symbol.h"
#include <pthread.h>
#include <newt.h>
static void ui__error_window(const char *fmt, ...)
{
@ -265,18 +266,14 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
}
switch (key) {
case -1:
/*
* FIXME we need to check if it was
* es.reason == NEWT_EXIT_TIMER
*/
case K_TIMER:
if (timer != NULL)
timer(arg);
if (delay_secs != 0)
symbol__annotate_decay_histogram(sym, evidx);
continue;
case NEWT_KEY_TAB:
case K_TAB:
if (nd != NULL) {
nd = rb_prev(nd);
if (nd == NULL)
@ -284,7 +281,7 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
} else
nd = self->curr_hot;
break;
case NEWT_KEY_UNTAB:
case K_UNTAB:
if (nd != NULL)
nd = rb_next(nd);
if (nd == NULL)
@ -299,8 +296,8 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
if (annotate_browser__toggle_source(self))
ui_helpline__puts(help);
continue;
case NEWT_KEY_ENTER:
case NEWT_KEY_RIGHT:
case K_ENTER:
case K_RIGHT:
if (self->selection == NULL) {
ui_helpline__puts("Huh? No selection. Report to linux-kernel@vger.kernel.org");
continue;
@ -350,8 +347,8 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
timer, arg, delay_secs);
}
continue;
case NEWT_KEY_LEFT:
case NEWT_KEY_ESCAPE:
case K_LEFT:
case K_ESC:
case 'q':
case CTRL('c'):
goto out;