imgui_inspect/slider/
mod.rs

1mod slider_f32;
2
3pub use super::*;
4
5/// Options for rendering a values as a slider.
6///
7/// Marking a struct member will give it a default rendering behavior. For example,
8/// `#[inspect_slider(min_value = 5.0, max_value = 53.0)]`
9#[derive(Debug, Default)]
10pub struct InspectArgsSlider {
11    /// The minimum value for the slider
12    pub min_value: Option<f32>,
13
14    /// The maximum value on the slider
15    pub max_value: Option<f32>,
16}
17
18impl From<InspectArgsDefault> for InspectArgsSlider {
19    fn from(default_args: InspectArgsDefault) -> Self {
20        Self {
21            min_value: default_args.min_value,
22            max_value: default_args.max_value,
23        }
24    }
25}
26
27/// Renders a value as a slider
28pub trait InspectRenderSlider<T> {
29    /// Render the element in an immutable way (i.e. static text)
30    ///
31    /// (Hopefully in the future this can be better. See
32    /// https://github.com/ocornut/imgui/issues/211)
33    fn render(
34        data: &[&T],
35        label: &'static str,
36        ui: &imgui::Ui,
37        args: &InspectArgsSlider,
38    );
39
40    /// Render the element as a mutable slider
41    fn render_mut(
42        data: &mut [&mut T],
43        label: &'static str,
44        ui: &imgui::Ui,
45        args: &InspectArgsSlider,
46    ) -> bool;
47}