2010-08-06 17:35:02 -03:00
# ifndef _PERF_UI_BROWSER_H_
# define _PERF_UI_BROWSER_H_ 1
# include <stdbool.h>
2010-08-10 14:54:09 -03:00
# include <sys/types.h>
2010-08-06 17:35:02 -03:00
# 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
2012-04-02 12:59:01 -03:00
# define HE_COLORSET_ADDR 55
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 ;
u16 y , x , width , height ;
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 ;
2010-08-06 17:35:02 -03:00
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 ) ;
2011-10-14 12:27:54 -03:00
bool ( * filter ) ( struct ui_browser * self , 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 ) ;
2010-08-11 14:51:47 -03:00
void ui_browser__set_percent_color ( struct ui_browser * self ,
double percent , bool current ) ;
2010-08-06 17:35:02 -03:00
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 ) ;
2010-08-11 14:51:47 -03:00
void ui_browser__gotorc ( struct ui_browser * self , int y , int x ) ;
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 ) ;
2010-08-10 15:44:20 -03:00
int ui_browser__show ( struct ui_browser * self , const char * title ,
const char * helpline , . . . ) ;
void ui_browser__hide ( struct ui_browser * self ) ;
2010-08-06 17:35:02 -03:00
int ui_browser__refresh ( struct ui_browser * self ) ;
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 ) ;
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 ) ;
2010-08-06 17:35:02 -03:00
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 ) ;
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_ */