Skip to main content

OverlayAnchor

Enum OverlayAnchor 

Source
pub enum OverlayAnchor {
    Owner,
    Rect(Rect),
}
Expand description

The overlay-portal authoring surface: the slot a widget that floats its own surface holds, what that surface is anchored to, and the placement geometry every anchored pattern needs.

Promoted here rather than left to each design system because all three of them had derived the same geometry independently: a design system’s popover, menu, tooltip and context menu place a surface through place and host it through OverlaySlot, reaching both through frust::authoring alone. The overlay-portal authoring surface: the slot a widget that floats its own surface holds, what that surface is anchored to, and the placement geometry every anchored pattern needs.

Promoted here rather than left to each design system because all three of them had derived the same geometry independently: a design system’s popover, menu, tooltip and context menu place a surface through place and host it through OverlaySlot, reaching both through frust::authoring alone. The overlay-portal authoring surface: the slot a widget that floats its own surface holds, what that surface is anchored to, and the placement geometry every anchored pattern needs.

Promoted here rather than left to each design system because all three of them had derived the same geometry independently: a design system’s popover, menu, tooltip and context menu place a surface through place and host it through OverlaySlot, reaching both through frust::authoring alone. What a slot places its surface against.

Both variants resolve to a window-space rect in the owner’s paint, where the owner’s absolute origin is finally known; nothing is subscribed to and nothing is cached across frames, so an anchor follows its owner across scroll, relayout and animation for free.

Variants§

§

Owner

The owner’s own bounds — a trigger floating a menu under itself.

§

Rect(Rect)

A rect in the owner’s local space: a caret, a selection’s bounding box, a press point, one row of a list. Translated by the owner’s paint origin, so a caller states it in the same coordinates its layout and event already speak.

Trait Implementations§

Source§

impl Clone for OverlayAnchor

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for OverlayAnchor

Source§

impl Debug for OverlayAnchor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for OverlayAnchor

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for OverlayAnchor

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for OverlayAnchor

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> Brush for T
where T: Clone + PartialEq + Default + Debug,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> StorageAccess<T> for T

Source§

fn as_borrowed(&self) -> &T

Borrows the value.
Source§

fn into_taken(self) -> T

Takes the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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.