egui_snarl/ui/
scale.rs

1use egui_scale::EguiScale;
2
3use super::{BackgroundPattern, PinPlacement, SelectionStyle, SnarlStyle, WireStyle};
4
5impl EguiScale for WireStyle {
6    #[inline(always)]
7    fn scale(&mut self, scale: f32) {
8        match self {
9            WireStyle::Line | WireStyle::Bezier3 | WireStyle::Bezier5 => {}
10            WireStyle::AxisAligned { corner_radius } => {
11                corner_radius.scale(scale);
12            }
13        }
14    }
15}
16
17impl EguiScale for SelectionStyle {
18    #[inline(always)]
19    fn scale(&mut self, scale: f32) {
20        self.margin.scale(scale);
21        self.rounding.scale(scale);
22        self.stroke.scale(scale);
23    }
24}
25
26impl EguiScale for PinPlacement {
27    fn scale(&mut self, scale: f32) {
28        if let PinPlacement::Outside { margin } = self {
29            margin.scale(scale);
30        }
31    }
32}
33
34impl EguiScale for BackgroundPattern {
35    fn scale(&mut self, scale: f32) {
36        if let BackgroundPattern::Grid(grid) = self {
37            grid.spacing.scale(scale);
38        }
39    }
40}
41
42impl EguiScale for SnarlStyle {
43    fn scale(&mut self, scale: f32) {
44        self.node_frame.scale(scale);
45        self.header_frame.scale(scale);
46        self.header_drag_space.scale(scale);
47        self.pin_size.scale(scale);
48        self.pin_stroke.scale(scale);
49        self.pin_placement.scale(scale);
50        self.wire_width.scale(scale);
51        self.wire_frame_size.scale(scale);
52        self.wire_style.scale(scale);
53        self.bg_frame.scale(scale);
54        self.bg_pattern.scale(scale);
55        self.bg_pattern_stroke.scale(scale);
56        self.min_scale.scale(scale);
57        self.max_scale.scale(scale);
58        self.select_stoke.scale(scale);
59        self.select_style.scale(scale);
60    }
61}