Skip to main content

OverlayPortalView

Struct OverlayPortalView 

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

A declarative overlay portal. See overlay_portal.

Implementations§

Source§

impl<State> OverlayPortalView<State>
where State: 'static,

Source

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

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) -> OverlayPortalView<State>

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

Source

pub fn band(self, band: OverlayBand) -> OverlayPortalView<State>

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) -> OverlayPortalView<State>

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) -> OverlayPortalView<State>

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, ) -> OverlayPortalView<State>

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) -> OverlayPortalView<State>

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> View<State> for OverlayPortalView<State>
where State: 'static,

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: &OverlayPortalView<State>, 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &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> 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more