pub struct Spinner<T> {
    low: T,
    high: T,
    step_size: T,
    pub current: T,
    label: String,
    render_value: Box<dyn Fn(T) -> String>,
    up: Button,
    down: Button,
    outline: OutlineStyle,
    drawable: Drawable,
    top_left: ScreenPt,
    dims: ScreenDims,
}

Fields§

§low: T§high: T§step_size: T§current: T§label: String§render_value: Box<dyn Fn(T) -> String>§up: Button§down: Button§outline: OutlineStyle§drawable: Drawable§top_left: ScreenPt§dims: ScreenDims

Implementations§

source§

impl<T: 'static + SpinnerValue> Spinner<T>

source

pub fn widget( ctx: &EventCtx<'_>, label: impl Into<String>, (low, high): (T, T), current: T, step_size: T ) -> Widget

Creates a spinner using the SpinnerValue’s default to_string implementation for rendering.

source

pub fn widget_with_custom_rendering( ctx: &EventCtx<'_>, label: impl Into<String>, (low, high): (T, T), current: T, step_size: T, render_value: Box<dyn Fn(T) -> String> ) -> Widget

Creates a spinner using a custom method for rendering the value as text.

source

fn new( ctx: &EventCtx<'_>, label: String, (low, high): (T, T), current: T, step_size: T, render_value: Box<dyn Fn(T) -> String> ) -> Self

source

pub fn modify(&mut self, ctx: &EventCtx<'_>, delta: T)

source

fn clamp(&mut self)

source

fn drawable(&self, prerender: &Prerender, style: &Style) -> Drawable

source§

impl Spinner<RoundedF64>

source

pub fn f64_widget( ctx: &EventCtx<'_>, label: impl Into<String>, (low, high): (f64, f64), current: f64, step_size: f64 ) -> Widget

A spinner for f64s should prefer using this, which will round to 4 decimal places.

Trait Implementations§

source§

impl<T: 'static + SpinnerValue> WidgetImpl for Spinner<T>

source§

fn get_dims(&self) -> ScreenDims

What width and height does the widget occupy? If this changes, be sure to set redo_layout to true in event.
source§

fn set_pos(&mut self, top_left: ScreenPt)

Your widget’s top left corner should be here. Handle mouse events and draw appropriately.
source§

fn event(&mut self, ctx: &mut EventCtx<'_>, output: &mut WidgetOutput)

Your chance to react to an event. Any side effects outside of this widget are communicated through the output.
source§

fn draw(&self, g: &mut GfxCtx<'_>)

Draw the widget. Be sure to draw relative to the top-left specified by set_pos.
source§

fn can_restore(&self) -> bool

If a new Panel is being created to replace an older one, all widgets have the chance to preserve state from the previous version.
source§

fn restore(&mut self, ctx: &mut EventCtx<'_>, prev: &dyn WidgetImpl)

Restore state from the previous version of this widget, with the same ID. Implementors must downcast.

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Spinner<T>

§

impl<T> !Send for Spinner<T>

§

impl<T> !Sync for Spinner<T>

§

impl<T> Unpin for Spinner<T>
where T: Unpin,

§

impl<T> !UnwindSafe for Spinner<T>

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
§

impl<T> Downcast for T
where T: 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.
§

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.
§

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.
§

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.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

§

fn is_within(&self, b: &G2) -> bool