Skip to main content

OverlayPortalView

Struct OverlayPortalView 

Source
pub struct OverlayPortalView<State: 'static> { /* private fields */ }
Expand description

A declarative overlay portal. See overlay_portal.

Implementations§

Source§

impl<State: 'static> OverlayPortalView<State>

Source

pub fn overlay(self, overlay: Option<AnyView<State>>) -> Self

The floated surface: Some mounts it, None drops it after the next paint.

The view is diffed against the same application state the portal itself is, so the surface reads and writes app state exactly like the child does — it is a logical child of this call site that happens to be painted elsewhere.

Source

pub fn placement(self, placement: OverlayPlacement) -> Self

Where the surface sits relative to the child’s bounds (default: below, centred — see OverlayPlacement::default).

Source

pub fn band(self, band: OverlayBand) -> Self

Which z-band the surface paints and hit-tests in (default OverlayBand::Floating; a tooltip belongs in OverlayBand::Tooltip).

Source

pub fn input(self, input: OverlayInput) -> Self

Whether the surface takes pointer input (default OverlayInput::Interactive; explanatory chrome the pointer passes through is OverlayInput::Transparent).

Source

pub fn outside_tap(self, outside_tap: OutsideTap) -> Self

What a press landing outside every floated surface delivers here (default OutsideTap::Ignore).

Source

pub fn on_outside_tap(self, callback: impl Fn(&mut State) + 'static) -> Self

Run callback when a press lands outside every floated surface — the light-dismiss hook.

Setting it also opts the surface into the notification (OutsideTap::Notify with consume: true, the modal shape) unless an explicit outside_tap says otherwise, so the tap that dismisses a menu does not also activate what sits under it. Pass OutsideTap::Notify { consume: false } for the pass-through shape.

Source

pub fn preserve_focus(self, preserve: bool) -> Self

Keep the child’s focus session when the surface claims focus (default false).

A surface that is about the child rather than a place to type — a selection toolbar over a field — must not take the field’s focus, or the selection it acts on disappears the moment it is touched. With this set, a focus claim from inside the surface is withdrawn again whenever the child held the focus link, and focus-routed events keep reaching the child. Left false, a surface that claims focus gets it and the child’s link inside this portal is dropped, which is what a popover containing its own text field wants.

Trait Implementations§

Source§

impl<State: 'static> View<State> for OverlayPortalView<State>

Source§

type Element = OverlayPortalWidget<State>

The retained widget this view produces.
Source§

fn build(&self, ctx: &mut BuildCtx<'_>) -> OverlayPortalWidget<State>

Materialise a fresh widget for this view.
Source§

fn rebuild( &self, prev: &Self, element: &mut OverlayPortalWidget<State>, ctx: &mut BuildCtx<'_>, ) -> ChangeFlags

Reconcile prev (the previous view of the same type) against the live element, mutating it in place and reporting what changed.
Source§

fn teardown( &self, element: &mut OverlayPortalWidget<State>, ctx: &mut BuildCtx<'_>, )

Tear down element when this view is being removed. Read more
Source§

fn message(&self, _element: &mut Self::Element, _state: &mut State)

Deliver an event message to this view, mutating application state. Read more

Auto Trait Implementations§

§

impl<State> !RefUnwindSafe for OverlayPortalView<State>

§

impl<State> !Send for OverlayPortalView<State>

§

impl<State> !Sync for OverlayPortalView<State>

§

impl<State> !UnwindSafe for OverlayPortalView<State>

§

impl<State> Freeze for OverlayPortalView<State>
where AnyView<State>: Freeze, Option<AnyView<State>>: Freeze, Option<Rc<dyn Fn(&mut State)>>: Freeze,

§

impl<State> Unpin for OverlayPortalView<State>
where AnyView<State>: Unpin, Option<AnyView<State>>: Unpin, Option<Rc<dyn Fn(&mut State)>>: Unpin,

§

impl<State> UnsafeUnpin for OverlayPortalView<State>

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> 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, 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.