From 22123fb676d26d309d428a892c453e35e684e367 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 6 Jan 2015 17:27:41 -0500 Subject: Merged wintable/new/ into wintable/. --- wintable/hscroll.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 wintable/hscroll.h (limited to 'wintable/hscroll.h') diff --git a/wintable/hscroll.h b/wintable/hscroll.h new file mode 100644 index 0000000..1560490 --- /dev/null +++ b/wintable/hscroll.h @@ -0,0 +1,52 @@ +// 9 december 2014 + +// forward declaration needed here +static void repositionHeader(struct table *); + +static struct scrollParams hscrollParams(struct table *t) +{ + struct scrollParams p; + + ZeroMemory(&p, sizeof (struct scrollParams)); + p.pos = &(t->hscrollpos); + p.pagesize = t->hpagesize; + p.length = t->width; + p.scale = 1; + p.post = repositionHeader; + p.wheelCarry = &(t->hwheelCarry); + return p; +} + +static void hscrollto(struct table *t, intptr_t pos) +{ + struct scrollParams p; + + p = hscrollParams(t); + scrollto(t, SB_HORZ, &p, pos); +} + +static void hscrollby(struct table *t, intptr_t delta) +{ + struct scrollParams p; + + p = hscrollParams(t); + scrollby(t, SB_HORZ, &p, delta); +} + +static void hscroll(struct table *t, WPARAM wParam, LPARAM lParam) +{ + struct scrollParams p; + + p = hscrollParams(t); + scroll(t, SB_HORZ, &p, wParam, lParam); +} + +// TODO find out if we can indicriminately check for WM_WHEELHSCROLL +HANDLER(hscrollHandler) +{ + if (uMsg != WM_HSCROLL) + return FALSE; + hscroll(t, wParam, lParam); + *lResult = 0; + return TRUE; +} -- cgit v1.2.3