egui_probe/
ui.rs

1use egui::{CornerRadius, Frame, Margin, Stroke, epaint::Shadow};
2
3use crate::{EguiProbe, num::non_negative};
4
5impl EguiProbe for Stroke {
6    fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
7        ui.weak("Stroke")
8    }
9
10    #[inline(always)]
11    fn iterate_inner(
12        &mut self,
13        ui: &mut egui::Ui,
14        f: &mut dyn FnMut(&str, &mut egui::Ui, &mut dyn EguiProbe),
15    ) {
16        f("color", ui, &mut self.color);
17        f("width", ui, &mut non_negative(&mut self.width));
18    }
19}
20
21impl EguiProbe for Margin {
22    #[inline(always)]
23    fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
24        ui.weak("Margin")
25    }
26
27    #[inline(always)]
28    fn iterate_inner(
29        &mut self,
30        ui: &mut egui::Ui,
31        f: &mut dyn FnMut(&str, &mut egui::Ui, &mut dyn EguiProbe),
32    ) {
33        f("top", ui, &mut non_negative(&mut self.top));
34        f("left", ui, &mut non_negative(&mut self.left));
35        f("bottom", ui, &mut non_negative(&mut self.bottom));
36        f("right", ui, &mut non_negative(&mut self.right));
37    }
38}
39
40impl EguiProbe for CornerRadius {
41    #[inline(always)]
42    fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
43        ui.weak("Rounding")
44    }
45
46    #[inline(always)]
47    fn iterate_inner(
48        &mut self,
49        ui: &mut egui::Ui,
50        f: &mut dyn FnMut(&str, &mut egui::Ui, &mut dyn EguiProbe),
51    ) {
52        f("nw", ui, &mut non_negative(&mut self.nw));
53        f("ne", ui, &mut non_negative(&mut self.ne));
54        f("sw", ui, &mut non_negative(&mut self.sw));
55        f("se", ui, &mut non_negative(&mut self.se));
56    }
57}
58
59impl EguiProbe for Shadow {
60    #[inline(always)]
61    fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
62        ui.weak("Shadow")
63    }
64
65    fn iterate_inner(
66        &mut self,
67        ui: &mut egui::Ui,
68        f: &mut dyn FnMut(&str, &mut egui::Ui, &mut dyn EguiProbe),
69    ) {
70        f("offset", ui, &mut self.offset);
71        f("blur", ui, &mut non_negative(&mut self.blur));
72        f("spread", ui, &mut non_negative(&mut self.spread));
73        f("color", ui, &mut self.color);
74    }
75}
76
77impl EguiProbe for Frame {
78    #[inline(always)]
79    fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
80        ui.weak("Frame")
81    }
82
83    #[inline(always)]
84    fn iterate_inner(
85        &mut self,
86        ui: &mut egui::Ui,
87        f: &mut dyn FnMut(&str, &mut egui::Ui, &mut dyn EguiProbe),
88    ) {
89        f("inner_margin", ui, &mut self.inner_margin);
90        f("outer_margin", ui, &mut self.outer_margin);
91        f("rounding", ui, &mut self.corner_radius);
92        f("shadow", ui, &mut self.shadow);
93        f("fill", ui, &mut self.fill);
94        f("stroke", ui, &mut self.stroke);
95    }
96}