windjammer_ui/components/generated/
slider.rs

1#![allow(clippy::all)]
2#![allow(noop_method_call)]
3use super::traits::Renderable;
4
5pub struct Slider {
6    min: f64,
7    max: f64,
8    step: f64,
9    value: f64,
10    disabled: bool,
11    label: String,
12}
13
14impl Slider {
15    #[inline]
16    pub fn new() -> Slider {
17        Slider {
18            min: 0.0,
19            max: 100.0,
20            step: 1.0,
21            value: 50.0,
22            disabled: false,
23            label: "".to_string(),
24        }
25    }
26    #[inline]
27    pub fn min(mut self, min: f64) -> Slider {
28        self.min = min;
29        self
30    }
31    #[inline]
32    pub fn max(mut self, max: f64) -> Slider {
33        self.max = max;
34        self
35    }
36    #[inline]
37    pub fn step(mut self, step: f64) -> Slider {
38        self.step = step;
39        self
40    }
41    #[inline]
42    pub fn value(mut self, value: f64) -> Slider {
43        self.value = value;
44        self
45    }
46    #[inline]
47    pub fn disabled(mut self, disabled: bool) -> Slider {
48        self.disabled = disabled;
49        self
50    }
51    #[inline]
52    pub fn label(mut self, label: String) -> Slider {
53        self.label = label;
54        self
55    }
56}
57
58impl Renderable for Slider {
59    #[inline]
60    fn render(self) -> String {
61        let disabled_attr = {
62            if self.disabled {
63                " disabled"
64            } else {
65                ""
66            }
67        };
68        let label_html = {
69            if self.label != "" {
70                format!("{}{}{}", "<label>".to_string(), self.label, "</label>")
71            } else {
72                "".to_string()
73            }
74        };
75        format!(
76            "{}<input type='range' class='wj-slider' min='{}' max='{}' step='{}' value='{}'{}>",
77            label_html, self.min, self.max, self.step, self.value, disabled_attr
78        )
79    }
80}