Trait cursive_core::view::ViewWrapper [−][src]
pub trait ViewWrapper: 'static {
type V: View + ?Sized;
fn with_view<F, R>(&self, f: F) -> Option<R>
where
F: FnOnce(&Self::V) -> R;
fn with_view_mut<F, R>(&mut self, f: F) -> Option<R>
where
F: FnOnce(&mut Self::V) -> R;
fn into_inner(self) -> Result<Self::V, Self>
where
Self: Sized,
Self::V: Sized,
{ ... }
fn wrap_draw(&self, printer: &Printer<'_, '_>) { ... }
fn wrap_required_size(&mut self, req: Vec2) -> Vec2 { ... }
fn wrap_on_event(&mut self, ch: Event) -> EventResult { ... }
fn wrap_layout(&mut self, size: Vec2) { ... }
fn wrap_take_focus(
&mut self,
source: Direction
) -> Result<EventResult, CannotFocus> { ... }
fn wrap_call_on_any<'a>(
&mut self,
selector: &Selector<'_>,
callback: AnyCb<'a>
) { ... }
fn wrap_focus_view(
&mut self,
selector: &Selector<'_>
) -> Result<EventResult, ViewNotFound> { ... }
fn wrap_needs_relayout(&self) -> bool { ... }
fn wrap_important_area(&self, size: Vec2) -> Rect { ... }
}Expand description
Generic wrapper around a view.
This trait is a shortcut to implement View on a type by forwarding
calls to a wrapped view.
You only need to define with_view and with_view_mut
(the wrap_impl! macro can help you with that), and you will get
the View implementation for free.
You can also override any of the wrap_* methods for more specific
behaviors (the default implementations simply forwards the calls to the
child view).
Associated Types
Required methods
Runs a function on the inner view, returning the result.
Returns None if the inner view is unavailable. This should only
happen with some views if they are already borrowed by another call.
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, [src]Runs a function on the inner view, returning the result.
Returns None if the inner view is unavailable. This should only
happen with some views if they are already borrowed by another call.
Provided methods
Attempts to retrieve the inner view.
fn wrap_required_size(&mut self, req: Vec2) -> Vec2[src]
fn wrap_required_size(&mut self, req: Vec2) -> Vec2[src]Wraps the required_size method.
fn wrap_on_event(&mut self, ch: Event) -> EventResult[src]
fn wrap_on_event(&mut self, ch: Event) -> EventResult[src]Wraps the on_event method.
fn wrap_layout(&mut self, size: Vec2)[src]
fn wrap_layout(&mut self, size: Vec2)[src]Wraps the layout method.
fn wrap_take_focus(
&mut self,
source: Direction
) -> Result<EventResult, CannotFocus>[src]
fn wrap_take_focus(
&mut self,
source: Direction
) -> Result<EventResult, CannotFocus>[src]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>)[src]Wraps the find method.
fn wrap_focus_view(
&mut self,
selector: &Selector<'_>
) -> Result<EventResult, ViewNotFound>[src]
fn wrap_focus_view(
&mut self,
selector: &Selector<'_>
) -> Result<EventResult, ViewNotFound>[src]Wraps the focus_view method.
fn wrap_needs_relayout(&self) -> bool[src]
fn wrap_needs_relayout(&self) -> bool[src]Wraps the needs_relayout method.
fn wrap_important_area(&self, size: Vec2) -> Rect[src]
fn wrap_important_area(&self, size: Vec2) -> Rect[src]Wraps the important_area method.