Skip to main content

GridLayoutState

Struct GridLayoutState 

Source
pub struct GridLayoutState { /* private fields */ }
Expand description

The state of a GridLayout: the items’ areas, the rules the layout settles under, and any gesture in progress.

The application owns the layout. Create the state with the grid’s rules, then its areas, and subscribe to GridLayoutEvent::Change to persist what the user arranges.

ⓘ
let state = cx.new(|cx| {
    GridLayoutState::new(cx).cols(12).default_areas([
        GridArea::new("revenue").col_span(8).row_span(4),
        GridArea::new("orders").col(8).col_span(4).row_span(4),
    ])
});

Implementations§

Source§

impl GridLayoutState

Source

pub fn new(cx: &mut App) -> Self

An empty, 12-column grid that compacts vertically.

Source

pub fn cols(self, cols: usize) -> Self

The number of equal columns the width is divided into. Defaults to 12.

Source

pub fn compaction(self, compaction: Option<Axis>) -> Self

The direction items float toward when space opens up, or None to leave them wherever they are put. Defaults to Some(Axis::Vertical).

Source

pub fn prevent_collision(self, prevent_collision: bool) -> Self

Refuse a move or resize that would overlap another item, instead of pushing that item out of the way. Defaults to false.

Source

pub fn draggable(self, draggable: bool) -> Self

Whether items can be moved. Defaults to true.

Source

pub fn resizable(self, resizable: bool) -> Self

Whether items can be resized. Defaults to true.

Source

pub fn default_areas(self, areas: impl IntoIterator<Item = GridArea>) -> Self

The areas the grid starts with, settled under the rules set so far: overlaps are pushed apart and, with compaction on, gaps close. Set the rules first.

Source

pub fn areas(&self) -> &[GridArea]

The committed layout, in the order the areas were given.

Source

pub fn area(&self, id: &str) -> Option<&GridArea>

The area of the item id.

Source

pub fn column_count(&self) -> usize

Source

pub fn compaction_axis(&self) -> Option<Axis>

Source

pub fn is_collision_prevented(&self) -> bool

Source

pub fn is_draggable(&self) -> bool

Source

pub fn is_resizable(&self) -> bool

Source

pub fn selected_item(&self) -> Option<&SharedString>

The item keyboard commands act on.

Source

pub fn active_item(&self) -> Option<&SharedString>

The item being dragged or resized, if a gesture is in progress.

Source

pub fn set_areas( &mut self, areas: impl IntoIterator<Item = GridArea>, cx: &mut Context<'_, Self>, )

Replace the layout, settling it under the grid’s rules. Cancels any gesture in progress, and does not emit GridLayoutEvent::Change.

Source

pub fn set_cols(&mut self, cols: usize, cx: &mut Context<'_, Self>)

Source

pub fn set_compaction( &mut self, compaction: Option<Axis>, cx: &mut Context<'_, Self>, )

Source

pub fn set_prevent_collision( &mut self, prevent_collision: bool, cx: &mut Context<'_, Self>, )

Source

pub fn set_draggable(&mut self, draggable: bool, cx: &mut Context<'_, Self>)

Source

pub fn set_resizable(&mut self, resizable: bool, cx: &mut Context<'_, Self>)

Source

pub fn set_selected_item( &mut self, id: Option<SharedString>, cx: &mut Context<'_, Self>, )

Select the item keyboard commands act on.

Source

pub fn move_item( &mut self, id: &str, col: usize, row: usize, cx: &mut Context<'_, Self>, ) -> bool

Move the item id so its leading column is col and its top row row, pushing whatever it lands on out of the way. Returns whether the layout changed; a refused or no-op move returns false.

Source

pub fn resize_item( &mut self, id: &str, col_span: usize, row_span: usize, cx: &mut Context<'_, Self>, ) -> bool

Resize the item id to cover col_span columns and row_span rows, clamped to its limits. Returns whether the layout changed.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

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> 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more