Expand description

System for handling input related events.


A weight can be assigned to each hook via the respective builder. Weight defines the order in which hooks of the same class are called. A higher weight will be called first. Hooks that have a weight specified can also block the execution of hooks in the same class by a NoPass varient of InputHookCtrl.

Press/Hold/Release Weight Class

These hook types all share the same weighing. An important note with this class is that window hooks will get called before bin hooks. A press hook with a higher weight than a release hook that returns a NoPass varient of InputHookCtrl will prevent the release from being called if the either share a key. Likewise with a hold, a press of a higher weight can prevent it getting it called, but unlike release it will not prevent it from getting released.


Window and Bins are seperate in the class of weights. Only hooks targeted for bins can prevent hooks towards bins. Likewise with windows. A hook can effect multiple bins depending of if require_on_top has been set to false. In this case hooks on different bins can block the execution of one another.


Window and Bins are treated the same. They are called in order of their weight. Calling a NoPass varient of InputHookCtrl prevents the execution of all lesser weighed hooks.


Similar to Enter/Leave, but a hook can not effect multiple bins.


Similar to Enter/Leave, but windows and bins are in the same class of weights.


Same behavior as Scroll.


Similar to Character, but there are no targets.


pub use self::key::Char;
pub use self::key::Key;
pub use self::key::MouseButton;
pub use self::key::Qwerty;


Collection of builders used for Input.
Various Key related definitions
Various state related definitions


The main struct for the input system.
An ID of a Input hook.


An error that is returned by various Input related methods.
An event that Input should process.
Controls what happens after the hook method is called.
The target of a hook.