pub enum ButtonMotion {
Default,
HoverScale,
PressScale,
HoverPressScale,
Ripple,
HoverPressRipple,
Composition(Vec<ButtonMotion>),
Custom {
interaction: Option<Vec<MotionTrack>>,
ripple: Option<RippleFx>,
},
}Expand description
Optional motion presets owned by Button.
Buttons do not animate by default. Set Button::motion to Some(...) to
opt in to hover, press, and ripple feedback.
ⓘ
use fission::prelude::*;
Button {
id: Some(WidgetId::explicit("save")),
child: Some(Text::new("Save").into()),
motion: Some(ButtonMotion::HoverScale + ButtonMotion::PressScale + ButtonMotion::Ripple),
..Default::default()
};Variants§
Default
Curated default hover/press scale feedback.
HoverScale
Scale up slightly while hovered.
PressScale
Scale down slightly while pressed.
HoverPressScale
Compound hover plus press scale feedback.
Ripple
Add deterministic pointer-origin ripples.
HoverPressRipple
Compound hover/press scale plus ripple feedback.
Composition(Vec<ButtonMotion>)
Ordered composition of button motion atoms.
Custom
Caller-provided native interaction tracks and ripple configuration.
Implementations§
Source§impl ButtonMotion
impl ButtonMotion
Sourcepub fn compose(items: impl IntoIterator<Item = Self>) -> Self
pub fn compose(items: impl IntoIterator<Item = Self>) -> Self
Flattens and normalizes an ordered button-motion composition.
Sourcepub fn interaction_tracks(&self, id: WidgetId) -> Vec<MotionTrack>
pub fn interaction_tracks(&self, id: WidgetId) -> Vec<MotionTrack>
Lowers this preset into interaction tracks for id.
Trait Implementations§
Source§impl Add for ButtonMotion
impl Add for ButtonMotion
Source§impl Clone for ButtonMotion
impl Clone for ButtonMotion
Source§fn clone(&self) -> ButtonMotion
fn clone(&self) -> ButtonMotion
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ButtonMotion
impl Debug for ButtonMotion
Source§impl<'de> Deserialize<'de> for ButtonMotion
impl<'de> Deserialize<'de> for ButtonMotion
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ButtonMotion
impl PartialEq for ButtonMotion
Source§fn eq(&self, other: &ButtonMotion) -> bool
fn eq(&self, other: &ButtonMotion) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for ButtonMotion
impl Serialize for ButtonMotion
impl StructuralPartialEq for ButtonMotion
Auto Trait Implementations§
impl Freeze for ButtonMotion
impl RefUnwindSafe for ButtonMotion
impl Send for ButtonMotion
impl Sync for ButtonMotion
impl Unpin for ButtonMotion
impl UnsafeUnpin for ButtonMotion
impl UnwindSafe for ButtonMotion
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
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>
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)
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)
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.