Struct cursive_core::views::OnLayoutView
source · pub struct OnLayoutView<V> { /* private fields */ }Expand description
View wrapper overriding the View::layout method.
Implementations§
source§impl<V: 'static> OnLayoutView<V>
impl<V: 'static> OnLayoutView<V>
sourcepub fn new<F>(view: V, on_layout: F) -> Self
pub fn new<F>(view: V, on_layout: F) -> Self
Wraps a view in an OnLayoutView.
Will run the given closure for layout instead of the one from view.
use cursive_core::{
views::{OnLayoutView, TextView},
View,
};
let view = TextView::new("foo");
// Here we just run the innver view's layout.
OnLayoutView::new(view, |v, s| v.layout(s));sourcepub fn wrap(view: V) -> Selfwhere
V: View,
pub fn wrap(view: V) -> Selfwhere
V: View,
Wraps a view in an OnLayoutView.
This is a shortcut for Self::new(view, V::layout)
You can change it later with set_on_layout.
sourcepub fn set_on_layout<F>(&mut self, on_layout: F)
pub fn set_on_layout<F>(&mut self, on_layout: F)
Replaces the callback to run.
sourcepub fn on_layout_cb<F: Fn(&mut V, Vec2) + 'static + Send + Sync>(
on_layout: F,
) -> Arc<dyn Fn(&mut V, Vec2) + Send + Sync>
pub fn on_layout_cb<F: Fn(&mut V, Vec2) + 'static + Send + Sync>( on_layout: F, ) -> Arc<dyn Fn(&mut V, Vec2) + Send + Sync>
Helper method to store a callback of the correct type for Self::set_on_layout.
This is mostly useful when using this view in a template.
sourcepub fn set_on_layout_cb(
&mut self,
on_layout: Arc<dyn Fn(&mut V, Vec2) + Send + Sync>,
)
pub fn set_on_layout_cb( &mut self, on_layout: Arc<dyn Fn(&mut V, Vec2) + Send + Sync>, )
Helper method to call Self::set_on_layout with a variable from a config.
This is mostly useful when writing a cursive blueprint for this view.
sourcepub fn get_inner_mut(&mut self) -> &mut V
pub fn get_inner_mut(&mut self) -> &mut V
Gets mutable access to the inner view.
Trait Implementations§
source§impl<V: View> ViewWrapper for OnLayoutView<V>
impl<V: View> ViewWrapper for OnLayoutView<V>
source§fn with_view<F, R>(&self, f: F) -> Option<R>
fn with_view<F, R>(&self, f: F) -> Option<R>
Runs a function on the inner view, returning the result. Read more
source§fn with_view_mut<F, R>(&mut self, f: F) -> Option<R>
fn with_view_mut<F, R>(&mut self, f: F) -> Option<R>
Runs a function on the inner view, returning the result. Read more
source§fn into_inner(self) -> Result<Self::V, Self>
fn into_inner(self) -> Result<Self::V, Self>
Attempts to retrieve the inner view.
source§fn wrap_layout(&mut self, size: Vec2)
fn wrap_layout(&mut self, size: Vec2)
Wraps the
layout method.source§fn wrap_required_size(&mut self, req: Vec2) -> Vec2
fn wrap_required_size(&mut self, req: Vec2) -> Vec2
Wraps the
required_size method.source§fn wrap_on_event(&mut self, ch: Event) -> EventResult
fn wrap_on_event(&mut self, ch: Event) -> EventResult
Wraps the
on_event method.source§fn wrap_take_focus(
&mut self,
source: Direction,
) -> Result<EventResult, CannotFocus>
fn wrap_take_focus( &mut self, source: Direction, ) -> Result<EventResult, CannotFocus>
Wraps the
take_focus method.source§fn wrap_call_on_any(&mut self, selector: &Selector<'_>, callback: AnyCb<'_>)
fn wrap_call_on_any(&mut self, selector: &Selector<'_>, callback: AnyCb<'_>)
Wraps the
find method.source§fn wrap_focus_view(
&mut self,
selector: &Selector<'_>,
) -> Result<EventResult, ViewNotFound>
fn wrap_focus_view( &mut self, selector: &Selector<'_>, ) -> Result<EventResult, ViewNotFound>
Wraps the
focus_view method.source§fn wrap_needs_relayout(&self) -> bool
fn wrap_needs_relayout(&self) -> bool
Wraps the
needs_relayout method.source§fn wrap_important_area(&self, size: Vec2) -> Rect
fn wrap_important_area(&self, size: Vec2) -> Rect
Wraps the
important_area method.Auto Trait Implementations§
impl<V> Freeze for OnLayoutView<V>where
V: Freeze,
impl<V> !RefUnwindSafe for OnLayoutView<V>
impl<V> Send for OnLayoutView<V>where
V: Send,
impl<V> Sync for OnLayoutView<V>where
V: Sync,
impl<V> Unpin for OnLayoutView<V>where
V: Unpin,
impl<V> !UnwindSafe for OnLayoutView<V>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Finder for Twhere
T: View,
impl<T> Finder for Twhere
T: View,
source§fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
Runs a callback on all views identified by
sel. Read moresource§fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
Runs a callback on the view identified by
sel. Read moresource§fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
Convenient method to use
call_on with a view::Selector::Name.source§impl<T> IntoBoxedView for Twhere
T: View,
impl<T> IntoBoxedView for Twhere
T: View,
source§fn into_boxed_view(self) -> Box<dyn View>
fn into_boxed_view(self) -> Box<dyn View>
Returns a
Box<View>.source§impl<T> Resizable for Twhere
T: View,
impl<T> Resizable for Twhere
T: View,
source§fn resized(
self,
width: SizeConstraint,
height: SizeConstraint,
) -> ResizedView<Self>
fn resized( self, width: SizeConstraint, height: SizeConstraint, ) -> ResizedView<Self>
Wraps
self in a ResizedView with the given size constraints.source§fn fixed_size<S: Into<Vec2>>(self, size: S) -> ResizedView<Self>
fn fixed_size<S: Into<Vec2>>(self, size: S) -> ResizedView<Self>
Wraps
self into a fixed-size ResizedView.source§fn fixed_width(self, width: usize) -> ResizedView<Self>
fn fixed_width(self, width: usize) -> ResizedView<Self>
Wraps
self into a fixed-width ResizedView.source§fn fixed_height(self, height: usize) -> ResizedView<Self>
fn fixed_height(self, height: usize) -> ResizedView<Self>
Wraps
self into a fixed-width ResizedView.source§fn full_screen(self) -> ResizedView<Self>
fn full_screen(self) -> ResizedView<Self>
Wraps
self into a full-screen ResizedView.source§fn full_width(self) -> ResizedView<Self>
fn full_width(self) -> ResizedView<Self>
Wraps
self into a full-width ResizedView.source§fn full_height(self) -> ResizedView<Self>
fn full_height(self) -> ResizedView<Self>
Wraps
self into a full-height ResizedView.source§fn max_size<S: Into<Vec2>>(self, size: S) -> ResizedView<Self>
fn max_size<S: Into<Vec2>>(self, size: S) -> ResizedView<Self>
Wraps
self into a limited-size ResizedView.source§fn max_width(self, max_width: usize) -> ResizedView<Self>
fn max_width(self, max_width: usize) -> ResizedView<Self>
Wraps
self into a limited-width ResizedView.source§fn max_height(self, max_height: usize) -> ResizedView<Self>
fn max_height(self, max_height: usize) -> ResizedView<Self>
Wraps
self into a limited-height ResizedView.source§fn min_size<S: Into<Vec2>>(self, size: S) -> ResizedView<Self>
fn min_size<S: Into<Vec2>>(self, size: S) -> ResizedView<Self>
Wraps
self into a ResizedView at least sized size.source§fn min_width(self, min_width: usize) -> ResizedView<Self>
fn min_width(self, min_width: usize) -> ResizedView<Self>
Wraps
self in a ResizedView at least min_width wide.source§fn min_height(self, min_height: usize) -> ResizedView<Self>
fn min_height(self, min_height: usize) -> ResizedView<Self>
Wraps
self in a ResizedView at least min_height tall.source§impl<T> Scrollable for Twhere
T: View,
impl<T> Scrollable for Twhere
T: View,
source§fn scrollable(self) -> ScrollView<Self>
fn scrollable(self) -> ScrollView<Self>
Wraps
self in a ScrollView.source§impl<T> View for Twhere
T: ViewWrapper,
impl<T> View for Twhere
T: ViewWrapper,
source§fn draw(&self, printer: &Printer<'_, '_>)
fn draw(&self, printer: &Printer<'_, '_>)
Draws the view with the given printer (includes bounds) and focus. Read more
source§fn required_size(&mut self, req: XY<usize>) -> XY<usize>
fn required_size(&mut self, req: XY<usize>) -> XY<usize>
Returns the minimum size the view requires with the given restrictions. Read more
source§fn on_event(&mut self, ch: Event) -> EventResult
fn on_event(&mut self, ch: Event) -> EventResult
Called when an event is received (key press, mouse event, …). Read more
source§fn layout(&mut self, size: XY<usize>)
fn layout(&mut self, size: XY<usize>)
Called once the size for this view has been decided. Read more
source§fn take_focus(&mut self, source: Direction) -> Result<EventResult, CannotFocus>
fn take_focus(&mut self, source: Direction) -> Result<EventResult, CannotFocus>
Attempt to give this view the focus. Read more
source§fn call_on_any(
&mut self,
selector: &Selector<'_>,
callback: &mut dyn FnMut(&mut (dyn View + 'static)),
)
fn call_on_any( &mut self, selector: &Selector<'_>, callback: &mut dyn FnMut(&mut (dyn View + 'static)), )
Runs a closure on the view identified by the given selector. Read more
source§fn needs_relayout(&self) -> bool
fn needs_relayout(&self) -> bool
source§fn focus_view(
&mut self,
selector: &Selector<'_>,
) -> Result<EventResult, ViewNotFound>
fn focus_view( &mut self, selector: &Selector<'_>, ) -> Result<EventResult, ViewNotFound>
Moves the focus to the view identified by the given selector. Read more