36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
// 8 december 2014
|
|
|
|
static void addColumn(struct table *t, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
t->nColumns++;
|
|
t->columnTypes = (int *) tableRealloc(t->columnTypes, t->nColumns * sizeof (int), "adding the new column type to the current Table's list of column types");
|
|
t->columnTypes[t->nColumns - 1] = (int) wParam;
|
|
// TODO make a panicNoErrCode() or panicArg() for this
|
|
if (t->columnTypes[t->nColumns - 1] >= nTableColumnTypes)
|
|
panic("invalid column type passed to tableAddColumn");
|
|
headerAddColumn(t, (WCHAR *) lParam);
|
|
updateTableWidth(t);
|
|
}
|
|
|
|
HANDLER(apiHandlers)
|
|
{
|
|
switch (uMsg) {
|
|
case WM_SETFONT:
|
|
// don't free the old font; see http://blogs.msdn.com/b/oldnewthing/archive/2008/09/12/8945692.aspx
|
|
t->font = (HFONT) wParam;
|
|
SendMessageW(t->header, WM_SETFONT, wParam, lParam);
|
|
// TODO how to properly handle LOWORD(lParam) != FALSE?
|
|
// TODO depending on the result of the above, update table width to refresh t->headerHeight?
|
|
*lResult = 0;
|
|
return TRUE;
|
|
case WM_GETFONT:
|
|
*lResult = (LRESULT) (t->font);
|
|
return TRUE;
|
|
case tableAddColumn:
|
|
addColumn(t, wParam, lParam);
|
|
*lResult = 0;
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|