Struct zng::grid::Grid

source ·
pub struct Grid(/* private fields */);
Expand description

W Grid layout with cells of variable sizes.

Implementations§

source§

impl Grid

source

pub fn widget_new() -> Grid

Start building a new instance.

source

pub fn widget_type() -> WidgetType

Gets the widget type info.

source§

impl Grid

source

pub fn cells(&self, cells: impl UiNodeList)

c Cell widget items.

Cells can select their own column, row, column-span and row-span using the properties in the Cell! widget. Note that you don’t need to use the cell widget, only the cell properties.

If the column or row index is set to usize::MAX the widget is positioned using the logical index i, the column i % columns and the row i / columns.

source§

impl Grid

source

pub fn columns(&self, cells: impl UiNodeList)

c Column definitions.

You can define columns with any widget, but the Column! widget is recommended. The column widget width defines the width of the cells assigned to it, the Column::width property can be used to enforce a width, otherwise the column is sized by the widest cell.

The grid uses the WIDGET_SIZE value to select one of three layout modes for columns:

  • Default, used for columns that do not set width or set it to Length::Default.
  • Exact, used for columns that set the width to an unit that is exact or only depends on the grid context.
  • Leftover, used for columns that set width to a lft value.

The column layout follows these steps:

1 - All Exact column widgets are layout, their final width defines the column width. 2 - All cell widgets with span 1 in Default columns are measured, the widest defines the fill width constrain, the columns are layout using this constrain, the final width defines the column width. 3 - All Leftover cells are layout with the leftover grid width divided among all columns in this mode.

So given the columns 200 | 1.lft() | 1.lft() and grid width of 1000 with spacing 5 the final widths are 200 | 395 | 395, for 200 + 5 + 395 + 5 + 395 = 1000.

Note that the column widget is not the parent of the cells that match it, the column widget is rendered under cell and row widgets. Properties like padding and align only affect the column visual, not the cells, similarly contextual properties like text_color don’t affect the cells.

source§

impl Grid

source

pub fn rows(&self, cells: impl UiNodeList)

c Row definitions.

Same behavior as columns, but in the y dimension.

source§

impl Grid

source

pub fn auto_grow_fn(&self, auto_grow: impl IntoVar<WidgetFn<AutoGrowFnArgs>>)

c Widget function used when new rows or columns are needed to cover a cell placement.

The function is used according to the auto_grow_mode. Note that imaginary rows or columns are used if the function is WidgetFn::nil.

source§

impl Grid

source

pub fn auto_grow_mode(&self, mode: impl IntoVar<AutoGrowMode>)

c Defines the direction the grid auto-grows and the maximum inclusive index that can be covered by auto-generated columns or rows. If a cell is outside this index and is not covered by predefined columns or rows a new one is auto generated for it, but if the cell is also outside this max it is collapsed.

Is `AutoGrowMode::rows() by default.

source§

impl Grid

source

pub fn spacing(&self, spacing: impl IntoVar<GridSpacing>)

c Space in-between cells.

Methods from Deref<Target = WidgetBase>§

source

pub fn widget_builder(&mut self) -> &mut WidgetBuilder

Returns a mutable reference to the widget builder.

source

pub fn widget_when(&mut self) -> Option<&mut WhenInfo>

Returns a mutable reference to the when block if called inside a when block.

source

pub fn widget_take(&mut self) -> WidgetBuilder

Takes the widget builder, finishing the widget macro build.

After this call trying to set a property using self will panic, the returned builder can still be manipulated directly.

source

pub fn widget_build(&mut self) -> impl UiNode

Build the widget.

After this call trying to set a property will panic.

source

pub fn widget_importance(&mut self) -> &mut Importance

Returns a mutable reference to the importance of the next property assigns, unsets or when blocks.

Note that during the widget_intrinsic call this is Importance::WIDGET and after it is Importance::INSTANCE.

source

pub fn start_when_block( &mut self, inputs: Box<[WhenInput]>, state: Box<dyn VarBoxed<bool>>, expr: &'static str, location: SourceLocation, )

Start building a when block, all properties set after this call are pushed in the when block.

source

pub fn end_when_block(&mut self)

End the current when block, all properties set after this call are pushed in the widget.

source

pub fn id(&self, id: impl IntoValue<WidgetId>)

c Unique ID of the widget instance.

Note that the id can convert from a &'static str unique name.

Trait Implementations§

source§

impl Deref for Grid

source§

type Target = WidgetBase

The resulting type after dereferencing.
source§

fn deref(&self) -> &<Grid as Deref>::Target

Dereferences the value.
source§

impl DerefMut for Grid

source§

fn deref_mut(&mut self) -> &mut <Grid as Deref>::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl !Freeze for Grid

§

impl !RefUnwindSafe for Grid

§

impl Send for Grid

§

impl !Sync for Grid

§

impl Unpin for Grid

§

impl !UnwindSafe for Grid

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
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
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
§

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

§

impl<T> MaybeSendSync for T