Skip to main content

FocusManager

Struct FocusManager 

Source
pub struct FocusManager {
    pub strategy: FocusStrategy,
    /* private fields */
}
Expand description

Manages focus behavior for interactive components.

Different component types require different focus management strategies:

  • Dialogs trap focus within their boundary
  • Popovers restore focus to the trigger on close
  • Menus focus the first item on open

FocusManager encapsulates these strategies and provides methods for programmatic focus control.

Fields§

§strategy: FocusStrategy

The focus strategy to use.

Implementations§

Source§

impl FocusManager

Source

pub fn new(strategy: FocusStrategy) -> Self

Create a new FocusManager with the given strategy.

Source

pub fn dialog() -> Self

Create a FocusManager for a dialog (trap + restore).

Source

pub fn menu() -> Self

Create a FocusManager for a menu (focus first item).

Source

pub fn popover() -> Self

Create a FocusManager for a popover (restore on close).

Source

pub fn with_container(self, id: impl Into<String>) -> Self

Set the container element ID.

Source

pub fn container_id(&self) -> Option<&str>

Get the container ID.

Source

pub fn save_restore_target(&mut self, element_id: impl Into<String>)

Record the currently focused element for later restoration.

Source

pub fn restore_target(&self) -> Option<&str>

Get the element ID to restore focus to.

Source

pub fn trap(&self, container_id: &str) -> FocusInstruction

Begin trapping focus within the container.

Returns focus instructions that the framework adapter should execute.

Source

pub fn release(&self) -> FocusInstruction

Release the focus trap.

Source

pub fn restore(&self) -> FocusInstruction

Restore focus to the previously focused element.

Source

pub fn focus_first(&self, container_id: &str) -> FocusInstruction

Focus the first focusable child of a container.

Source

pub fn focus_last(&self, container_id: &str) -> FocusInstruction

Focus the last focusable child of a container.

Source

pub fn focus_next(&self) -> FocusInstruction

Focus the next focusable element.

Source

pub fn focus_prev(&self) -> FocusInstruction

Focus the previous focusable element.

Source

pub fn is_trapping(&self) -> bool

Whether this manager uses focus trapping.

Source

pub fn should_restore(&self) -> bool

Whether this manager restores focus on close.

Trait Implementations§

Source§

impl Clone for FocusManager

Source§

fn clone(&self) -> FocusManager

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FocusManager

Source§

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

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

impl PartialEq for FocusManager

Source§

fn eq(&self, other: &FocusManager) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for FocusManager

Source§

impl StructuralPartialEq for FocusManager

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> 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> 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> 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 = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> Props for T
where T: Clone + PartialEq + 'static,

Source§

impl<T> State for T
where T: Clone + 'static,