Skip to main content

Slider

Struct Slider 

Source
pub struct Slider<Msg> { /* private fields */ }
Expand description

A value chosen along a range by moving a knob on a rail.

The value is written before the rail in the accent colour. The done part of the rail is drawn in the accent, the knob sits at the value and breathes while focused, and the rest of the rail is a quiet raised tone. In ASCII mode the rail is drawn with cell colours instead of glyphs. The widget takes all the width it is given.

Left and Right move one step, Page Up and Page Down a tenth of the range, Home and End jump to the ends. Pressing the rail jumps the knob there and dragging moves it. The mouse wheel over the slider moves one step, up to increase and down to decrease; the slider keeps the wheel, so a scroll view around it does not scroll while the pointer rests on it, and a disabled slider lets the wheel pass. Keyboard jumps step the knob cell by cell over motion.step per cell. The application owns the value.

Style keys: slider (fill, fill-cell, track, knob) and slider-value (fg, bold) with states hover, focus, disabled.

Implementations§

Source§

impl<Msg> Slider<Msg>

Source

pub fn new(value: f64) -> Self

A slider from 0 to 100 in steps of 1 showing value.

Source

pub fn range(self, min: f64, max: f64) -> Self

The smallest and largest value.

Source

pub fn step(self, step: f64) -> Self

The distance of one step; values snap to steps from the minimum.

Source

pub fn format(self, format: impl Fn(f64) -> String + 'static) -> Self

Writes the value with format instead of the step’s decimals.

Source

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

Text written right after the value, such as "%" or " ms".

Source

pub fn disabled(self, disabled: bool) -> Self

Greys the slider out; it cannot be focused or moved.

Source

pub fn on_change(self, message: impl Fn(f64) -> Msg + 'static) -> Self

Message carrying the new value whenever the knob moves to another step.

Trait Implementations§

Source§

impl<Msg: 'static> Widget<Msg> for Slider<Msg>

Source§

fn measure(&self, _cx: &mut MeasureCx<'_>, available: Size) -> Size

The size the widget wants when it may use up to available.
Source§

fn paint(&self, cx: &mut PaintCx<'_>, area: Rect)

Draws the widget into area.
Source§

fn event(&self, cx: &mut EventCx<'_, Msg>, event: &Event) -> bool

Handles input. Returns true when the event was used; unused key and scroll events bubble to the parent widget.
Source§

fn focusable(&self) -> bool

Whether the widget can take keyboard focus.
Source§

fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)

Draws the widget’s overlay after the whole view was painted, when it asked for one with PaintCx::request_overlay. anchor is the area the widget was painted in.
Source§

fn children(&self) -> &[Node<Msg>]

Child nodes, for widgets that contain other widgets.
Source§

fn children_mut(&mut self) -> &mut [Node<Msg>]

Mutable child nodes, used to assign ids.

Auto Trait Implementations§

§

impl<Msg> !RefUnwindSafe for Slider<Msg>

§

impl<Msg> !Send for Slider<Msg>

§

impl<Msg> !Sync for Slider<Msg>

§

impl<Msg> !UnwindSafe for Slider<Msg>

§

impl<Msg> Freeze for Slider<Msg>
where Option<Box<dyn Fn(f64) -> Msg>>: Freeze,

§

impl<Msg> Unpin for Slider<Msg>
where Option<Box<dyn Fn(f64) -> Msg>>: Unpin,

§

impl<Msg> UnsafeUnpin for Slider<Msg>
where Option<Box<dyn Fn(f64) -> Msg>>: UnsafeUnpin,

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> 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.