2010-08-06 17:35:02 -03:00
# ifndef _PERF_UI_BROWSER_H_
# define _PERF_UI_BROWSER_H_ 1
2014-04-25 21:31:02 +02:00
# include <linux/types.h>
2010-08-06 17:35:02 -03:00
# define HE_COLORSET_TOP 50
# define HE_COLORSET_MEDIUM 51
# define HE_COLORSET_NORMAL 52
# define HE_COLORSET_SELECTED 53
2016-01-08 17:16:11 +09:00
# define HE_COLORSET_JUMP_ARROWS 54
2012-04-02 12:59:01 -03:00
# define HE_COLORSET_ADDR 55
2013-03-28 11:34:10 -03:00
# define HE_COLORSET_ROOT 56
2010-08-06 17:35:02 -03:00
struct ui_browser {
2010-08-07 13:56:04 -03:00
u64 index , top_idx ;
void * top , * entries ;
2015-08-11 17:14:40 -03:00
u16 y , x , width , height , rows , columns , horiz_scroll ;
2012-04-02 12:48:56 -03:00
int current_color ;
2010-08-06 17:35:02 -03:00
void * priv ;
2011-10-13 08:52:46 -03:00
const char * title ;
char * helpline ;
2014-07-01 16:34:42 -03:00
void ( * refresh_dimensions ) ( struct ui_browser * browser ) ;
2013-11-05 15:32:36 -03:00
unsigned int ( * refresh ) ( struct ui_browser * browser ) ;
void ( * write ) ( struct ui_browser * browser , void * entry , int row ) ;
void ( * seek ) ( struct ui_browser * browser , off_t offset , int whence ) ;
bool ( * filter ) ( struct ui_browser * browser , void * entry ) ;
2010-08-06 17:35:02 -03:00
u32 nr_entries ;
2011-10-18 14:31:35 -02:00
bool navkeypressed ;
bool use_navkeypressed ;
2010-08-06 17:35:02 -03:00
} ;
2012-04-02 12:48:56 -03:00
int ui_browser__set_color ( struct ui_browser * browser , int color ) ;
2013-11-05 15:32:36 -03:00
void ui_browser__set_percent_color ( struct ui_browser * browser ,
2010-08-11 14:51:47 -03:00
double percent , bool current ) ;
2013-11-05 15:32:36 -03:00
bool ui_browser__is_current_entry ( struct ui_browser * browser , unsigned row ) ;
void ui_browser__refresh_dimensions ( struct ui_browser * browser ) ;
void ui_browser__reset_index ( struct ui_browser * browser ) ;
2010-08-06 17:35:02 -03:00
2013-11-05 15:32:36 -03:00
void ui_browser__gotorc ( struct ui_browser * browser , int y , int x ) ;
2015-08-11 12:24:27 -03:00
void ui_browser__write_nstring ( struct ui_browser * browser , const char * msg ,
unsigned int width ) ;
2015-08-11 12:50:55 -03:00
void ui_browser__printf ( struct ui_browser * browser , const char * fmt , . . . ) ;
2012-04-20 16:26:14 -03:00
void ui_browser__write_graph ( struct ui_browser * browser , int graph ) ;
2012-04-27 16:27:52 -03:00
void __ui_browser__line_arrow ( struct ui_browser * browser , unsigned int column ,
2012-05-03 13:12:49 -03:00
u64 start , u64 end ) ;
2011-02-25 11:33:31 -03:00
void __ui_browser__show_title ( struct ui_browser * browser , const char * title ) ;
void ui_browser__show_title ( struct ui_browser * browser , const char * title ) ;
2013-11-05 15:32:36 -03:00
int ui_browser__show ( struct ui_browser * browser , const char * title ,
2010-08-10 15:44:20 -03:00
const char * helpline , . . . ) ;
2013-11-05 15:32:36 -03:00
void ui_browser__hide ( struct ui_browser * browser ) ;
int ui_browser__refresh ( struct ui_browser * browser ) ;
2011-10-13 08:52:46 -03:00
int ui_browser__run ( struct ui_browser * browser , int delay_secs ) ;
2011-10-11 16:15:39 -03:00
void ui_browser__update_nr_entries ( struct ui_browser * browser , u32 nr_entries ) ;
2011-10-26 12:04:37 -02:00
void ui_browser__handle_resize ( struct ui_browser * browser ) ;
2012-05-03 13:07:05 -03:00
void __ui_browser__vline ( struct ui_browser * browser , unsigned int column ,
u16 start , u16 end ) ;
2011-10-26 12:04:37 -02:00
2011-10-29 12:15:04 -02:00
int ui_browser__warning ( struct ui_browser * browser , int timeout ,
const char * format , . . . ) ;
2011-10-26 12:04:37 -02:00
int ui_browser__help_window ( struct ui_browser * browser , const char * text ) ;
bool ui_browser__dialog_yesno ( struct ui_browser * browser , const char * text ) ;
2012-03-16 17:50:52 +09:00
int ui_browser__input_window ( const char * title , const char * text , char * input ,
const char * exit_msg , int delay_sec ) ;
2015-08-28 05:48:04 -04:00
struct perf_env ;
int tui__header_window ( struct perf_env * env ) ;
2010-08-06 17:35:02 -03:00
2011-10-26 07:11:03 -02:00
void ui_browser__argv_seek ( struct ui_browser * browser , off_t offset , int whence ) ;
unsigned int ui_browser__argv_refresh ( struct ui_browser * browser ) ;
2013-11-05 15:32:36 -03:00
void ui_browser__rb_tree_seek ( struct ui_browser * browser , off_t offset , int whence ) ;
unsigned int ui_browser__rb_tree_refresh ( struct ui_browser * browser ) ;
2010-08-06 17:35:02 -03:00
2013-11-05 15:32:36 -03:00
void ui_browser__list_head_seek ( struct ui_browser * browser , off_t offset , int whence ) ;
unsigned int ui_browser__list_head_refresh ( struct ui_browser * browser ) ;
2010-08-06 17:35:02 -03:00
void ui_browser__init ( void ) ;
2012-05-29 22:06:30 -03:00
void annotate_browser__init ( void ) ;
2010-08-06 17:35:02 -03:00
# endif /* _PERF_UI_BROWSER_H_ */