Trait rat_widget::event::HandleEvent

source ·
pub trait HandleEvent<Event, Qualifier, R>
where 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§

source§

impl HandleEvent<Event, ConvenientKeys, TextOutcome> for DateInputState

source§

impl HandleEvent<Event, Dialog, Outcome> for MsgDialogState

source§

impl HandleEvent<Event, FocusKeys, ButtonOutcome> for ButtonState

source§

impl HandleEvent<Event, FocusKeys, MenuOutcome> for MenuBarState

source§

impl HandleEvent<Event, FocusKeys, MenuOutcome> for MenuLineState

source§

impl HandleEvent<Event, FocusKeys, Outcome> for RListState<NoSelection>

source§

impl HandleEvent<Event, FocusKeys, Outcome> for RListState<RowSelection>

source§

impl HandleEvent<Event, FocusKeys, Outcome> for RListState<RowSetSelection>

source§

impl HandleEvent<Event, FocusKeys, Outcome> for FTableState<CellSelection>

source§

impl HandleEvent<Event, FocusKeys, Outcome> for FTableState<NoSelection>

source§

impl HandleEvent<Event, FocusKeys, Outcome> for FTableState<RowSelection>

source§

impl HandleEvent<Event, FocusKeys, Outcome> for FTableState<RowSetSelection>

source§

impl HandleEvent<Event, FocusKeys, TextOutcome> for DateInputState

source§

impl HandleEvent<Event, FocusKeys, TextOutcome> for TextInputState

source§

impl HandleEvent<Event, FocusKeys, TextOutcome> for MaskedInputState

source§

impl HandleEvent<Event, FocusKeys, TextOutcome> for NumberInputState

source§

impl HandleEvent<Event, FocusKeys, TextOutcome> for TextAreaState

source§

impl HandleEvent<Event, MouseOnly, ButtonOutcome> for ButtonState

source§

impl HandleEvent<Event, MouseOnly, MenuOutcome> for MenuBarState

source§

impl HandleEvent<Event, MouseOnly, MenuOutcome> for MenuLineState

source§

impl HandleEvent<Event, MouseOnly, MenuOutcome> for PopupMenuState

source§

impl HandleEvent<Event, MouseOnly, Outcome> for RListState<NoSelection>

source§

impl HandleEvent<Event, MouseOnly, Outcome> for RListState<RowSelection>

source§

impl HandleEvent<Event, MouseOnly, Outcome> for RListState<RowSetSelection>

source§

impl HandleEvent<Event, MouseOnly, Outcome> for ViewState

source§

impl HandleEvent<Event, MouseOnly, Outcome> for FTableState<CellSelection>

source§

impl HandleEvent<Event, MouseOnly, Outcome> for FTableState<NoSelection>

source§

impl HandleEvent<Event, MouseOnly, Outcome> for FTableState<RowSelection>

source§

impl HandleEvent<Event, MouseOnly, Outcome> for FTableState<RowSetSelection>

source§

impl HandleEvent<Event, MouseOnly, ScrollOutcome> for ScrollState

source§

impl HandleEvent<Event, MouseOnly, TextOutcome> for DateInputState

source§

impl HandleEvent<Event, MouseOnly, TextOutcome> for TextInputState

source§

impl HandleEvent<Event, MouseOnly, TextOutcome> for MaskedInputState

source§

impl HandleEvent<Event, MouseOnly, TextOutcome> for NumberInputState

source§

impl HandleEvent<Event, MouseOnly, TextOutcome> for TextAreaState

source§

impl HandleEvent<Event, Popup, MenuOutcome> for MenuBarState

source§

impl HandleEvent<Event, Popup, MenuOutcome> for PopupMenuState

source§

impl HandleEvent<Event, ReadOnly, TextOutcome> for DateInputState

source§

impl HandleEvent<Event, ReadOnly, TextOutcome> for TextInputState

source§

impl HandleEvent<Event, ReadOnly, TextOutcome> for MaskedInputState

source§

impl HandleEvent<Event, ReadOnly, TextOutcome> for NumberInputState

source§

impl HandleEvent<Event, ReadOnly, TextOutcome> for TextAreaState

source§

impl<'a> HandleEvent<Event, FocusKeys, Outcome> for Focus<'a>

source§

impl<'a> HandleEvent<Event, MouseOnly, Outcome> for Focus<'a>

source§

impl<'a> HandleEvent<Event, MouseOnly, ScrollOutcome> for ScrollArea<'a>

Handle scrolling for the whole area spanned by the two scroll-states.

source§

impl<EState, EQualifier> HandleEvent<Event, EQualifier, EditOutcome> for EditFTableState<EState>
where EState: HandleEvent<Event, EQualifier, EditOutcome>,

source§

impl<R, Q, S> HandleEvent<Event, Q, R> for ViewportState<S>
where S: HandleEvent<Event, Q, R>, R: From<Outcome> + ConsumedEvent + Debug,

source§

impl<Selection> HandleEvent<Event, DoubleClick, DoubleClickOutcome> for FTableState<Selection>

source§

impl<Selection> HandleEvent<Event, EditKeys, EditOutcome> for FTableState<Selection>
where Selection: TableSelection, FTableState<Selection>: HandleEvent<Event, FocusKeys, Outcome>,