windjammer_ui/components/generated/
slider.rs

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