Input event the system should save.
A number that will be passed as-is into the callback. Can be used to distinguish between different action calls without allocating a closure.
Function to call if the event has triggered an input action. The ID of the action will be passed as an argument, along with a boolean indicating if it was triggered by an inactive, or active event. The number passed into the emitEvent function will be passed as the third argument to this callback. The return value of the callback should indicate if the action was handled or not.
Pass an input event to transform into an input map.
The ActionIO system should withhold all input actions until after its node is drawn. This is when all input handling nodes that the system interacts with, like HoverIO and FocusIO, have been processed and are ready to handle the event.
Once processing has completed, if the event has triggered an action, the system will trigger the callback that was passed along with the event. Events that were saved in the system should be discarded.
Note if an event functions as a modifier — for example the "control" key in a "ctrl+c" action — it should not trigger the callback. In such case, only the last key, the "C" key in the example, will perform the call. This is to make sure the event is handled by the correct handler, and only once.