pub struct BoxView<T: View> { /* 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
// Creates a 20x4 BoxView with a TextView content.
let view = BoxView::with_fixed_size((20,4), TextView::new("Hello!"));
Implementations
sourceimpl<T: View> BoxView<T>
impl<T: View> BoxView<T>
sourcepub fn new(width: SizeConstraint, height: SizeConstraint, view: T) -> Self
pub fn new(width: SizeConstraint, height: SizeConstraint, view: T) -> Self
Creates a new BoxView
with the given width and height requirements.
None
values will use the wrapped view’s preferences.
sourcepub fn set_constraints(&mut self, width: SizeConstraint, height: SizeConstraint)
pub fn set_constraints(&mut self, width: SizeConstraint, height: SizeConstraint)
Sets the size constraints for this view.
sourcepub fn set_width(&mut self, width: SizeConstraint)
pub fn set_width(&mut self, width: SizeConstraint)
Sets the width constraint for this view.
Leaves the height unchanged.
sourcepub fn set_height(&mut self, height: SizeConstraint)
pub fn set_height(&mut self, height: SizeConstraint)
Sets the height constraint for this view.
Leaves the width unchanged.
sourcepub fn squishable(self) -> Self
pub fn squishable(self) -> Self
Sets self
to be squishable.
A squishable BoxView
will take a smaller size than it should when
the available space is too small. In that case, it will allow the
child view to contract, if it can.
More specifically, if the available space is less than the size we would normally ask for, return the child size.
sourcepub fn set_squishable(&mut self, squishable: bool)
pub fn set_squishable(&mut self, squishable: bool)
Controls the “squishability” of self
.
sourcepub fn with_fixed_size<S: Into<Vec2>>(size: S, view: T) -> Self
pub fn with_fixed_size<S: Into<Vec2>>(size: S, view: T) -> Self
Wraps view
in a new BoxView
with the given size.
sourcepub fn with_fixed_width(width: usize, view: T) -> Self
pub fn with_fixed_width(width: usize, view: T) -> Self
Wraps view
in a new BoxView
with fixed width.
sourcepub fn with_fixed_height(height: usize, view: T) -> Self
pub fn with_fixed_height(height: usize, view: T) -> Self
Wraps view
in a new BoxView
with fixed height.
sourcepub fn with_full_screen(view: T) -> Self
pub fn with_full_screen(view: T) -> Self
Wraps view
in a BoxView
which will take all available space.
sourcepub fn with_full_width(view: T) -> Self
pub fn with_full_width(view: T) -> Self
Wraps view
in a BoxView
which will take all available width.
sourcepub fn with_full_height(view: T) -> Self
pub fn with_full_height(view: T) -> Self
Wraps view
in a BoxView
which will take all available height.
sourcepub fn with_max_size<S: Into<Vec2>>(size: S, view: T) -> Self
pub fn with_max_size<S: Into<Vec2>>(size: S, view: T) -> Self
Wraps view
in a BoxView
which will never be bigger than size
.
sourcepub fn with_max_width(max_width: usize, view: T) -> Self
pub fn with_max_width(max_width: usize, view: T) -> Self
Wraps view
in a BoxView
which will enforce a maximum width.
The resulting width will never be more than max_width
.
sourcepub fn with_max_height(max_height: usize, view: T) -> Self
pub fn with_max_height(max_height: usize, view: T) -> Self
Wraps view
in a BoxView
which will enforce a maximum height.
The resulting height will never be more than max_height
.
sourcepub fn with_min_size<S: Into<Vec2>>(size: S, view: T) -> Self
pub fn with_min_size<S: Into<Vec2>>(size: S, view: T) -> Self
Wraps view
in a BoxView
which will never be smaller than size
.
sourcepub fn with_min_width(min_width: usize, view: T) -> Self
pub fn with_min_width(min_width: usize, view: T) -> Self
Wraps view
in a BoxView
which will enforce a minimum width.
The resulting width will never be less than min_width
.
sourcepub fn with_min_height(min_height: usize, view: T) -> Self
pub fn with_min_height(min_height: usize, view: T) -> Self
Wraps view
in a BoxView
which will enforce a minimum height.
The resulting height will never be less than min_height
.
sourcepub fn get_inner_mut(&mut self) -> &mut T
pub fn get_inner_mut(&mut self) -> &mut T
Gets mutable access to the inner view.
Trait Implementations
sourceimpl<T: View> ViewWrapper for BoxView<T>
impl<T: View> ViewWrapper for BoxView<T>
type V = T
type V = T
sourcefn with_view<F, R>(&self, f: F) -> Option<R>where
F: FnOnce(&Self::V) -> R,
fn with_view<F, R>(&self, f: F) -> Option<R>where
F: FnOnce(&Self::V) -> R,
sourcefn with_view_mut<F, R>(&mut self, f: F) -> Option<R>where
F: FnOnce(&mut Self::V) -> R,
fn with_view_mut<F, R>(&mut self, f: F) -> Option<R>where
F: FnOnce(&mut Self::V) -> R,
sourcefn into_inner(self) -> Result<Self::V, Self>where
Self::V: Sized,
fn into_inner(self) -> Result<Self::V, Self>where
Self::V: Sized,
sourcefn wrap_required_size(&mut self, req: Vec2) -> Vec2
fn wrap_required_size(&mut self, req: Vec2) -> Vec2
required_size
method.sourcefn wrap_layout(&mut self, size: Vec2)
fn wrap_layout(&mut self, size: Vec2)
layout
method.sourcefn wrap_needs_relayout(&self) -> bool
fn wrap_needs_relayout(&self) -> bool
needs_relayout
method.sourcefn wrap_on_event(&mut self, ch: Event) -> EventResult
fn wrap_on_event(&mut self, ch: Event) -> EventResult
on_event
method.sourcefn wrap_take_focus(&mut self, source: Direction) -> bool
fn wrap_take_focus(&mut self, source: Direction) -> bool
take_focus
method.sourcefn wrap_call_on_any<'a>(&mut self, selector: &Selector<'_>, callback: AnyCb<'a>)
fn wrap_call_on_any<'a>(&mut self, selector: &Selector<'_>, callback: AnyCb<'a>)
find
method.sourcefn wrap_focus_view(&mut self, selector: &Selector<'_>) -> Result<(), ()>
fn wrap_focus_view(&mut self, selector: &Selector<'_>) -> Result<(), ()>
focus_view
method.sourcefn wrap_important_area(&self, size: Vec2) -> Rect
fn wrap_important_area(&self, size: Vec2) -> Rect
important_area
method.