From 80b8fddbea397a7970532b5ac44c552d90cb3c81 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 20 Jun 2016 22:14:26 -0400 Subject: [PATCH] Started mapping out uiTable and uiTree. --- ui.h | 3 +++ uitable.h | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 uitable.h diff --git a/ui.h b/ui.h index 036a89c1..70c2f121 100644 --- a/ui.h +++ b/ui.h @@ -665,6 +665,9 @@ _UI_EXTERN int uiGridPadded(uiGrid *g); _UI_EXTERN void uiGridSetPadded(uiGrid *g, int padded); _UI_EXTERN uiGrid *uiNewGrid(void); +// TODO merge +#include "uitable.h" + #ifdef __cplusplus } #endif diff --git a/uitable.h b/uitable.h new file mode 100644 index 00000000..645096bd --- /dev/null +++ b/uitable.h @@ -0,0 +1,41 @@ +// 20 june 2016 +// kept in a separate file for now + +typedef struct uiTableModel uiTableModel; +typedef struct uiTableModelHandler uiTableModelHandler; + +_UI_ENUM(uiTableModelColumnType) { + uiTableModelColumnString, +}; + +struct uiTableModelHandler { + int (*NumColumns)(uiTableModel *); + uiTableModelColumnType (*ColumnType)(uiTableModel *, int); + int (*NumRows)(uiTableModel *); + void *(*CellValue)(uiTableModel *, int, int); + void (*SetCellValue)(uiTableModel *, int, int, void *); +}; + +_UI_EXTERN void *uiTableModelStrdup(const char *str); + +_UI_EXTERN uiTableModel *uiNewTableModel(uiTableModelHandler *mh); +_UI_EXTERN void uiFreeTableModel(uiTableModel *m); +_UI_EXTERN void uiTableModelRowInserted(uiTableModel *m, int newIndex); +_UI_EXTERN void uiTableModelRowChanged(uiTableModel *m, int index); +_UI_EXTERN void uiTableModelRowDeleted(uiTableModel *m, int oldIndex); + +typedef struct uiTableCellLayout uiTableCellLayout; +typedef struct uiTableCellPart uiTableCellPart; + +_UI_EXTERN uiTableCellLayout *uiNewTableCellLayout(void); +_UI_EXTERN void uiFreeTableCellLayout(uiTableCellLayout *c); +_UI_ExTERN void uiTableCellLayoutAppend(uiTableCellLayout *c, uiTableCellPart *part, int expand); + +_UI_EXTERN uiTableCellPart *uiNewTableTextPart(int modelColumn); +_UI_EXTERN void uiFreeTableCellPart(uiTableCellPart *p); + +typedef struct uiTable uiTable; +#define uiTable(this) ((uiTable *) (this)) +_UI_EXTERN void uiTableAppendColumn(uiTable *t, const char *name, uiTableCellLayout *layout); +_UI_EXTERN void uiTableAppendTextColumn(uiTable *t, const char *name, int modelColumn); +_UI_EXTERN uiTable *uiNewTable(uiTableModel *model);