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
impl WidgetMeasure
Sourcepub fn new_reuse(inline: Option<WidgetInlineMeasure>) -> Self
pub fn new_reuse(inline: Option<WidgetInlineMeasure>) -> Self
New with no widget layouts invalidated.
Prefer WidgetLayout::to_measure instead of this.
Sourcepub fn inline(&mut self) -> Option<&mut WidgetInlineMeasure>
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.
Sourcepub fn disable_inline(&mut self)
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.
Sourcepub fn measure_block(&mut self, child: &mut UiNode) -> PxSize
pub fn measure_block(&mut self, child: &mut UiNode) -> PxSize
Disable inline and measure child with no inline constraints.
Sourcepub fn measure_inline(
&mut self,
first_max: Px,
mid_clear_min: Px,
child: &mut UiNode,
) -> (Option<WidgetInlineMeasure>, PxSize)
pub fn measure_inline( &mut self, first_max: Px, mid_clear_min: Px, child: &mut 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.
Sourcepub fn with_widget(
&mut self,
measure: impl FnOnce(&mut Self) -> PxSize,
) -> PxSize
pub fn with_widget( &mut self, measure: impl FnOnce(&mut Self) -> PxSize, ) -> PxSize
Measure a widget.
Sourcepub fn with_inline_visual(
&mut self,
measure: impl FnOnce(&mut Self) -> PxSize,
) -> PxSize
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.
Sourcepub fn parallel_split(&self) -> ParallelBuilder<WidgetMeasure>
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.
Sourcepub fn parallel_fold(&mut self, split: ParallelBuilder<WidgetMeasure>)
pub fn parallel_fold(&mut self, split: ParallelBuilder<WidgetMeasure>)
Collect the parallel changes back.
Auto Trait Implementations§
impl Freeze for WidgetMeasure
impl !RefUnwindSafe for WidgetMeasure
impl Send for WidgetMeasure
impl Sync for WidgetMeasure
impl Unpin for WidgetMeasure
impl !UnwindSafe for WidgetMeasure
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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