diff options
Diffstat (limited to 'wintable/events.h')
| -rw-r--r-- | wintable/events.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/wintable/events.h b/wintable/events.h new file mode 100644 index 0000000..fbd1522 --- /dev/null +++ b/wintable/events.h @@ -0,0 +1,62 @@ +// 5 december 2014 + +// TODO handler functions don't work here because you can't have more than one for the mouse ones... + +static const handlerfunc keyDownHandlers[] = { + keyDownSelectHandler, + NULL, +}; + +static const handlerfunc keyUpHandlers[] = { + NULL, +}; + +static const handlerfunc charHandlers[] = { + NULL, +}; + +static const handlerfunc mouseMoveHandlers[] = { + checkboxMouseMoveHandler, + NULL, +}; + +static const handlerfunc mouseLeaveHandlers[] = { + checkboxMouseLeaveHandler, + NULL, +}; + +static const handlerfunc lbuttonDownHandlers[] = { + mouseDownSelectHandler, + NULL, +}; + +static const handlerfunc lbuttonUpHandlers[] = { + checkboxMouseUpHandler, + NULL, +}; + +// TODO remove or something? depends on if we implement combobox and how +static const handlerfunc mouseWheelHandlers[] = { + NULL, +}; + +// TODO WM_MOUSEHOVER, other mouse buttons + +HANDLER(eventHandlers) +{ + switch (uMsg) { +#define eventHandler(msg, array) \ + case msg: \ + return runHandlers(array, t, uMsg, wParam, lParam, lResult); + eventHandler(WM_KEYDOWN, keyDownHandlers) + eventHandler(WM_KEYUP, keyUpHandlers) + eventHandler(WM_CHAR, charHandlers) + eventHandler(WM_MOUSEMOVE, mouseMoveHandlers) + eventHandler(WM_MOUSELEAVE, mouseLeaveHandlers) + eventHandler(WM_LBUTTONDOWN, lbuttonDownHandlers) + eventHandler(WM_LBUTTONUP, lbuttonUpHandlers) + eventHandler(WM_MOUSEWHEEL, mouseWheelHandlers) +#undef eventHandler + } + return FALSE; +} |
