Add a `Slider::update_while_editing(bool)` API (#5978)
* Closes #5976 * [x] I have followed the instructions in the PR template - The `scripts/check.sh` fails in `cargo-deny` because of a security vulnerability in `crossbeam-channel` but this is also present on `master`. https://github.com/user-attachments/assets/a964c968-bb76-4e56-88e1-d1e3d51a401a
This commit is contained in:
parent
501905b60d
commit
009bfe5ada
|
|
@ -117,6 +117,7 @@ pub struct Slider<'a> {
|
||||||
custom_parser: Option<NumParser<'a>>,
|
custom_parser: Option<NumParser<'a>>,
|
||||||
trailing_fill: Option<bool>,
|
trailing_fill: Option<bool>,
|
||||||
handle_shape: Option<HandleShape>,
|
handle_shape: Option<HandleShape>,
|
||||||
|
update_while_editing: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Slider<'a> {
|
impl<'a> Slider<'a> {
|
||||||
|
|
@ -167,6 +168,7 @@ impl<'a> Slider<'a> {
|
||||||
custom_parser: None,
|
custom_parser: None,
|
||||||
trailing_fill: None,
|
trailing_fill: None,
|
||||||
handle_shape: None,
|
handle_shape: None,
|
||||||
|
update_while_editing: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -641,6 +643,16 @@ impl<'a> Slider<'a> {
|
||||||
let normalized = normalized_from_value(value, self.range(), &self.spec);
|
let normalized = normalized_from_value(value, self.range(), &self.spec);
|
||||||
lerp(position_range, normalized as f32)
|
lerp(position_range, normalized as f32)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Update the value on each key press when text-editing the value.
|
||||||
|
///
|
||||||
|
/// Default: `true`.
|
||||||
|
/// If `false`, the value will only be updated when user presses enter or deselects the value.
|
||||||
|
#[inline]
|
||||||
|
pub fn update_while_editing(mut self, update: bool) -> Self {
|
||||||
|
self.update_while_editing = update;
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Slider<'_> {
|
impl Slider<'_> {
|
||||||
|
|
@ -900,7 +912,8 @@ impl Slider<'_> {
|
||||||
.min_decimals(self.min_decimals)
|
.min_decimals(self.min_decimals)
|
||||||
.max_decimals_opt(self.max_decimals)
|
.max_decimals_opt(self.max_decimals)
|
||||||
.suffix(self.suffix.clone())
|
.suffix(self.suffix.clone())
|
||||||
.prefix(self.prefix.clone());
|
.prefix(self.prefix.clone())
|
||||||
|
.update_while_editing(self.update_while_editing);
|
||||||
|
|
||||||
match self.clamping {
|
match self.clamping {
|
||||||
SliderClamping::Never => {}
|
SliderClamping::Never => {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue