From 0dd9388efcd966197bda65c131d176cf0ac63c60 Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Thu, 21 Apr 2016 21:47:41 +0300 Subject: 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 Signed-off-by: Tobias Klauser --- ui.c | 12 ++++++++++++ ui.h | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ui.c b/ui.c index 5e52efd..46062d4 100644 --- a/ui.c +++ b/ui.c @@ -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; diff --git a/ui.h b/ui.h index 52e6f5a..ff55606 100644 --- a/ui.h +++ b/ui.h @@ -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); -- cgit v1.2.3-54-g00ecf