windjammer_ui/components/generated/
slider.rs1#![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}