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}