diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2016-04-21 21:47:41 +0300 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2016-04-22 15:29:48 +0200 |
commit | 0dd9388efcd966197bda65c131d176cf0ac63c60 (patch) | |
tree | a81e28ba18f02ecae073e511a3f2a09dd21ab080 | |
parent | e6186a3285928bf6fb798a4685d294ef9f3d0686 (diff) |
ui: Print empty rows when clearing table
Fill table with empty rows while clearing.
It will allow to get rid of clear() & refresh() each time
before print the flows list.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-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); |