GenericLayout

Struct GenericLayout 

Source
pub struct GenericLayout<W>
where W: Eq + Hash + Clone,
{ /* private fields */ }
Expand description

Stores layout data resulting from some layout algorithm.

Widgets and labels are stored for some key that identifies the widget. It is also possible to store the label text.

Blocks can be added too. It is expected that blocks will be rendered in order of addition.

There is a concept for pages too. The page-height defines the pages. The page-width is not used to constrain the pages and is just informational. It can be used to find if the layout has to be rebuilt after a resize.

The page-count is available too, but there may be areas that map beyond the page-count.

See LayoutForm layout_edit

Implementations§

Source§

impl<W> GenericLayout<W>
where W: Eq + Hash + Clone,

Source

pub fn new() -> Self

Source

pub fn with_capacity(num_widgets: usize, num_blocks: usize) -> Self

Initialize with a certain capacity.

Source

pub fn clear(&mut self)

Clear all data.

Source

pub fn set_area(&mut self, area: Rect)

Set the area used for this layout. The area may or may not have anything to do with the page-size.

Source

pub fn area(&self) -> Rect

The area used for this layout. The area may or may not have anything to do with the page-size.

Source

pub fn area_changed(&self, area: Rect) -> bool

Area differs from stored area?

Source

pub fn set_page_size(&mut self, size: Size)

Set the page-size for this layout.

Defaults to (u16::MAX, u16::MAX).

Source

pub fn page_size(&self) -> Size

Get the page-size for this layout.

Source

pub fn size_changed(&self, size: Size) -> bool

Page-size changed.

Source

pub fn set_page_count(&mut self, page_count: usize)

Number of pages

Source

pub fn page_count(&self) -> usize

Number of pages

Source

pub fn add( &mut self, key: W, area: Rect, label: Option<Cow<'static, str>>, label_area: Rect, )

Add widget + label areas.

Source

pub fn add_block(&mut self, area: Rect, block: Option<Block<'static>>)

Add a block.

Source

pub fn place(self, pos: Position) -> Self

Places the layout at the given position. This shifts all area right by the given offset.

Most layout functions create a layout that starts at (0,0). That is ok, as the widgets using such a layout associate their top/left position with (0,0) and start from there.

If you want to use the layout without such a widget, this one is nice.

Source

pub fn first(&self, page: usize) -> Option<W>

First widget on the given page.

Source

pub fn page_of(&self, widget: W) -> Option<usize>

Calculates the page of the widget.

Source

pub fn is_empty(&self) -> bool

Any widgets/blocks?

Source

pub fn is_endless(&self) -> bool

Is this as layout with height = u16::MAX?

Source

pub fn widget_len(&self) -> usize

Number of widgets/labels.

Source

pub fn try_index_of(&self, widget: W) -> Option<usize>

Returns the index for this widget.

Source

pub fn index_of(&self, widget: W) -> usize

Returns the index for this widget.

Panic Panics if there is no widget for the key.

Source

pub fn widget_key(&self, idx: usize) -> W

Access widget key.

Panic Panics on out of bounds.

Source

pub fn widget_keys(&self) -> impl Iterator<Item = &W>

Access widget keys

Source

pub fn label_for(&self, widget: W) -> Rect

Access the label area by key.

Panic Panics on out of bounds. Panics if the key doesn’t exist.

Source

pub fn label(&self, idx: usize) -> Rect

Access label area.

Panic Panics on out of bounds.

Source

pub fn set_label(&mut self, idx: usize, area: Rect)

Set the label area.

Panic Panics on out of bounds.

Source

pub fn widget_for(&self, widget: W) -> Rect

Access the widget area by key.

Panic Panics on out of bounds. Panics if the key doesn’t exist.

Source

pub fn widget(&self, idx: usize) -> Rect

Access widget area.

Panic Panics on out of bounds.

Source

pub fn set_widget(&mut self, idx: usize, area: Rect)

Change the widget area.

Panic Panics on out of bounds.

Source

pub fn try_label_str_for(&self, widget: W) -> &Option<Cow<'static, str>>

Access the label string by key.

Panic Panics on out of bounds. Panics if the key doesn’t exist.

Source

pub fn try_label_str(&self, idx: usize) -> &Option<Cow<'static, str>>

Access label string.

Panic Panics on out of bounds.

Source

pub fn label_str_for(&self, widget: W) -> &str

Access the label string by key.

Panic Panics on out of bounds. Panics if the key doesn’t exist.

Source

pub fn label_str(&self, idx: usize) -> &str

Access label string.

Panic Panics on out of bounds.

Source

pub fn set_label_str(&mut self, idx: usize, str: Option<Cow<'static, str>>)

Set the label string.

Panic Panics on out of bounds.

Source

pub fn block_len(&self) -> usize

Container count.

Source

pub fn block_area(&self, idx: usize) -> Rect

Access block area.

Panic Panics on out of bounds.

Source

pub fn set_block_area(&mut self, idx: usize, area: Rect)

Set the block area.

Panic Panics on out of bounds.

Source

pub fn block_area_iter(&self) -> impl Iterator<Item = &Rect>

Iterate block areas.

Source

pub fn block(&self, idx: usize) -> &Option<Block<'static>>

Access container block.

Panic Panics on out of bounds.

Source

pub fn set_block(&mut self, idx: usize, block: Option<Block<'static>>)

Set the container block.

Panic Panics on out of bounds.

Trait Implementations§

Source§

impl<W> Clone for GenericLayout<W>
where W: Eq + Hash + Clone + Clone,

Source§

fn clone(&self) -> GenericLayout<W>

Returns a duplicate 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<W> Debug for GenericLayout<W>
where W: Eq + Hash + Clone + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<W> Default for GenericLayout<W>
where W: Eq + Hash + Clone,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<W> Freeze for GenericLayout<W>

§

impl<W> RefUnwindSafe for GenericLayout<W>
where W: RefUnwindSafe,

§

impl<W> Send for GenericLayout<W>
where W: Send,

§

impl<W> Sync for GenericLayout<W>
where W: Sync,

§

impl<W> Unpin for GenericLayout<W>
where W: Unpin,

§

impl<W> UnwindSafe for GenericLayout<W>
where W: UnwindSafe,

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
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, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
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, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
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, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.