1e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#ifndef _PERF_UI_BROWSER_H_ 2e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define _PERF_UI_BROWSER_H_ 1 3e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 4e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include <stdbool.h> 5e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include <newt.h> 6e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include <sys/types.h> 7e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#include "../types.h" 8e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 9e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define HE_COLORSET_TOP 50 10e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define HE_COLORSET_MEDIUM 51 11e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define HE_COLORSET_NORMAL 52 12e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define HE_COLORSET_SELECTED 53 13e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#define HE_COLORSET_CODE 54 14e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 15e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengstruct ui_browser { 16e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng newtComponent form, sb; 17e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng u64 index, top_idx; 18e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng void *top, *entries; 19e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng u16 y, x, width, height; 20e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng void *priv; 21e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng unsigned int (*refresh)(struct ui_browser *self); 22e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng void (*write)(struct ui_browser *self, void *entry, int row); 23e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng void (*seek)(struct ui_browser *self, off_t offset, int whence); 24e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng u32 nr_entries; 25e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng}; 26e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 27e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__set_color(struct ui_browser *self, int color); 28e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__set_percent_color(struct ui_browser *self, 29e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng double percent, bool current); 30e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengbool ui_browser__is_current_entry(struct ui_browser *self, unsigned row); 31e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__refresh_dimensions(struct ui_browser *self); 32e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__reset_index(struct ui_browser *self); 33e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 34e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__gotorc(struct ui_browser *self, int y, int x); 35e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__add_exit_key(struct ui_browser *self, int key); 36e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__add_exit_keys(struct ui_browser *self, int keys[]); 37e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid __ui_browser__show_title(struct ui_browser *browser, const char *title); 38e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__show_title(struct ui_browser *browser, const char *title); 39e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint ui_browser__show(struct ui_browser *self, const char *title, 40e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng const char *helpline, ...); 41e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__hide(struct ui_browser *self); 42e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint ui_browser__refresh(struct ui_browser *self); 43e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengint ui_browser__run(struct ui_browser *self); 44e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 45e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__rb_tree_seek(struct ui_browser *self, off_t offset, int whence); 46e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengunsigned int ui_browser__rb_tree_refresh(struct ui_browser *self); 47e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 48e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__list_head_seek(struct ui_browser *self, off_t offset, int whence); 49e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengunsigned int ui_browser__list_head_refresh(struct ui_browser *self); 50e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng 51e6817ec1d8ab31fc7b01906e305f848542df6413Ben Chengvoid ui_browser__init(void); 52e6817ec1d8ab31fc7b01906e305f848542df6413Ben Cheng#endif /* _PERF_UI_BROWSER_H_ */ 53