Skip to main content

OverlayAnchor

Enum OverlayAnchor 

Source
pub enum OverlayAnchor {
    Owner,
    Rect(Rect),
    Window {
        point: Point,
        offset: Vec2,
    },
}
Expand description

What a slot places its surface against.

Owner and Rect 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. Window is already window-space and skips that resolution entirely — see its own docs for why it is updated from event instead.

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.

§

Window

An absolute window-space point the surface’s top-left tracks directly — a drag ghost following the pointer rather than an owner’s bounds.

The placed rect is always point + offset, sized to the pod’s own content size: no side, alignment or collision flip applies, because there is no anchor rect to place against, only a point — so none of OverlayPlacement’s side/align/flip/clamp fields apply to it either (place is never called for this variant). The rect is clamped into the window area when OverlaySlot::set_clamp_to_window has turned that on (default false, so the ghost may trail off the window’s edge with the pointer).

Set once (with whatever offset the gesture’s grab point needs) via OverlaySlot::set_anchor, then updated every pointer Move/Down with OverlaySlot::set_window_anchor, which keeps offset and only moves point — see that method for why the update belongs in the owner’s event rather than waiting for the next paint.

Fields

§point: Point

The absolute window-space point the rect’s top-left tracks.

§offset: Vec2

A fixed offset from point to the rect’s actual top-left — the grab point within a dragged ghost, say.

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.