Skip to main content

OverlayPlacement

Struct OverlayPlacement 

Source
pub struct OverlayPlacement {
    pub side: OverlaySide,
    pub align: OverlayAlign,
    pub offset: f64,
    pub flip: bool,
    pub clamp: bool,
    pub padding: f64,
}
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. A resolved placement request: which side, how it lines up, how far off the anchor it sits, and how it may move to stay inside the area.

Fields§

§side: OverlaySide

The preferred side.

§align: OverlayAlign

Cross-axis alignment.

§offset: f64

Gap between the anchor and the surface, in logical px.

§flip: bool

Flip to OverlaySide::opposite when the preferred side does not fit and the opposite one does.

§clamp: bool

Shift the placed rect back inside the padded area when it overflows.

§padding: f64

The margin the surface keeps from every edge of the area, in logical px. Both the fit test and the clamp read the area inset by it.

Implementations§

Source§

impl OverlayPlacement

Source

pub fn on(side: OverlaySide) -> Self

A placement on side, everything else defaulted.

Source

pub const fn align(self, align: OverlayAlign) -> Self

Set the cross-axis alignment.

Source

pub const fn offset(self, offset: f64) -> Self

Set the anchor gap, in logical px.

Source

pub const fn flip(self, flip: bool) -> Self

Enable or disable the collision flip.

Source

pub const fn clamp(self, clamp: bool) -> Self

Enable or disable the shift-back-inside clamp.

Source

pub const fn padding(self, padding: f64) -> Self

Set the margin kept from the area’s edges, in logical px.

Trait Implementations§

Source§

impl Clone for OverlayPlacement

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 OverlayPlacement

Source§

impl Debug for OverlayPlacement

Source§

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

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

impl Default for OverlayPlacement

Source§

fn default() -> Self

Below the anchor, centred, at DEFAULT_OFFSET, flipping and clamping inside DEFAULT_PADDING of the area’s edges.

Source§

impl PartialEq for OverlayPlacement

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 OverlayPlacement

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.