81 lines
1.5 KiB
C
81 lines
1.5 KiB
C
// 18 october 2015
|
|
#include "test.h"
|
|
|
|
// TODO manage the memory of the uiTableModel
|
|
|
|
static intmax_t nColumns = 4;
|
|
static uiTableColumnType coltypes[] = {
|
|
uiTableColumnText,
|
|
uiTableColumnText,
|
|
uiTableColumnCheckbox,
|
|
uiTableColumnCheckbox,
|
|
};
|
|
|
|
static intmax_t nRows = 6;
|
|
|
|
static intmax_t modelNumRows(uiTableModel *m, void *mData)
|
|
{
|
|
return nRows;
|
|
}
|
|
|
|
void *modelCellValue(uiTableModel *m, void *mData, intmax_t row, intmax_t column)
|
|
{
|
|
char line[20];
|
|
|
|
line[0] = 'R';
|
|
line[1] = 'o';
|
|
line[2] = 'w';
|
|
line[3] = ' ';
|
|
line[4] = row + '0';
|
|
line[5] = '\0';
|
|
switch (column) {
|
|
case 0:
|
|
case 1:
|
|
return uiTableModelFromString(line);
|
|
case 2:
|
|
return uiTableModelFromBool(row % 2 == 0);
|
|
case 3:
|
|
return uiTableModelFromBool(row % 3 == 0);
|
|
}
|
|
// TODO
|
|
return NULL;
|
|
}
|
|
|
|
// TODO make this not need to be static
|
|
uiTableModelSpec spec;
|
|
|
|
void modelSetCellValue(uiTableModel *m, void *mData, intmax_t row, intmax_t column, void *value)
|
|
{
|
|
// TODO
|
|
}
|
|
|
|
uiBox *makePage9(void)
|
|
{
|
|
uiBox *page9;
|
|
uiTable *table;
|
|
uiTableModel *model;
|
|
uiTableColumnParams p;
|
|
intmax_t i;
|
|
|
|
page9 = newVerticalBox();
|
|
|
|
table = uiNewTable();
|
|
uiBoxAppend(page9, uiControl(table), 1);
|
|
|
|
spec.NumRows = modelNumRows;
|
|
spec.CellValue = modelCellValue;
|
|
spec.SetCellValue = modelSetCellValue;
|
|
model = uiNewTableModel(nColumns, coltypes, &spec, NULL);
|
|
uiTableSetModel(table, model);
|
|
|
|
for (i = 0; i < nColumns; i++) {
|
|
p.Name = "Column";
|
|
p.Type = coltypes[i];
|
|
p.Mutable = i % 2 == 1;
|
|
p.ValueColumn = i;
|
|
uiTableAppendColumn(table, &p);
|
|
}
|
|
|
|
return page9;
|
|
}
|