When using a `DragValue`, there are three common modes of range clamping that the user may want: A) no clamping B) clamping only user input (dragging or editing text), but leave existing value intact C) always clamp The difference between mode B and C is: ```rs let mut x = 42.0; ui.add(DragValue::new(&mut x).range(0.0..=1.0)); // What will `x` be here? ``` With this PR, we now can get the three behaviors with: * A): don't call `.range()` (or use `-Inf..=Inf`) * B) call `.range()` and `.clamp_existing_to_range(false)` * C) call `.range()` ## Slider clamping Slider clamping is slightly different, since a slider always has a range. For a slider, there are these three cases to consider: A) no clamping B) clamp any value that the user enters, but leave existing values intact C) always clamp all values Out of this, C should probably be the default. I'm not sure what the best API is for this yet. Maybe an `enum` 🤔 I'll take a pass on that in a future PR. ## Related * https://github.com/emilk/egui/pull/4728 * https://github.com/emilk/egui/issues/4881 * https://github.com/emilk/egui/pull/4882 |
||
|---|---|---|
| .. | ||
| ecolor | ||
| eframe | ||
| egui | ||
| egui-wgpu | ||
| egui-winit | ||
| egui_demo_app | ||
| egui_demo_lib | ||
| egui_extras | ||
| egui_glow | ||
| egui_plot | ||
| egui_web | ||
| emath | ||
| epaint | ||
| epaint_default_fonts | ||