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>where S: SecondaryAlignment + VerticalAlignment, ELS: ElementSpacing, VG: ViewGroup,

source

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

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>where S: SecondaryAlignment + HorizontalAlignment, ELS: ElementSpacing, VG: ViewGroup,

source

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

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 copy of the value. Read more
1.0.0 · source§

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

§

type Color = C

The pixel color type.
§

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 Selfwhere 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) -> Selfwhere 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> RefUnwindSafe for LinearLayout<LD, VG>where LD: RefUnwindSafe, VG: RefUnwindSafe,

§

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 Twhere T: View,

source§

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

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 Twhere H: HorizontalAlignment, V: VerticalAlignment,

Align the object to an other one using the alignment parameters as rules
source§

impl<T> Any for Twhere 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) -> Dstwhere T: Cast<Dst>,

Casts the value.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Dstwhere 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 Dstwhere Src: CheckedCast<Dst>,

source§

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

Casts the value.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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 Dstwhere 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) -> Dstwhere T: SaturatingCast<Dst>,

Casts the value.
source§

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

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

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

§

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 Twhere U: TryFrom<T>,

§

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) -> Dstwhere T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere 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) -> Dstwhere T: WrappingCast<Dst>,

Casts the value.
source§

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

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.