1#[doc(hidden)]
2#[macro_export]
3macro_rules! impl_valuator_ext {
5 ($name: ident, $flname: ident) => {
6 paste::paste! {
7 unsafe impl ValuatorExt for $name {
8 fn set_bounds(&mut self, a: f64, b: f64) {
9 unsafe {
10 [<$flname _set_bounds>](self.inner.widget() as _, a, b)
11 }
12 }
13
14 fn minimum(&self) -> f64 {
15 unsafe {
16 [<$flname _minimum>](self.inner.widget() as _)
17 }
18 }
19
20 fn set_minimum(&mut self, a: f64) {
21 unsafe {
22 [<$flname _set_minimum>](self.inner.widget() as _, a)
23 }
24 }
25
26 fn maximum(&self) -> f64 {
27 unsafe {
28 [<$flname _maximum>](self.inner.widget() as _)
29 }
30 }
31
32 fn set_maximum(&mut self, a: f64) {
33 unsafe {
34 [<$flname _set_maximum>](self.inner.widget() as _, a)
35 }
36 }
37
38 fn set_range(&mut self, a: f64, b: f64) {
39 unsafe {
40 [<$flname _set_range>](self.inner.widget() as _, a, b)
41 }
42 }
43
44 fn set_step(&mut self, a: f64, b: i32) {
45 unsafe {
46 assert!(b != 0);
47 [<$flname _set_step>](self.inner.widget() as _, a, b)
48 }
49 }
50
51 fn step(&self) -> f64 {
52 unsafe {
53 [<$flname _step>](self.inner.widget() as _)
54 }
55 }
56
57 fn set_precision(&mut self, digits: i32) {
58 unsafe {
59 [<$flname _set_precision>](self.inner.widget() as _, digits)
60 }
61 }
62
63 fn value(&self) -> f64 {
64 unsafe {
65 [<$flname _value>](self.inner.widget() as _)
66 }
67 }
68
69 fn set_value(&mut self, arg2: f64) {
70 unsafe {
71 [<$flname _set_value>](self.inner.widget() as _, arg2);
72 }
73 }
74
75 fn format(&mut self, arg2: &str) -> Result<(), FltkError> {
76 unsafe {
77 let arg2 = CString::safe_new(arg2);
78 let x = [<$flname _format>](
79 self.inner.widget() as _,
80 arg2.as_ptr() as *mut std::os::raw::c_char,
81 );
82 if x < 0 {
83 return Err(FltkError::Internal(FltkErrorKind::FailedOperation));
84 }
85 Ok(())
86 }
87 }
88
89 fn round(&self, arg2: f64) -> f64 {
90 unsafe {
91 [<$flname _round>](self.inner.widget() as _, arg2)
92 }
93 }
94
95 fn clamp(&self, arg2: f64) -> f64 {
96 unsafe {
97 [<$flname _clamp>](self.inner.widget() as _, arg2)
98 }
99 }
100
101 fn increment(&mut self, arg2: f64, arg3: i32) -> f64 {
102 unsafe {
103 [<$flname _increment>](self.inner.widget() as _, arg2, arg3)
104 }
105 }
106 }
107 }
108 };
109}
110
111pub use impl_valuator_ext;