Struct cursive::views::OnEventView
[−]
[src]
pub struct OnEventView<T: View> { /* fields omitted */ }
A simple wrapper view that catches some ignored event from its child.
If the event doesn't have a corresponding callback, it will stay ignored.
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]
fn new(view: T) -> Self
[src]
Wraps the given view in a new OnEventView.
fn on_event<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
[src]
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
Registers a callback when the given event is ignored by the child.
Chainable variant.
fn on_pre_event<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
[src]
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
Registers a callback when the given event is received.
The child will never receive this event.
Chainable variant.
fn on_pre_event_inner<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
[src]
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
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.
fn on_event_inner<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
[src]
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
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.
fn set_on_event<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
[src]
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
Registers a callback when the given event is ignored by the child.
fn set_on_pre_event<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
[src]
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
Registers a callback when the given event is received.
The child will never receive this event.
fn set_on_pre_event_inner<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
[src]
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
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.
fn set_on_event_inner<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
[src]
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
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 V = T
Type that this view wraps.
fn with_view<F, R>(&self, f: F) -> Option<R> where
F: FnOnce(&Self::V) -> R,
[src]
F: FnOnce(&Self::V) -> R,
Runs a function on the inner view, returning the result. Read more
fn with_view_mut<F, R>(&mut self, f: F) -> Option<R> where
F: FnOnce(&mut Self::V) -> R,
[src]
F: FnOnce(&mut Self::V) -> R,
Runs a function on the inner view, returning the result. Read more
fn wrap_on_event(&mut self, event: Event) -> EventResult
[src]
Wraps the on_event
method.
fn wrap_draw(&self, printer: &Printer)
[src]
Wraps the draw
method.
fn wrap_required_size(&mut self, req: Vec2) -> Vec2
[src]
Wraps the required_size
method.
fn wrap_layout(&mut self, size: Vec2)
[src]
Wraps the layout
method.
fn wrap_take_focus(&mut self, source: Direction) -> bool
[src]
Wraps the take_focus
method.
fn wrap_call_on_any<'a>(
&mut self,
selector: &Selector,
callback: Box<FnMut(&mut Any) + 'a>
)
[src]
&mut self,
selector: &Selector,
callback: Box<FnMut(&mut Any) + 'a>
)
Wraps the find
method.
fn wrap_focus_view(&mut self, selector: &Selector) -> Result<(), ()>
[src]
Wraps the focus_view
method.
fn wrap_needs_relayout(&self) -> bool
[src]
Wraps the needs_relayout
method.