pub struct FocusTrap { /* private fields */ }Expand description
The focus stops of one open overlay, in tab order.
Content re-registers its stops on every render, because the set changes with the content itself.
Implementations§
Source§impl FocusTrap
impl FocusTrap
pub fn new() -> Self
pub fn is_engaged(&self) -> bool
pub fn stops(&self) -> &[FocusHandle]
Sourcepub fn engage(&mut self, window: &Window, cx: &App)
pub fn engage(&mut self, window: &Window, cx: &App)
Records what was focused before the overlay opened, so the same element can be focused again when it closes.
Sourcepub fn release(&mut self, window: &mut Window, cx: &mut App)
pub fn release(&mut self, window: &mut Window, cx: &mut App)
Restores the previously focused element. Nothing is focused when the element that had focus is gone, rather than guessing at a replacement.
Sourcepub fn begin_frame(&mut self)
pub fn begin_frame(&mut self)
Clears the registered stops before a render republishes them.
pub fn register(&mut self, handle: FocusHandle)
Sourcepub fn focus_first(&self, window: &mut Window, cx: &mut App)
pub fn focus_first(&self, window: &mut Window, cx: &mut App)
Focuses the first stop, which is what opening an overlay should do.
pub fn focus_next(&self, window: &mut Window, cx: &mut App)
pub fn focus_prev(&self, window: &mut Window, cx: &mut App)
Sourcepub fn contains_focus(&self, window: &Window, cx: &App) -> bool
pub fn contains_focus(&self, window: &Window, cx: &App) -> bool
True while focus is inside the overlay.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for FocusTrap
impl !UnwindSafe for FocusTrap
impl Freeze for FocusTrap
impl Send for FocusTrap
impl Sync for FocusTrap
impl Unpin for FocusTrap
impl UnsafeUnpin for FocusTrap
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().