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 + 'static)) -> LayoutCtx<'a>
pub fn with_text_context(text_ctx: &'a mut (dyn Any + 'static)) -> LayoutCtx<'a>
Create a layout context carrying the shared text-shaping context.
Sourcepub fn with_resources(
text_ctx: Option<&'a mut (dyn Any + 'static)>,
theme: Option<&'a (dyn Any + 'static)>,
) -> LayoutCtx<'a>
pub fn with_resources( text_ctx: Option<&'a mut (dyn Any + 'static)>, theme: Option<&'a (dyn Any + 'static)>, ) -> LayoutCtx<'a>
Create a layout context carrying an optional text context and theme.
Sourcepub fn with_theme(self, theme: &'a (dyn Any + 'static)) -> LayoutCtx<'a>
pub fn with_theme(self, theme: &'a (dyn Any + 'static)) -> LayoutCtx<'a>
Attach the app’s active theme, type-erased.
Sourcepub fn text_context<T>(&mut self) -> &mut Twhere
T: Any,
pub fn text_context<T>(&mut self) -> &mut Twhere
T: Any,
Recover the text-shaping context as &mut T; panics if absent or of
another type (a wiring bug).
Sourcepub fn theme_as<T>(&self) -> Option<&T>where
T: Any,
pub fn theme_as<T>(&self) -> Option<&T>where
T: Any,
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 LayoutCtx<'a>) -> R,
) -> R
pub fn with_window_insets<R>( &mut self, insets: WindowInsets, f: impl FnOnce(&mut LayoutCtx<'a>) -> 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.
Trait Implementations§
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for LayoutCtx<'a>
impl<'a> !Send for LayoutCtx<'a>
impl<'a> !Sync for LayoutCtx<'a>
impl<'a> !UnwindSafe for LayoutCtx<'a>
impl<'a> Freeze for LayoutCtx<'a>
impl<'a> Unpin for LayoutCtx<'a>
impl<'a> UnsafeUnpin for LayoutCtx<'a>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.