diff options
Diffstat (limited to 'ui.h')
-rw-r--r-- | ui.h | 34 |
1 files changed, 32 insertions, 2 deletions
@@ -9,6 +9,7 @@ enum ui_event_id { UI_EVT_SCROLL_LEFT, UI_EVT_SCROLL_RIGHT, + UI_EVT_SELECT_NEXT, }; enum ui_align { @@ -25,7 +26,7 @@ struct ui_text { struct ui_col { struct cds_list_head entry; uint32_t id; - char *name; + const char *name; uint32_t len; int pos; int color; @@ -43,6 +44,25 @@ struct ui_table { int width; int height; int scroll_x; + const char *delim; +}; + +struct ui_tab; + +enum ui_tab_event_t { + UI_TAB_EVT_OPEN, + UI_TAB_EVT_CLOSE, +}; + +typedef void (* ui_tab_event_cb) (struct ui_tab *tab, enum ui_tab_event_t evt, + uint32_t id); + +struct ui_tab { + struct ui_col *active; + struct ui_table tbl; + int color; + + ui_tab_event_cb on_tab_event; }; extern void ui_table_init(struct ui_table *tbl); @@ -51,10 +71,11 @@ extern void ui_table_clear(struct ui_table *tbl); extern void ui_table_pos_set(struct ui_table *tbl, int y, int x); extern void ui_table_height_set(struct ui_table *tbl, int height); -extern void ui_table_col_add(struct ui_table *tbl, uint32_t id, char *name, +extern void ui_table_col_add(struct ui_table *tbl, uint32_t id, const char *name, uint32_t len); extern void ui_table_col_color_set(struct ui_table *tbl, int col_id, int color); extern void ui_table_col_align_set(struct ui_table *tbl, int col_id, enum ui_align align); +extern void ui_table_col_delim_set(struct ui_table *tbl, const char *delim); extern void ui_table_row_add(struct ui_table *tbl); extern void ui_table_row_show(struct ui_table *tbl); @@ -66,4 +87,13 @@ extern void ui_table_header_print(struct ui_table *tbl); extern void ui_table_event_send(struct ui_table *tbl, enum ui_event_id id); +extern struct ui_tab *ui_tab_create(void); +extern void ui_tab_destroy(struct ui_tab *tab); +extern void ui_tab_pos_set(struct ui_tab *tab, int y, int x); +extern void ui_tab_event_cb_set(struct ui_tab *tab, ui_tab_event_cb cb); +extern void ui_tab_active_color_set(struct ui_tab *tab, int color); +extern void ui_tab_show(struct ui_tab *tab); +extern void ui_tab_entry_add(struct ui_tab *tab, uint32_t id, const char *name); +extern void ui_tab_event_send(struct ui_tab *tab, uint32_t id); + #endif /* UI_H */ |