pub struct PopLayout { /* private fields */ }Expand description
Retain in the view. A container records its origin; exiting items reserve no
flow space but remain at their last measured parent-relative bounds. Use the
same container and retain outgoing content with PresenceGroup until exit
finishes. Ancestor clipping still applies. Independent containers must use
separate handles; this is not cross-parent projection.
Implementations§
Source§impl PopLayout
impl PopLayout
Sourcepub fn container<E: IntoElement + 'static>(
&self,
id: impl Into<ElementId>,
child: E,
) -> PopElement<E>
pub fn container<E: IntoElement + 'static>( &self, id: impl Into<ElementId>, child: E, ) -> PopElement<E>
Wraps the container without adding a layout node.
use gpui_kit::{div, prelude::*};
use gpui_motion_kit::PopLayout;
let pop = PopLayout::default(); // persistent view field
let row = div().flex().child(pop.item("item", true, div().child("Retained content")));
let container = pop.container("container", row);Exiting children are measured as separate roots and painted in its coordinate space, so borders, padding and gaps do not introduce absolute-positioning corrections.
Sourcepub fn item<E: IntoElement + 'static>(
&self,
id: impl Into<ElementId>,
present: bool,
child: E,
) -> PopElement<E>
pub fn item<E: IntoElement + 'static>( &self, id: impl Into<ElementId>, present: bool, child: E, ) -> PopElement<E>
Wraps a retained item. False removes it from flow immediately. Its child
still owns exit opacity/motion, input suppression and focus restoration.
Owns positional reflow as well as exit positioning. Do not also wrap the
item in LayoutGroup::position. For x/y exit motion, animate inner content
inside a fixed-size child wrapper; the outer item owns its layout position.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for PopLayout
impl !Send for PopLayout
impl !Sync for PopLayout
impl !UnwindSafe for PopLayout
impl Freeze for PopLayout
impl Unpin for PopLayout
impl UnsafeUnpin for PopLayout
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().