c172f7422c
The selection and scroll bar are really needed only when the user starts navigating, before that it just provide distractions. This also brings the initial screen to look more like the stdio UI, which more people are used to. The new code is flexible enough that menu like browsers can opt out and start with those UI elements. 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-jfgok30kkerpfw8wtcltgy6z@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
55 lines
2.0 KiB
C
55 lines
2.0 KiB
C
#ifndef _PERF_UI_BROWSER_H_
|
|
#define _PERF_UI_BROWSER_H_ 1
|
|
|
|
#include <stdbool.h>
|
|
#include <sys/types.h>
|
|
#include "../types.h"
|
|
|
|
#define HE_COLORSET_TOP 50
|
|
#define HE_COLORSET_MEDIUM 51
|
|
#define HE_COLORSET_NORMAL 52
|
|
#define HE_COLORSET_SELECTED 53
|
|
#define HE_COLORSET_CODE 54
|
|
|
|
struct ui_browser {
|
|
u64 index, top_idx;
|
|
void *top, *entries;
|
|
u16 y, x, width, height;
|
|
void *priv;
|
|
const char *title;
|
|
char *helpline;
|
|
unsigned int (*refresh)(struct ui_browser *self);
|
|
void (*write)(struct ui_browser *self, void *entry, int row);
|
|
void (*seek)(struct ui_browser *self, off_t offset, int whence);
|
|
bool (*filter)(struct ui_browser *self, void *entry);
|
|
u32 nr_entries;
|
|
bool navkeypressed;
|
|
bool use_navkeypressed;
|
|
};
|
|
|
|
void ui_browser__set_color(struct ui_browser *self, int color);
|
|
void ui_browser__set_percent_color(struct ui_browser *self,
|
|
double percent, bool current);
|
|
bool ui_browser__is_current_entry(struct ui_browser *self, unsigned row);
|
|
void ui_browser__refresh_dimensions(struct ui_browser *self);
|
|
void ui_browser__reset_index(struct ui_browser *self);
|
|
|
|
void ui_browser__gotorc(struct ui_browser *self, int y, int x);
|
|
void __ui_browser__show_title(struct ui_browser *browser, const char *title);
|
|
void ui_browser__show_title(struct ui_browser *browser, const char *title);
|
|
int ui_browser__show(struct ui_browser *self, const char *title,
|
|
const char *helpline, ...);
|
|
void ui_browser__hide(struct ui_browser *self);
|
|
int ui_browser__refresh(struct ui_browser *self);
|
|
int ui_browser__run(struct ui_browser *browser, int delay_secs);
|
|
void ui_browser__update_nr_entries(struct ui_browser *browser, u32 nr_entries);
|
|
|
|
void ui_browser__rb_tree_seek(struct ui_browser *self, off_t offset, int whence);
|
|
unsigned int ui_browser__rb_tree_refresh(struct ui_browser *self);
|
|
|
|
void ui_browser__list_head_seek(struct ui_browser *self, off_t offset, int whence);
|
|
unsigned int ui_browser__list_head_refresh(struct ui_browser *self);
|
|
|
|
void ui_browser__init(void);
|
|
#endif /* _PERF_UI_BROWSER_H_ */
|