Struct zng_app::widget::info::WidgetMeasure

source ·
pub struct WidgetMeasure { /* private fields */ }
Expand description

Represents the in-progress measure pass for a widget tree.

Use WidgetLayout::to_measure to instantiate.

Implementations§

source§

impl WidgetMeasure

source

pub fn new_reuse(inline: Option<WidgetInlineMeasure>) -> Self

New with no widget layouts invalidated.

Prefer WidgetLayout::to_measure instead of this.

source

pub fn is_inline(&self) -> bool

If the parent widget is doing inline flow layout.

source

pub fn inline(&mut self) -> Option<&mut WidgetInlineMeasure>

Mutable reference to the current widget’s inline info.

The widget must configure this to be inlined in parent layout. This is only Some(_) if inline is enabled.

See WidgetInlineMeasure for more details.

source

pub fn disable_inline(&mut self)

Sets is_inline to false.

Must be called before child delegation, otherwise children that inline may render expecting to fit in the inline flow.

Note that this disables inline for the calling widget’s next layout too, every property that affects layout and does not support inline layout must propagate measure using this method to correctly configure the widget.

Prefer measure_block as if also clears the layout constraints.

source

pub fn measure_block(&mut self, child: &mut impl UiNode) -> PxSize

Disable inline and measure child with no inline constraints.

source

pub fn measure_inline( &mut self, first_max: Px, mid_clear_min: Px, child: &mut impl UiNode ) -> (Option<WidgetInlineMeasure>, PxSize)

Measure the child node with inline enabled for the child node context.

The first_max and mid_clear_min parameters match the InlineConstraintsMeasure members, and will be set in the child context.

Note that this does not enabled inline in the calling widget if inlining was disabled by the parent nodes, it creates a new inlining context.

Returns the inline requirements of the child and its desired bounds size, returns None requirements if the child disables inline or is not a full widget.

source

pub fn with_widget( &mut self, measure: impl FnOnce(&mut Self) -> PxSize ) -> PxSize

Measure a widget.

source

pub fn with_inline_visual( &mut self, measure: impl FnOnce(&mut Self) -> PxSize ) -> PxSize

Calls measure with inline force enabled on the widget.

The widget will be inlining even if the parent widget is not inlining, if properties request disable_inline these requests are ignored.

source

pub fn parallel_split(&self) -> ParallelBuilder<WidgetMeasure>

Start a parallel measure.

Returns an instance that can be used to acquire multiple mutable WidgetMeasure during measure. The parallel_fold method must be called after the parallel processing is done.

source

pub fn parallel_fold(&mut self, split: ParallelBuilder<WidgetMeasure>)

Collect the parallel changes back.

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<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, 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, U> TryFrom<U> for T
where 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 T
where 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.
§

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> StateValue for T
where T: Any + Send + Sync,