pub struct OverlayPortalView<State: 'static> { /* private fields */ }Expand description
A declarative overlay portal. See overlay_portal.
Implementations§
Source§impl<State: 'static> OverlayPortalView<State>
impl<State: 'static> OverlayPortalView<State>
Sourcepub fn overlay(self, overlay: Option<AnyView<State>>) -> Self
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.
Sourcepub fn placement(self, placement: OverlayPlacement) -> Self
pub fn placement(self, placement: OverlayPlacement) -> Self
Where the surface sits relative to the child’s bounds (default: below,
centred — see OverlayPlacement::default).
Sourcepub fn band(self, band: OverlayBand) -> Self
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).
Sourcepub fn input(self, input: OverlayInput) -> Self
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).
Sourcepub fn outside_tap(self, outside_tap: OutsideTap) -> Self
pub fn outside_tap(self, outside_tap: OutsideTap) -> Self
What a press landing outside every floated surface delivers here
(default OutsideTap::Ignore).
Sourcepub fn on_outside_tap(self, callback: impl Fn(&mut State) + 'static) -> Self
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.
Sourcepub fn preserve_focus(self, preserve: bool) -> Self
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>
impl<State: 'static> View<State> for OverlayPortalView<State>
Source§type Element = OverlayPortalWidget<State>
type Element = OverlayPortalWidget<State>
Source§fn build(&self, ctx: &mut BuildCtx<'_>) -> OverlayPortalWidget<State>
fn build(&self, ctx: &mut BuildCtx<'_>) -> OverlayPortalWidget<State>
Source§fn rebuild(
&self,
prev: &Self,
element: &mut OverlayPortalWidget<State>,
ctx: &mut BuildCtx<'_>,
) -> ChangeFlags
fn rebuild( &self, prev: &Self, element: &mut OverlayPortalWidget<State>, ctx: &mut BuildCtx<'_>, ) -> ChangeFlags
prev (the previous view of the same type) against the live
element, mutating it in place and reporting what changed.