summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ui.c12
-rw-r--r--ui.h4
2 files changed, 15 insertions, 1 deletions
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);