pub struct NumberStepper { /* private fields */ }Expand description
Number stepper widget with +/- buttons
Implementations§
Source§impl NumberStepper
impl NumberStepper
Sourcepub fn with_value(self, value: f64) -> Self
pub fn with_value(self, value: f64) -> Self
Set initial value (builder pattern)
Sourcepub fn resolution(self, resolution: f64) -> Self
pub fn resolution(self, resolution: f64) -> Self
Set value resolution (builder pattern)
Values will snap to (min + n * resolution) where n is an integer. For example, with min=0.5 and resolution=0.25, valid values are 0.5, 0.75, 1.0, 1.25, etc.
Sourcepub fn display_precision(self, precision: usize) -> Self
pub fn display_precision(self, precision: usize) -> Self
Set display precision - number of decimal places to show (builder pattern)
The displayed value is rounded to this many decimal places. This is independent of the actual stored value.
Sourcepub fn with_enabled(self, enabled: bool) -> Self
pub fn with_enabled(self, enabled: bool) -> Self
Set enabled state (builder pattern)
Sourcepub fn drag_sensitivities(self, normal: f64, fast: f64, slow: f64) -> Self
pub fn drag_sensitivities(self, normal: f64, fast: f64, slow: f64) -> Self
Set drag sensitivities as value change per pixel (builder pattern)
Each parameter specifies how much the value changes per pixel of mouse movement:
normal: Value per pixel with no modifier keyfast: Value per pixel when Shift is heldslow: Value per pixel when Alt/Option is held
Example for an integer 0-100 range:
.drag_sensitivities(1.0, 10.0, 1.0) // 1, 10, or 1 unit per pixelExample for a float with fine control:
.drag_sensitivities(1.0, 2.0, 0.1) // 10 pixels of slow drag = 1.0 changeSourcepub fn drag_sensitivity(self, value_per_pixel: f64) -> Self
pub fn drag_sensitivity(self, value_per_pixel: f64) -> Self
Set normal drag sensitivity, scaling fast (5x) and slow (0.1x) proportionally
Sourcepub fn manual_drag_sensitivity(self) -> Self
pub fn manual_drag_sensitivity(self) -> Self
Disable auto-scaling of drag sensitivity based on widget width (builder pattern)
By default, when both min and max are set, the drag sensitivity is automatically calculated so that dragging across the value display covers the full range. Call this method to use the configured fixed sensitivities instead.
Sourcepub fn step_multipliers(self, small: f64, large: f64) -> Self
pub fn step_multipliers(self, small: f64, large: f64) -> Self
Set step multipliers for button clicks (builder pattern)
small: Multiplier when Alt/Option is held (default 0.1)large: Multiplier when Shift is held (default 10.0)
Example: For a step of 100, with multipliers (0.01, 10.0):
- Normal click: step by 100
- Alt+click: step by 1 (100 * 0.01)
- Shift+click: step by 1000 (100 * 10.0)
Sourcepub fn step_small(self, multiplier: f64) -> Self
pub fn step_small(self, multiplier: f64) -> Self
Set small step multiplier for Alt/Option + click (builder pattern)
Sourcepub fn step_large(self, multiplier: f64) -> Self
pub fn step_large(self, multiplier: f64) -> Self
Set large step multiplier for Shift + click (builder pattern)
Sourcepub fn focus_handle(&self) -> &FocusHandle
pub fn focus_handle(&self) -> &FocusHandle
Get the focus handle
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
Check if the stepper is enabled
Sourcepub fn set_enabled(&mut self, enabled: bool, cx: &mut Context<'_, Self>)
pub fn set_enabled(&mut self, enabled: bool, cx: &mut Context<'_, Self>)
Set enabled state programmatically
Sourcepub fn get_resolution(&self) -> Option<f64>
pub fn get_resolution(&self) -> Option<f64>
Get the value resolution
Sourcepub fn get_display_precision(&self) -> Option<usize>
pub fn get_display_precision(&self) -> Option<usize>
Get the display precision (decimal places)
Trait Implementations§
Source§impl Focusable for NumberStepper
impl Focusable for NumberStepper
Source§fn focus_handle(&self, _cx: &App) -> FocusHandle
fn focus_handle(&self, _cx: &App) -> FocusHandle
Source§impl Render for NumberStepper
impl Render for NumberStepper
impl EventEmitter<NumberStepperEvent> for NumberStepper
Auto Trait Implementations§
impl Freeze for NumberStepper
impl !RefUnwindSafe for NumberStepper
impl !Send for NumberStepper
impl !Sync for NumberStepper
impl Unpin for NumberStepper
impl UnsafeUnpin for NumberStepper
impl !UnwindSafe for NumberStepper
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
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.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>
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>
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 more