Struct LinearLayout

Source
pub struct LinearLayout<LD, VG> { /* private fields */ }
Expand description

LinearLayout

LinearLayout is used to arrange views along the horizontal or vertical axis.

For more information and examples see the module level documentation.

Implementations§

Source§

impl<LD, VG> LinearLayout<LD, VG>

Source

pub fn inner(&self) -> &VG

Returns a reference to the contained views.

Source

pub fn inner_mut(&mut self) -> &mut VG

Returns a mutable reference to the contained views.

Source§

impl<VG> LinearLayout<Horizontal<Bottom, Tight>, VG>
where VG: ViewGroup,

Source

pub fn horizontal(views: VG) -> Self

Create a new LinearLayout that places views left to right

Source§

impl<VG> LinearLayout<Vertical<Left, Tight>, VG>
where VG: ViewGroup,

Source

pub fn vertical(views: VG) -> Self

Create a new LinearLayout that places views top to bottom

Source§

impl<S, ELS, VG> LinearLayout<Horizontal<S, ELS>, VG>

Source

pub fn with_alignment<Sec>( self, alignment: Sec, ) -> LinearLayout<Horizontal<Sec, ELS>, VG>

Change the secondary alignment for this LinearLayout object.

For layouts created using LinearLayout::horizontal the secondary alignment is vertical.

Source

pub fn with_spacing<ES>( self, spacing: ES, ) -> LinearLayout<Horizontal<S, ES>, VG>
where ES: ElementSpacing,

Change the element spacing

For available values and their properties, see spacing

Source§

impl<S, ELS, VG> LinearLayout<Vertical<S, ELS>, VG>

Source

pub fn with_alignment<Sec>( self, alignment: Sec, ) -> LinearLayout<Vertical<Sec, ELS>, VG>

Change the secondary alignment for this LinearLayout object.

For layouts created using LinearLayout::vertical the secondary alignment is horizontal.

Source

pub fn with_spacing<ES>(self, spacing: ES) -> LinearLayout<Vertical<S, ES>, VG>
where ES: ElementSpacing,

Change the element spacing

For available values and their properties, see spacing

Source§

impl<LD, VG> LinearLayout<LD, VG>
where LD: Orientation, VG: ViewGroup,

Source

pub fn into_inner(self) -> VG

Consume the layout object and return the wrapped ViewGroup.

After calling arrange() it is no longer necessary to hold the views in a LinearLayout. Use this method to extract the original view group object if you need to work with the arranged views.

§Example

Arrange an array of StyledText objects, then check the second object’s position.

let text_style = MonoTextStyle::new(&FONT_6X9, BinaryColor::On);

// First, wrap out views in a `ViewGroup`.
let mut texts = [
    Text::new("Hello,", Point::zero(), text_style),
    Text::new("World!", Point::zero(), text_style)
];
let mut views = Views::new(&mut texts);

// Arrange our views and extract our original view group.
let views = LinearLayout::vertical(views).arrange().into_inner();

// We can access our `StyledText` objects now. Note that `Views` works like a slice!
assert_eq!(Point::new(0, 9), views[1].bounds().top_left);

// `Views` is also a drawable `ViewGroup`, so let's display our arranged text!
views.draw(&mut display).unwrap();
Source

pub fn arrange(self) -> Self

Arrange the views according to the layout properties and return the views as a ViewGroup.

Source

pub fn arrange_view_group(&self, view_group: &mut impl ViewGroup)

Arrange a ViewGroup according to the layout properties.

Trait Implementations§

Source§

impl<LD, VG> Clone for LinearLayout<LD, VG>
where LD: Orientation, VG: ViewGroup + Clone,

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<C, LD, VG> Drawable for LinearLayout<LD, VG>
where C: PixelColor, LD: Orientation, VG: ViewGroup + Drawable<Color = C>,

Source§

type Color = C

The pixel color type.
Source§

type Output = ()

The return type of the draw method. Read more
Source§

fn draw<D>(&self, display: &mut D) -> Result<(), D::Error>
where D: DrawTarget<Color = C>,

Draw the graphics object using the supplied DrawTarget.
Source§

impl<LD, VG> View for LinearLayout<LD, VG>
where LD: Orientation, VG: ViewGroup,

Source§

fn translate_impl(&mut self, by: Point)

Object-safe version of translate_mut(). Read more
Source§

fn bounds(&self) -> Rectangle

Returns the bounding box of the View as a Rectangle
Source§

fn size(&self) -> Size

Get the size of a View.
Source§

fn translate_mut(&mut self, by: Point) -> &mut Self
where Self: Sized,

Move the origin of an object by a given number of (x, y) pixels, mutating the object in place. Read more
Source§

fn translate(self, by: Point) -> Self
where Self: Sized,

Move the origin of an object by a given number of (x, y) pixels, returning a new object. Read more
Source§

impl<LD, VG> ViewGroup for LinearLayout<LD, VG>
where LD: Orientation, VG: ViewGroup,

Source§

fn len(&self) -> usize

Returns the number of View objects in this view group.
Source§

fn at(&self, idx: usize) -> &dyn View

Returns a shared reference the View object at position idx.
Source§

fn at_mut(&mut self, idx: usize) -> &mut dyn View

Returns an exclusive reference to the View object at position idx.
Source§

fn bounds_of(&self, idx: usize) -> Rectangle

Returns the bounding box of the given View.
Source§

fn translate_child(&mut self, idx: usize, by: Point)

Translates the given View.

Auto Trait Implementations§

§

impl<LD, VG> Freeze for LinearLayout<LD, VG>
where LD: Freeze, VG: Freeze,

§

impl<LD, VG> RefUnwindSafe for LinearLayout<LD, VG>

§

impl<LD, VG> Send for LinearLayout<LD, VG>
where LD: Send, VG: Send,

§

impl<LD, VG> Sync for LinearLayout<LD, VG>
where LD: Sync, VG: Sync,

§

impl<LD, VG> Unpin for LinearLayout<LD, VG>
where LD: Unpin, VG: Unpin,

§

impl<LD, VG> UnwindSafe for LinearLayout<LD, VG>
where LD: UnwindSafe, VG: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn align_to<H, V>(self, reference: &impl View, horizontal: H, vertical: V) -> T

Return the object aligned to an other one using the alignment parameters as rules
Source§

fn align_to_mut<H, V>( &mut self, reference: &impl View, horizontal: H, vertical: V, ) -> &mut T

Align the object to an other one using the alignment parameters as rules
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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.