forked from andlabs/libui
-
Notifications
You must be signed in to change notification settings - Fork 1
/
uitable.h
41 lines (32 loc) · 1.58 KB
/
uitable.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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);