diff options
| author | Pietro Gagliardi <[email protected]> | 2016-05-30 00:14:46 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2016-05-30 00:14:46 -0400 |
| commit | 52f7d276a6bb04b8827ac019ad1e135b43819cea (patch) | |
| tree | 5f0ebbfdf5885ef832e77e243b5916e59f46ba18 /prev/wintable/api.h | |
| parent | c9b32c1333e4009b342eedc5f5b39127a724fb42 (diff) | |
Removed prev/.
Diffstat (limited to 'prev/wintable/api.h')
| -rw-r--r-- | prev/wintable/api.h | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/prev/wintable/api.h b/prev/wintable/api.h deleted file mode 100644 index 09552e5..0000000 --- a/prev/wintable/api.h +++ /dev/null @@ -1,110 +0,0 @@ -// 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); - update(t, TRUE); - // TODO only redraw the part of the client area where the new client went, if any - // (TODO when — if — adding autoresize, figure this one out) - - // TODO send a notification for all rows? -} - -// TODO what happens if the currently selected row is lost? -static void setRowCount(struct table *t, intptr_t rc) -{ - intptr_t old, i; - - old = t->count; - t->count = rc; - // we DO redraw everything because we don't want any rows that should no longer be there to remain on screen! - updateAll(t); // DONE - // TODO reset checkbox and selection logic if the current row for both no longer exists - // TODO really send all these notifications? - if (old < t->count) // rows added - for (i = old; i < t->count; i++) - NotifyWinEvent(EVENT_OBJECT_CREATE, t->hwnd, OBJID_CLIENT, i); - else if (old > t->count) // rows removed - for (i = old; i > t->count; i++) - NotifyWinEvent(EVENT_OBJECT_DESTROY, t->hwnd, OBJID_CLIENT, i); - // TODO update existing rows? -} - -HANDLER(apiHandlers) -{ - intptr_t *rcp; - intptr_t row; - - 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); - // if we redraw, we have to redraw ALL of it; after all, the font changed! - if (LOWORD(lParam) != FALSE) - updateAll(t); // DONE - else - update(t, FALSE); // DONE - *lResult = 0; - return TRUE; - case WM_GETFONT: - *lResult = (LRESULT) (t->font); - return TRUE; - case tableAddColumn: - addColumn(t, wParam, lParam); - *lResult = 0; - return TRUE; - case tableSetRowCount: - rcp = (intptr_t *) lParam; - setRowCount(t, *rcp); - *lResult = 0; - return TRUE; - case tableGetSelection: - rcp = (intptr_t *) wParam; - if (rcp != NULL) - *rcp = t->selectedRow; - rcp = (intptr_t *) lParam; - if (rcp != NULL) - *rcp = t->selectedColumn; - *lResult = 0; - return TRUE; - case tableSetSelection: - // TODO does doselect() do validation? - rcp = (intptr_t *) wParam; - row = *rcp; - rcp = (intptr_t *) lParam; - if (rcp == NULL) - if (row == -1) - doselect(t, -1, -1); - else // select column 0, just like keyboard selections; TODO what if there aren't any columns? - doselect(t, row, 0); - else - doselect(t, row, *rcp); - *lResult = 0; - return TRUE; - } - return FALSE; -} - -static LRESULT notify(struct table *t, UINT code, intptr_t row, intptr_t column, uintptr_t data) -{ - tableNM nm; - - ZeroMemory(&nm, sizeof (tableNM)); - nm.nmhdr.hwndFrom = t->hwnd; - // TODO check for error from here? 0 is a valid ID (IDCANCEL) - nm.nmhdr.idFrom = GetDlgCtrlID(t->hwnd); - nm.nmhdr.code = code; - nm.row = row; - nm.column = column; - nm.columnType = t->columnTypes[nm.column]; - nm.data = data; - // TODO check for error from GetParent()? - return SendMessageW(GetParent(t->hwnd), WM_NOTIFY, (WPARAM) (nm.nmhdr.idFrom), (LPARAM) (&nm)); -} |
