diff options
-rw-r--r-- | ui.c | 12 | ||||
-rw-r--r-- | ui.h | 4 |
2 files changed, 15 insertions, 1 deletions
@@ -16,6 +16,7 @@ void ui_table_init(struct ui_table *tbl) tbl->rows_y = tbl->y; tbl->width = COLS; + tbl->height = LINES - 2; tbl->col_pad = 1; INIT_LIST_HEAD(&tbl->cols); @@ -94,7 +95,13 @@ void ui_table_row_add(struct ui_table *tbl) void ui_table_clear(struct ui_table *tbl) { + int y; + tbl->rows_y = tbl->y; + + for (y = tbl->y + 1; y < tbl->y + tbl->height; y++) { + mvprintw(y, tbl->x, "%*s", tbl->width, " "); + } } #define UI_ALIGN_COL(col) (((col)->align == UI_ALIGN_LEFT) ? "%-*.*s" : "%*.*s") @@ -120,6 +127,11 @@ void ui_table_header_color_set(struct ui_table *tbl, int color) tbl->hdr_color = color; } +void ui_table_height_set(struct ui_table *tbl, int height) +{ + tbl->height = height; +} + void ui_table_header_print(struct ui_table *tbl) { struct ui_col *col; @@ -29,12 +29,14 @@ struct ui_table { int hdr_color; int col_pad; int width; + int height; }; extern void ui_table_init(struct ui_table *tbl); extern void ui_table_uninit(struct ui_table *tbl); -extern void ui_table_pos_set(struct ui_table *tbl, int y, int x); 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, uint32_t len); |