pub enum LayoutModality {
Pointer,
Touch,
AccessibilityZoom,
}Expand description
The current input modality that the layout engine adapts to.
P1-67: Modern platforms adjust touch target sizes and item spacing for
touch vs pointer input. Setting LayoutModality::Touch causes layout
containers to enforce a minimum touch target of 44×44 pt (Apple HIG) for
any view whose intrinsic size is smaller.
Variants§
Pointer
Precise pointer (mouse, trackpad, stylus). Use intrinsic sizes.
Touch
Touch input. Enforce a minimum tap-target size of 44×44 logical pts.
AccessibilityZoom
Accessibility zoom is active. Touch rules apply and spacing is doubled.
Implementations§
Source§impl LayoutModality
impl LayoutModality
Sourcepub fn min_tap_target(self) -> f32
pub fn min_tap_target(self) -> f32
Minimum tap-target dimension for this modality (logical pixels).
Sourcepub fn spacing_multiplier(self) -> f32
pub fn spacing_multiplier(self) -> f32
Spacing multiplier applied on top of the view’s configured spacing.
Sourcepub fn adapt_size(self, size: Size) -> Size
pub fn adapt_size(self, size: Size) -> Size
Apply this modality’s minimum tap-target constraint to a measured size.
Contract: only enlarges the size; never shrinks it.
Trait Implementations§
Source§impl Clone for LayoutModality
impl Clone for LayoutModality
Source§fn clone(&self) -> LayoutModality
fn clone(&self) -> LayoutModality
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for LayoutModality
Source§impl Debug for LayoutModality
impl Debug for LayoutModality
Source§impl Default for LayoutModality
impl Default for LayoutModality
Source§fn default() -> LayoutModality
fn default() -> LayoutModality
impl Eq for LayoutModality
Source§impl PartialEq for LayoutModality
impl PartialEq for LayoutModality
Source§fn eq(&self, other: &LayoutModality) -> bool
fn eq(&self, other: &LayoutModality) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for LayoutModality
Auto Trait Implementations§
impl Freeze for LayoutModality
impl RefUnwindSafe for LayoutModality
impl Send for LayoutModality
impl Sync for LayoutModality
impl Unpin for LayoutModality
impl UnsafeUnpin for LayoutModality
impl UnwindSafe for LayoutModality
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
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.