1use egui::{Pos2, Rect, Vec2};
2
3use crate::EguiProbe;
4
5impl EguiProbe for Vec2 {
6 fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
7 let mut changed = false;
8
9 let mut r = ui
10 .horizontal(|ui| {
11 changed |= ui.add(egui::DragValue::new(&mut self.x)).changed();
12 changed |= ui.add(egui::DragValue::new(&mut self.y)).changed();
13 })
14 .response;
15
16 if changed {
17 r.mark_changed();
18 }
19
20 r
21 }
22}
23
24impl EguiProbe for Pos2 {
25 fn probe(&mut self, ui: &mut egui::Ui, _style: &crate::Style) -> egui::Response {
26 let mut changed = false;
27
28 let mut r = ui
29 .horizontal(|ui| {
30 changed |= ui.add(egui::DragValue::new(&mut self.x)).changed();
31 changed |= ui.add(egui::DragValue::new(&mut self.y)).changed();
32 })
33 .response;
34
35 if changed {
36 r.mark_changed();
37 }
38
39 r
40 }
41}
42
43impl EguiProbe for Rect {
44 fn probe(&mut self, ui: &mut egui::Ui, style: &crate::Style) -> egui::Response {
45 let mut changed = false;
46
47 let mut r = ui
48 .horizontal(|ui| {
49 let top = ui.label("top");
50 changed |= self.min.y.probe(ui, style).labelled_by(top.id).changed();
51 let left = ui.label("left");
52 changed |= self.min.x.probe(ui, style).labelled_by(left.id).changed();
53 let bottom = ui.label("bottom");
54 changed |= self.max.y.probe(ui, style).labelled_by(bottom.id).changed();
55 let right = ui.label("right");
56 changed |= self.max.x.probe(ui, style).labelled_by(right.id).changed();
57 })
58 .response;
59
60 if changed {
61 r.mark_changed();
62 }
63
64 r
65 }
66}