From d6dbfdf7ea7fe17f724da452c55ac9838e6f2bd6 Mon Sep 17 00:00:00 2001 From: rootiest Date: Mon, 3 Aug 2026 20:48:37 -0400 Subject: [PATCH] feat: add CompositeIcon struct for nesting SVGs --- src/composite_icon.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 1 + 2 files changed, 44 insertions(+) create mode 100644 src/composite_icon.rs diff --git a/src/composite_icon.rs b/src/composite_icon.rs new file mode 100644 index 0000000..86cce42 --- /dev/null +++ b/src/composite_icon.rs @@ -0,0 +1,43 @@ +use crate::color_scheme::ColorScheme; + +pub struct CompositeIcon { + pub bg: ColorScheme, + pub emblem: Option, + pub emblem_x: f64, + pub emblem_y: f64, + pub emblem_size: f64, +} + +impl CompositeIcon { + pub fn new(bg: ColorScheme) -> Self { + Self { + bg, + emblem: None, + emblem_x: 32.0, + emblem_y: 32.0, + emblem_size: 32.0, + } + } + + pub fn set_emblem(&mut self, emblem: ColorScheme) { + self.emblem = Some(emblem); + } + + pub fn render(&self) -> String { + if let Some(emblem) = &self.emblem { + format!( + r#" + +{} + + +{} + +"#, + self.bg.content, self.emblem_x, self.emblem_y, self.emblem_size, self.emblem_size, emblem.content + ) + } else { + self.bg.content.clone() + } + } +} diff --git a/src/main.rs b/src/main.rs index 7ec0602..bc56a20 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod color_scheme; +mod composite_icon; mod config; mod icon_index; mod ui;