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.
Note: only one callback can be registered per event. Trying to register a new one will replace any existing one for that event.
- Some callbacks are called only for vents ignored by the wrapped view
(those registered by
on_event
oron_event_inner
) - Others are processed first, and can control whether the child view should
be given the event (those registered by
on_pre_event
oron_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]
impl<T: View> OnEventView<T>
pub fn new(view: T) -> Self
[src]
pub fn new(view: T) -> Self
Wraps the given view in a new OnEventView.
pub fn on_event<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: 'static + Fn(&mut Cursive),
[src]
pub fn on_event<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: 'static + Fn(&mut Cursive),
Registers a callback when the given event is ignored by the child.
Chainable variant.
pub fn on_pre_event<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: 'static + Fn(&mut Cursive),
[src]
pub fn on_pre_event<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: 'static + Fn(&mut Cursive),
Registers a callback when the given event is received.
The child will never receive this event.
Chainable variant.
pub 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]
pub fn on_pre_event_inner<F, E>(self, event: E, cb: F) -> Self where
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.
pub fn on_event_inner<F, E>(self, event: E, cb: F) -> Self where
E: Into<Event>,
F: Fn(&mut T) -> Option<EventResult> + 'static,
[src]
pub fn on_event_inner<F, E>(self, event: E, cb: F) -> Self where
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.
pub fn set_on_event<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
[src]
pub fn set_on_event<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: Fn(&mut Cursive) + 'static,
Registers a callback when the given event is ignored by the child.
pub fn set_on_pre_event<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: 'static + Fn(&mut Cursive),
[src]
pub fn set_on_pre_event<F, E>(&mut self, event: E, cb: F) where
E: Into<Event>,
F: 'static + Fn(&mut Cursive),
Registers a callback when the given event is received.
The child will never receive this event.
pub 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]
pub 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,
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.
pub 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]
pub fn set_on_event_inner<F, E>(&mut self, event: E, cb: F) where
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.
ⓘImportant traits for &'a mut Rpub fn get_inner(&self) -> &T
[src]
pub fn get_inner(&self) -> &T
Gets access to the inner view.
ⓘImportant traits for &'a mut Rpub fn get_inner_mut(&mut self) -> &mut T
[src]
pub fn get_inner_mut(&mut self) -> &mut T
Gets mutable access to the inner view.
Trait Implementations
impl<T: View> ViewWrapper for OnEventView<T>
[src]
impl<T: View> ViewWrapper for OnEventView<T>
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]
fn with_view<F, R>(&self, f: F) -> Option<R> where
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]
fn with_view_mut<F, R>(&mut self, f: F) -> Option<R> where
F: FnOnce(&mut Self::V) -> R,
Runs a function on the inner view, returning the result. Read more
fn into_inner(self) -> Result<Self::V, Self> where
Self::V: Sized,
[src]
fn into_inner(self) -> Result<Self::V, Self> where
Self::V: Sized,
Attempts to retrieve the inner view.
fn wrap_on_event(&mut self, event: Event) -> EventResult
[src]
fn wrap_on_event(&mut self, event: Event) -> EventResult
Wraps the on_event
method.
fn wrap_draw(&self, printer: &Printer)
[src]
fn wrap_draw(&self, printer: &Printer)
Wraps the draw
method.
fn wrap_required_size(&mut self, req: Vec2) -> Vec2
[src]
fn wrap_required_size(&mut self, req: Vec2) -> Vec2
Wraps the required_size
method.
fn wrap_layout(&mut self, size: Vec2)
[src]
fn wrap_layout(&mut self, size: Vec2)
Wraps the layout
method.
fn wrap_take_focus(&mut self, source: Direction) -> bool
[src]
fn wrap_take_focus(&mut self, source: Direction) -> bool
Wraps the take_focus
method.
fn wrap_call_on_any<'a>(&mut self, selector: &Selector, callback: AnyCb<'a>)
[src]
fn wrap_call_on_any<'a>(&mut self, selector: &Selector, callback: AnyCb<'a>)
Wraps the find
method.
fn wrap_focus_view(&mut self, selector: &Selector) -> Result<(), ()>
[src]
fn wrap_focus_view(&mut self, selector: &Selector) -> Result<(), ()>
Wraps the focus_view
method.
fn wrap_needs_relayout(&self) -> bool
[src]
fn wrap_needs_relayout(&self) -> bool
Wraps the needs_relayout
method.
fn wrap_important_area(&self, size: Vec2) -> Rect
[src]
fn wrap_important_area(&self, size: Vec2) -> Rect
Wraps the important_area
method.
Auto Trait Implementations
impl<T> !Send for OnEventView<T>
impl<T> !Send for OnEventView<T>
impl<T> !Sync for OnEventView<T>
impl<T> !Sync for OnEventView<T>