pub struct Spinner<T>where
T: SpinnerValue,{ /* private fields */ }
Expand description
A numeric entry widget with up/down arrows
The value is constrained to a given range
. Increment and decrement
operations advance to the next/previous multiple of step
.
Recommendations for optimal behaviour:
- Ensure that range end points are a multiple of
step
- With floating-point types, ensure that
step
is exactly representable, e.g. an integer or a power of 2.
Implementations§
source§impl<T> Spinner<T>where
T: SpinnerValue,
impl<T> Spinner<T>where T: SpinnerValue,
sourcepub fn new(range: RangeInclusive<T>, step: T) -> Spinner<T>
pub fn new(range: RangeInclusive<T>, step: T) -> Spinner<T>
Construct a spinner with given range
and step
sourcepub fn new_on<F>(range: RangeInclusive<T>, step: T, f: F) -> Spinner<T>where
F: Fn(&mut EventMgr<'_>, T) + 'static,
pub fn new_on<F>(range: RangeInclusive<T>, step: T, f: F) -> Spinner<T>where F: Fn(&mut EventMgr<'_>, T) + 'static,
Construct a spinner with event handler f
This closure is called when the value is changed.
sourcepub fn on_change<F>(self, f: F) -> Spinner<T>where
F: Fn(&mut EventMgr<'_>, T) + 'static,
pub fn on_change<F>(self, f: F) -> Spinner<T>where F: Fn(&mut EventMgr<'_>, T) + 'static,
Set event handler f
This closure is called when the value is changed, specifically:
- If the increment/decrement buttons, Up/Down keys or mouse scroll wheel is used and the value changes
- If the value is adjusted via the edit box and the result is valid
- If Enter is pressed in the edit box
sourcepub fn with_class(self, class: TextClass) -> Spinner<T>
pub fn with_class(self, class: TextClass) -> Spinner<T>
Set the text class used
The default is: TextClass::Edit(false)
.
sourcepub fn set_width_em(&mut self, min_em: f32, ideal_em: f32)
pub fn set_width_em(&mut self, min_em: f32, ideal_em: f32)
Adjust the width allocation
sourcepub fn with_width_em(self, min_em: f32, ideal_em: f32) -> Spinner<T>
pub fn with_width_em(self, min_em: f32, ideal_em: f32) -> Spinner<T>
Adjust the width allocation (inline)
sourcepub fn with_value(self, value: T) -> Spinner<T>
pub fn with_value(self, value: T) -> Spinner<T>
Set the initial value
sourcepub fn set_value(&mut self, value: T) -> Action
pub fn set_value(&mut self, value: T) -> Action
Set the value
Returns Action::REDRAW
if a redraw is required.
Trait Implementations§
source§impl<T> AutoLayout for Spinner<T>where
T: SpinnerValue,
impl<T> AutoLayout for Spinner<T>where T: SpinnerValue,
source§impl<T> Debug for Spinner<T>where
T: SpinnerValue,
impl<T> Debug for Spinner<T>where T: SpinnerValue,
source§impl<T> Layout for Spinner<T>where
T: SpinnerValue,
impl<T> Layout for Spinner<T>where T: SpinnerValue,
source§impl<T> Widget for Spinner<T>where
T: SpinnerValue,
impl<T> Widget for Spinner<T>where T: SpinnerValue,
source§fn steal_event(
&mut self,
mgr: &mut EventMgr<'_>,
_: &WidgetId,
event: &Event
) -> Response
fn steal_event( &mut self, mgr: &mut EventMgr<'_>, _: &WidgetId, event: &Event ) -> Response
Potentially steal an event before it reaches a child Read more
source§fn handle_message(&mut self, mgr: &mut EventMgr<'_>)
fn handle_message(&mut self, mgr: &mut EventMgr<'_>)
Handler for messages from children/descendants Read more
Navigation in spatial order Read more
Is this widget navigable via Tab key? Read more
source§fn translation(&self) -> Offset
fn translation(&self) -> Offset
Get translation of children relative to this widget Read more
source§impl<T> WidgetChildren for Spinner<T>where
T: SpinnerValue,
impl<T> WidgetChildren for Spinner<T>where T: SpinnerValue,
source§fn num_children(&self) -> usize
fn num_children(&self) -> usize
Get the number of child widgets Read more
source§fn get_child(&self, _index: usize) -> Option<&dyn Widget>
fn get_child(&self, _index: usize) -> Option<&dyn Widget>
Get a reference to a child widget by index, or
None
if the index is
out of bounds. Read moresource§fn get_child_mut(&mut self, _index: usize) -> Option<&mut dyn Widget>
fn get_child_mut(&mut self, _index: usize) -> Option<&mut dyn Widget>
Mutable variant of get Read more
source§impl<T> WidgetCore for Spinner<T>where
T: SpinnerValue,
impl<T> WidgetCore for Spinner<T>where T: SpinnerValue,
source§fn widget_name(&self) -> &'static str
fn widget_name(&self) -> &'static str
Get the name of the widget struct
source§fn as_widget_mut(&mut self) -> &mut dyn Widget
fn as_widget_mut(&mut self) -> &mut dyn Widget
Erase type
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<W> AdaptWidget for Wwhere
W: Widget + ?Sized,
impl<W> AdaptWidget for Wwhere W: Widget + ?Sized,
source§fn map_msg<M, N, F>(self, f: F) -> MapMessage<Self, M, N, F>where
M: Debug,
N: Debug,
Self: Sized,
F: FnMut(M) -> N,
fn map_msg<M, N, F>(self, f: F) -> MapMessage<Self, M, N, F>where M: Debug, N: Debug, Self: Sized, F: FnMut(M) -> N,
Construct a wrapper widget which maps a message of the given type
source§fn with_reserve<R>(self, r: R) -> Reserve<Self, R>where
R: FnMut(SizeMgr<'_>, AxisInfo) -> SizeRules,
Self: Sized,
fn with_reserve<R>(self, r: R) -> Reserve<Self, R>where R: FnMut(SizeMgr<'_>, AxisInfo) -> SizeRules, Self: Sized,
Construct a wrapper widget which reserves extra space Read more
source§fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self, WithMinSizePx>where
Self: Sized,
fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self, WithMinSizePx>where Self: Sized,
Construct a wrapper, setting minimum size in pixels Read more
source§fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self, WithMinSizeEm>where
Self: Sized,
fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self, WithMinSizeEm>where Self: Sized,
Construct a wrapper, setting minimum size in Em Read more
source§fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>where
D: Directional,
T: Into<AccelString>,
Self: Sized,
fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>where D: Directional, T: Into<AccelString>, Self: Sized,
Construct a wrapper widget adding a label
§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere T: ConvApprox<S>,
§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
§fn cast_approx(self) -> T
fn cast_approx(self) -> T
§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere T: ConvFloat<S>,
§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Cast to integer, truncating Read more
§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Cast to the nearest integer Read more
§fn cast_floor(self) -> T
fn cast_floor(self) -> T
Cast the floor to an integer Read more
§fn try_cast_trunc(self) -> Result<T, Error>
fn try_cast_trunc(self) -> Result<T, Error>
Try converting to integer with truncation Read more
§fn try_cast_nearest(self) -> Result<T, Error>
fn try_cast_nearest(self) -> Result<T, Error>
Try converting to the nearest integer Read more
§fn try_cast_floor(self) -> Result<T, Error>
fn try_cast_floor(self) -> Result<T, Error>
Try converting the floor to an integer Read more
§fn try_cast_ceil(self) -> Result<T, Error>
fn try_cast_ceil(self) -> Result<T, Error>
Try convert the ceiling to an integer Read more
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>
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<W> WidgetExt for Wwhere
W: Widget + ?Sized,
impl<W> WidgetExt for Wwhere W: Widget + ?Sized,
source§fn eq_id<T>(&self, rhs: T) -> boolwhere
WidgetId: PartialEq<T>,
fn eq_id<T>(&self, rhs: T) -> boolwhere WidgetId: PartialEq<T>,
Test widget identifier for equality Read more
source§fn identify(&self) -> IdentifyWidget
fn identify(&self) -> IdentifyWidget
Display as “StructName#WidgetId”
source§fn is_ancestor_of(&self, id: &WidgetId) -> bool
fn is_ancestor_of(&self, id: &WidgetId) -> bool
Check whether
id
is self or a descendant Read moresource§fn is_strict_ancestor_of(&self, id: &WidgetId) -> bool
fn is_strict_ancestor_of(&self, id: &WidgetId) -> bool
Check whether
id
is not self and is a descendant Read more