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§

source

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.

Implementors§