Struct ResizedView

Source
pub struct ResizedView<T> { /* private fields */ }
Expand description

Wrapper around another view, with a controlled size.

Each axis can independently be set to:

  • Keep a fixed size
  • Use all available size
  • Use at most a given size
  • Use at least a given size
  • Let the wrapped view decide.

§Examples

use cursive_core::views::{ResizedView, TextView};

// Creates a 20x4 ResizedView with a TextView content.
let view = ResizedView::with_fixed_size((20, 4), TextView::new("Hello!"));

See also Resizable for an easy way to wrap any view.

Implementations§

Source§

impl<T> ResizedView<T>

Source

pub fn new( width: SizeConstraint, height: SizeConstraint, view: T, ) -> ResizedView<T>

Creates a new ResizedView with the given width and height requirements.

None values will use the wrapped view’s preferences.

Source

pub fn set_constraints(&mut self, width: SizeConstraint, height: SizeConstraint)

Sets the size constraints for this view.

Source

pub fn set_width(&mut self, width: SizeConstraint)

Sets the width constraint for this view.

Leaves the height unchanged.

Source

pub fn set_height(&mut self, height: SizeConstraint)

Sets the height constraint for this view.

Leaves the width unchanged.

Source

pub fn with_fixed_size<S>(size: S, view: T) -> ResizedView<T>
where S: Into<XY<usize>>,

Wraps view in a new ResizedView with the given size.

Source

pub fn with_fixed_width(width: usize, view: T) -> ResizedView<T>

Wraps view in a new ResizedView with fixed width.

Source

pub fn with_fixed_height(height: usize, view: T) -> ResizedView<T>

Wraps view in a new ResizedView with fixed height.

Source

pub fn with_full_screen(view: T) -> ResizedView<T>

Wraps view in a ResizedView which will take all available space.

Source

pub fn with_full_width(view: T) -> ResizedView<T>

Wraps view in a ResizedView which will take all available width.

Source

pub fn with_full_height(view: T) -> ResizedView<T>

Wraps view in a ResizedView which will take all available height.

Source

pub fn with_max_size<S>(size: S, view: T) -> ResizedView<T>
where S: Into<XY<usize>>,

Wraps view in a ResizedView which will never be bigger than size.

Source

pub fn with_max_width(max_width: usize, view: T) -> ResizedView<T>

Wraps view in a ResizedView which will enforce a maximum width.

The resulting width will never be more than max_width.

Source

pub fn with_max_height(max_height: usize, view: T) -> ResizedView<T>

Wraps view in a ResizedView which will enforce a maximum height.

The resulting height will never be more than max_height.

Source

pub fn with_min_size<S>(size: S, view: T) -> ResizedView<T>
where S: Into<XY<usize>>,

Wraps view in a ResizedView which will never be smaller than size.

As long as the parent view is large enough.

If the space is constrained (for example the window is too small), this view might still be given a smaller size than requested.

Source

pub fn with_min_width(min_width: usize, view: T) -> ResizedView<T>

Wraps view in a ResizedView which will enforce a minimum width.

The resulting width will never be less than min_width.

Source

pub fn with_min_height(min_height: usize, view: T) -> ResizedView<T>

Wraps view in a ResizedView which will enforce a minimum height.

The resulting height will never be less than min_height.

Source

pub fn get_inner(&self) -> &T

Gets access to the inner view.

Source

pub fn get_inner_mut(&mut self) -> &mut T

Gets mutable access to the inner view.

Trait Implementations§

Source§

impl<T> ViewWrapper for ResizedView<T>
where T: View,

Source§

type V = T

Type that this view wraps.
Source§

fn with_view<F, R>(&self, f: F) -> Option<R>
where F: FnOnce(&<ResizedView<T> as ViewWrapper>::V) -> 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>
where F: FnOnce(&mut <ResizedView<T> as ViewWrapper>::V) -> R,

Runs a function on the inner view, returning the result. Read more
Source§

fn into_inner( self, ) -> Result<<ResizedView<T> as ViewWrapper>::V, ResizedView<T>>
where <ResizedView<T> as ViewWrapper>::V: Sized,

Attempts to retrieve the inner view.
Source§

fn wrap_draw(&self, printer: &Printer<'_, '_>)

Wraps the draw method.
Source§

fn wrap_required_size(&mut self, req: XY<usize>) -> XY<usize>

Wraps the required_size method.
Source§

fn wrap_layout(&mut self, size: XY<usize>)

Wraps the layout method.
Source§

fn wrap_needs_relayout(&self) -> bool

Wraps the needs_relayout method.
Source§

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>

Wraps the take_focus method.
Source§

fn wrap_call_on_any( &mut self, selector: &Selector<'_>, callback: &mut dyn FnMut(&mut (dyn View + 'static)), )

Wraps the find method.
Source§

fn wrap_focus_view( &mut self, selector: &Selector<'_>, ) -> Result<EventResult, ViewNotFound>

Wraps the focus_view method.
Source§

fn wrap_important_area(&self, size: XY<usize>) -> Rect

Wraps the important_area method.

Auto Trait Implementations§

§

impl<T> Freeze for ResizedView<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for ResizedView<T>
where T: RefUnwindSafe,

§

impl<T> Send for ResizedView<T>
where T: Send,

§

impl<T> Sync for ResizedView<T>
where T: Sync,

§

impl<T> Unpin for ResizedView<T>
where T: Unpin,

§

impl<T> UnwindSafe for ResizedView<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyView for T
where T: View,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Downcast self to a Any.

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Downcast self to a mutable Any.

Source§

fn as_boxed_any(self: Box<T>) -> Box<dyn Any>

Returns a boxed any from a boxed self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Finder for T
where T: View,

Source§

fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
where V: View, F: FnMut(&mut V),

Runs a callback on all views identified by sel. Read more
Source§

fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
where V: View, F: FnOnce(&mut V) -> R,

Runs a callback on the view identified by sel. Read more
Source§

fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
where V: View, F: FnOnce(&mut V) -> R,

Convenient method to use call_on with a view::Selector::Name.
Source§

fn find_name<V>(&mut self, name: &str) -> Option<ViewRef<V>>
where V: View,

Convenient method to find a view wrapped in an NamedView.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoBoxedView for T
where T: View,

Source§

fn into_boxed_view(self) -> Box<dyn View>

Returns a Box<View>.
Source§

impl<T> Nameable for T
where T: View,

Source§

fn with_name<S>(self, name: S) -> NamedView<Self>
where S: Into<String>,

Wraps this view into an NamedView with the given id. Read more
Source§

impl<T> Resizable for T
where T: View,

Source§

fn resized( self, width: SizeConstraint, height: SizeConstraint, ) -> ResizedView<Self>

Wraps self in a ResizedView with the given size constraints.
Source§

fn fixed_size<S>(self, size: S) -> ResizedView<Self>
where S: Into<XY<usize>>,

Wraps self into a fixed-size ResizedView.
Source§

fn fixed_width(self, width: usize) -> ResizedView<Self>

Wraps self into a fixed-width ResizedView.
Source§

fn fixed_height(self, height: usize) -> ResizedView<Self>

Wraps self into a fixed-width ResizedView.
Source§

fn full_screen(self) -> ResizedView<Self>

Wraps self into a full-screen ResizedView.
Source§

fn full_width(self) -> ResizedView<Self>

Wraps self into a full-width ResizedView.
Source§

fn full_height(self) -> ResizedView<Self>

Wraps self into a full-height ResizedView.
Source§

fn max_size<S>(self, size: S) -> ResizedView<Self>
where S: Into<XY<usize>>,

Wraps self into a limited-size ResizedView.
Source§

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>

Wraps self into a limited-height ResizedView.
Source§

fn min_size<S>(self, size: S) -> ResizedView<Self>
where S: Into<XY<usize>>,

Wraps self into a ResizedView at least sized size.
Source§

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>

Wraps self in a ResizedView at least min_height tall.
Source§

impl<T> Scrollable for T
where T: View,

Source§

fn scrollable(self) -> ScrollView<Self>

Wraps self in a ScrollView.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> View for T
where T: ViewWrapper,

Source§

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>

Returns the minimum size the view requires with the given restrictions. Read more
Source§

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>)

Called once the size for this view has been decided. Read more
Source§

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)), )

Runs a closure on the view identified by the given selector. Read more
Source§

fn needs_relayout(&self) -> bool

Should return true if the view content changed since the last call to layout(). Read more
Source§

fn focus_view( &mut self, selector: &Selector<'_>, ) -> Result<EventResult, ViewNotFound>

Moves the focus to the view identified by the given selector. Read more
Source§

fn important_area(&self, size: XY<usize>) -> Rect

What part of the view is important and should be visible? Read more
Source§

fn type_name(&self) -> &'static str

Returns the type of this view. Read more
Source§

impl<T> With for T

Source§

fn wrap_with<U, F>(self, f: F) -> U
where F: FnOnce(Self) -> U,

Calls the given closure and return the result. Read more
Source§

fn with<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Calls the given closure on self.
Source§

fn try_with<E, F>(self, f: F) -> Result<Self, E>
where F: FnOnce(&mut Self) -> Result<(), E>,

Calls the given closure on self.
Source§

fn with_if<F>(self, condition: bool, f: F) -> Self
where F: FnOnce(&mut Self),

Calls the given closure if condition == true.