summaryrefslogtreecommitdiff
path: root/ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui.h')
-rw-r--r--ui.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/ui.h b/ui.h
new file mode 100644
index 0000000..52e6f5a
--- /dev/null
+++ b/ui.h
@@ -0,0 +1,51 @@
+#ifndef UI_H
+#define UI_H
+
+#include <stdbool.h>
+#include <inttypes.h>
+
+#include "list.h"
+
+enum ui_align {
+ UI_ALIGN_LEFT,
+ UI_ALIGN_RIGHT,
+};
+
+struct ui_col {
+ struct list_head entry;
+ uint32_t id;
+ char *name;
+ uint32_t len;
+ int pos;
+ int color;
+ enum ui_align align;
+};
+
+struct ui_table {
+ int y;
+ int x;
+ int rows_y;
+ struct list_head cols;
+ int hdr_color;
+ int col_pad;
+ int width;
+};
+
+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_col_add(struct ui_table *tbl, uint32_t id, 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_row_add(struct ui_table *tbl);
+extern void ui_table_row_print(struct ui_table *tbl, uint32_t col_id,
+ const char *str);
+
+extern void ui_table_header_color_set(struct ui_table *tbl, int color);
+extern void ui_table_header_print(struct ui_table *tbl);
+
+#endif /* UI_H */