pub struct LayoutCtx<'a> { /* private fields */ }Expand description
Context passed to Widget::layout, carrying the text-shaping context and
theme type-erased so frust-core depends on neither frust-text nor
frust-theme.
Implementations§
Source§impl<'a> LayoutCtx<'a>
impl<'a> LayoutCtx<'a>
Sourcepub fn new() -> LayoutCtx<'static>
pub fn new() -> LayoutCtx<'static>
Create a layout context with no shared resources (leaf unit tests).
Sourcepub fn with_text_context(text_ctx: &'a mut dyn Any) -> Self
pub fn with_text_context(text_ctx: &'a mut dyn Any) -> Self
Create a layout context carrying the shared text-shaping context.
Sourcepub fn with_resources(
text_ctx: Option<&'a mut dyn Any>,
theme: Option<&'a dyn Any>,
) -> Self
pub fn with_resources( text_ctx: Option<&'a mut dyn Any>, theme: Option<&'a dyn Any>, ) -> Self
Create a layout context carrying an optional text context and theme.
Sourcepub fn with_theme(self, theme: &'a dyn Any) -> Self
pub fn with_theme(self, theme: &'a dyn Any) -> Self
Attach the app’s active theme, type-erased.
Sourcepub fn text_context<T: Any>(&mut self) -> &mut T
pub fn text_context<T: Any>(&mut self) -> &mut T
Recover the text-shaping context as &mut T; panics if absent or of
another type (a wiring bug).
Sourcepub fn theme_as<T: Any>(&self) -> Option<&T>
pub fn theme_as<T: Any>(&self) -> Option<&T>
Recover the theme as &T, or None if absent or of another type.
Sourcepub fn window_insets(&self) -> WindowInsets
pub fn window_insets(&self) -> WindowInsets
The window insets for this pass, possibly narrowed by an ancestor.
Sourcepub fn with_window_insets<R>(
&mut self,
insets: WindowInsets,
f: impl FnOnce(&mut Self) -> R,
) -> R
pub fn with_window_insets<R>( &mut self, insets: WindowInsets, f: impl FnOnce(&mut Self) -> R, ) -> R
Run f with insets as the window insets, then restore them (how
SafeArea removes consumed edges); a panic in f skips the restore.
Sourcepub fn window_size(&self) -> Size
pub fn window_size(&self) -> Size
The window’s logical size (Size::ZERO before the first root layout);
overlay pods are laid out against it, not their owner’s box.
Sourcepub fn layout_epoch(&self) -> u64
pub fn layout_epoch(&self) -> u64
The root’s global layout epoch for this pass; 0 outside a root.