diff --git a/wintable/hscroll.h b/wintable/hscroll.h index 6c700a7..f4c3b0f 100644 --- a/wintable/hscroll.h +++ b/wintable/hscroll.h @@ -112,3 +112,14 @@ static void recomputeHScroll(struct table *t) si.nMax = t->width - 1; // - 1 because endpoints inclusive SetScrollInfo(t->hwnd, SB_HORZ, &si, TRUE); } + +HANDLER(hscroll) +{ + switch (uMsg) { + case WM_HSCROLL: + hscroll(t, wParam); + *lResult = 0; + return TRUE; + } + return FALSE; +} diff --git a/wintable/main.c b/wintable/main.c index 848e6d6..6a4c27a 100644 --- a/wintable/main.c +++ b/wintable/main.c @@ -105,6 +105,7 @@ struct table { typedef BOOL (*handlerfunc)(struct table *, UINT, WPARAM, LPARAM, LRESULT *); const handlerfunc handlerfuncs[] = { + hscrollHandler, vscrollHandler, APIHandler, NULL, @@ -177,9 +178,6 @@ if (ImageList_GetIconSize(t->imagelist, &unused, &(t->imagelistHeight)) == 0)abo drawItems(t, dc, ps.rcPaint); EndPaint(hwnd, &ps); return 0; - case WM_HSCROLL: - hscroll(t, wParam); - return 0; case WM_SIZE: resize(t); return 0; @@ -190,6 +188,7 @@ if (ImageList_GetIconSize(t->imagelist, &unused, &(t->imagelistHeight)) == 0)abo case WM_KILLFOCUS: // all we need to do here is redraw the highlight // TODO ensure giving focus works right + // TODO figure out hwat I meant by this redrawRow(t, t->selected); return 0; case WM_KEYDOWN: