Trait rat_event::HandleEvent
source · pub trait HandleEvent<Event, Qualifier, R: ConsumedEvent> {
// Required method
fn handle(&mut self, event: &Event, qualifier: Qualifier) -> R;
}Expand description
A very broad trait for an event handler for widgets.
As widget types are only short-lived, this trait should be implemented for the state type. Thereby it can modify any state, and it can return an arbitrary result, that fits the widget.
Required Methods§
sourcefn handle(&mut self, event: &Event, qualifier: Qualifier) -> R
fn handle(&mut self, event: &Event, qualifier: Qualifier) -> R
Handle an event.
-
self - Should be the widget state.
-
event - Event
-
qualifier - Allows specifying/restricting the behaviour of the event-handler.
This library defines two possible types:
- FocusKeys - The event-handler does all the interactions for a focused widget. This calls the event-handler for MouseOnly too.
- MouseOnly - Interactions for a non-focused widget. Mostly only reacting to mouse-events. But might check for hotkeys or the like.
Further ideas:
- ReadOnly
- Additional special behaviour like DoubleClick, HotKeyAlt, HotKeyCtrl.
- Opt-in behaviour like different key-bindings.
- Configurable key-map.
- Other context or configuration parameters.