Struct cursive::views::OnEventView [] [src]

pub struct OnEventView<T: View> { /* fields omitted */ }

A wrapper view that can react to events.

This view registers a set of callbacks tied to specific events, to be run in certain conditions.

  • Some callbacks are called only for vents ignored by the wrapped view (those registered by on_event or on_event_inner)
  • Others are processed first, and can control whether the child view should be given the event (those registered by on_pre_event or on_pre_event_inner).

"Inner" callbacks (on_event_inner and on_pre_event_inner) are given a reference to the inner wrapped view (but not to the Cursive root). They can then return another callback, taking only a &mut Cursive root as argument.

"Simple" callbacks (on_event and on_pre_event) skip this first phase and are only called with a &mut Cursive.

Examples

let view = OnEventView::new(TextView::new("This view has an event!"))
                        .on_event('q', |s| s.quit())
                        .on_event(event::Key::Esc, |s| s.quit());

Methods

impl<T: View> OnEventView<T>
[src]

[src]

Wraps the given view in a new OnEventView.

[src]

Registers a callback when the given event is ignored by the child.

Chainable variant.

[src]

Registers a callback when the given event is received.

The child will never receive this event.

Chainable variant.

[src]

Registers a callback when the given event is received.

The given callback will be run before the child view sees the event.

  • If the result is None, then the child view is given the event as usual.
  • Otherwise, it bypasses the child view and directly processes the result.

Chainable variant.

[src]

Registers a callback when the given event is ignored by the child.

If the child view ignores the event, cb will be called with the child view as argument. If the result is not None, it will be processed as well.

Chainable variant.

[src]

Registers a callback when the given event is ignored by the child.

[src]

Registers a callback when the given event is received.

The child will never receive this event.

[src]

Registers a callback when the given event is received.

The given callback will be run before the child view sees the event.

  • If the result is None, then the child view is given the event as usual.
  • Otherwise, it bypasses the child view and directly processes the result.

[src]

Registers a callback when the given event is ignored by the child.

If the child view ignores the event, cb will be called with the child view as argument. If the result is not None, it will be processed as well.

Trait Implementations

impl<T: View> ViewWrapper for OnEventView<T>
[src]

Type that this view wraps.

[src]

Runs a function on the inner view, returning the result. Read more

[src]

Runs a function on the inner view, returning the result. Read more

[src]

Wraps the on_event method.

[src]

Wraps the draw method.

[src]

Wraps the required_size method.

[src]

Wraps the layout method.

[src]

Wraps the take_focus method.

[src]

Wraps the find method.

[src]

Wraps the focus_view method.

[src]

Wraps the needs_relayout method.