pub trait Orientation: Copy + Clone {
    type Secondary: SecondaryAlignment + Alignment;

    // Required methods
    fn destructure_size(size: Size) -> (u32, u32);
    fn create_size(primary: u32, secondary: u32) -> Size;
    fn compute_offset(
        &self,
        bounds: Rectangle,
        size: Size,
        previous: Rectangle,
        n: usize,
        count: usize
    ) -> Point;

    // Provided method
    fn place(
        &self,
        view: &mut dyn View,
        size: Size,
        previous: Rectangle,
        n: usize,
        count: usize
    ) -> Rectangle { ... }
}
Expand description

Helper trait that describes a linear layout orientation.

Required Associated Types§

source

type Secondary: SecondaryAlignment + Alignment

Secondary alignment that will be applied to all the views

Required Methods§

source

fn destructure_size(size: Size) -> (u32, u32)

Destructure Size into (primary_size, secondary_size)

source

fn create_size(primary: u32, secondary: u32) -> Size

Create a Size from primary and secondary size values

source

fn compute_offset( &self, bounds: Rectangle, size: Size, previous: Rectangle, n: usize, count: usize ) -> Point

Computes translation for the next view.

Provided Methods§

source

fn place( &self, view: &mut dyn View, size: Size, previous: Rectangle, n: usize, count: usize ) -> Rectangle

Place view

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<Secondary, Spacing> Orientation for Horizontal<Secondary, Spacing>where Secondary: SecondaryAlignment + VerticalAlignment, Spacing: ElementSpacing,

§

type Secondary = Secondary

source§

impl<Secondary, Spacing> Orientation for Vertical<Secondary, Spacing>where Secondary: SecondaryAlignment + HorizontalAlignment, Spacing: ElementSpacing,

§

type Secondary = Secondary