egui-treeize 0.1.1

Tree-like graph visualization for egui
Documentation
use egui_scale::EguiScale;

use super::{BackgroundPattern, PinPlacement, SelectionStyle, TreeizeStyle, WireStyle};

impl EguiScale for WireStyle {
  #[inline(always)]
  fn scale(&mut self, scale: f32) {
    match self {
      WireStyle::Line | WireStyle::Bezier3 | WireStyle::Bezier5 => {}
      WireStyle::AxisAligned { corner_radius } => {
        corner_radius.scale(scale);
      }
    }
  }
}

impl EguiScale for SelectionStyle {
  #[inline(always)]
  fn scale(&mut self, scale: f32) {
    self.margin.scale(scale);
    self.rounding.scale(scale);
    self.stroke.scale(scale);
  }
}

impl EguiScale for PinPlacement {
  fn scale(&mut self, scale: f32) {
    if let PinPlacement::Outside { margin } = self {
      margin.scale(scale);
    }
  }
}

impl EguiScale for BackgroundPattern {
  fn scale(&mut self, scale: f32) {
    if let BackgroundPattern::Grid(grid) = self {
      grid.spacing.scale(scale);
    }
  }
}

impl EguiScale for TreeizeStyle {
  fn scale(&mut self, scale: f32) {
    self.node_frame.scale(scale);
    self.header_frame.scale(scale);
    self.header_drag_space.scale(scale);
    self.pin_size.scale(scale);
    self.pin_stroke.scale(scale);
    self.pin_placement.scale(scale);
    self.wire_width.scale(scale);
    self.wire_frame_size.scale(scale);
    self.wire_style.scale(scale);
    self.bg_frame.scale(scale);
    self.bg_pattern.scale(scale);
    self.bg_pattern_stroke.scale(scale);
    self.min_scale.scale(scale);
    self.max_scale.scale(scale);
    self.select_stoke.scale(scale);
    self.select_style.scale(scale);
  }
}