Trait cursive::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) -> bool { ... }
fn wrap_call_on_any<'a>(
        &mut self,
        selector: &Selector,
        callback: Box<FnMut(&mut Any) + 'a>
    ) { ... }
fn wrap_focus_view(&mut self, selector: &Selector) -> Result<(), ()> { ... }
fn wrap_needs_relayout(&self) -> bool { ... } }

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

Type that this view wraps.

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.

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.

Wraps the draw method.

Wraps the required_size method.

Wraps the on_event method.

Wraps the layout method.

Wraps the take_focus method.

Wraps the find method.

Wraps the focus_view method.

Wraps the needs_relayout method.

Implementors