Ended up deciding to go with a really simple system for this to avoid adding unnecessary overhead or restricting how callbacks are processed. A single callback function can be set for each supported type of window event (button, char, mouse enter/exit, mouse move, scroll). If users want to add additional structure to their event handlers (e.g. lists/trees of callback handlers), process events async, etc. then that is left up to them to implement.
Adding support for callbacks on window events.
Ended up deciding to go with a really simple system for this to avoid adding unnecessary overhead or restricting how callbacks are processed. A single callback function can be set for each supported type of window event (button, char, mouse enter/exit, mouse move, scroll). If users want to add additional structure to their event handlers (e.g. lists/trees of callback handlers), process events async, etc. then that is left up to them to implement.