From d5bb10528de3d2e5562f9b1a1ec7854a9d070aed Mon Sep 17 00:00:00 2001 From: rootiest Date: Mon, 3 Aug 2026 21:15:28 -0400 Subject: [PATCH] feat: add emblem geometry sliders --- src/ui/editor.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/ui/editor.rs b/src/ui/editor.rs index a55f638..23e8296 100644 --- a/src/ui/editor.rs +++ b/src/ui/editor.rs @@ -51,6 +51,20 @@ pub fn build_editor_page( // Geometry sliders will go here in Task 4 let geometry_box = GtkBox::new(Orientation::Vertical, 4); + + let scale_x = gtk::Scale::with_range(Orientation::Horizontal, -64.0, 64.0, 1.0); + scale_x.set_value(32.0); + let scale_y = gtk::Scale::with_range(Orientation::Horizontal, -64.0, 64.0, 1.0); + scale_y.set_value(32.0); + let scale_size = gtk::Scale::with_range(Orientation::Horizontal, 8.0, 128.0, 1.0); + scale_size.set_value(32.0); + + geometry_box.append(&Label::new(Some("Emblem X"))); + geometry_box.append(&scale_x); + geometry_box.append(&Label::new(Some("Emblem Y"))); + geometry_box.append(&scale_y); + geometry_box.append(&Label::new(Some("Emblem Size"))); + geometry_box.append(&scale_size); side_panel.append(&geometry_box); content.append(&side_panel); @@ -74,6 +88,31 @@ pub fn build_editor_page( }; refresh_preview(); + { + let composite = Rc::clone(&composite); + let refresh_preview = refresh_preview.clone(); + scale_x.connect_value_changed(move |s| { + composite.borrow_mut().emblem_x = s.value(); + refresh_preview(); + }); + } + { + let composite = Rc::clone(&composite); + let refresh_preview = refresh_preview.clone(); + scale_y.connect_value_changed(move |s| { + composite.borrow_mut().emblem_y = s.value(); + refresh_preview(); + }); + } + { + let composite = Rc::clone(&composite); + let refresh_preview = refresh_preview.clone(); + scale_size.connect_value_changed(move |s| { + composite.borrow_mut().emblem_size = s.value(); + refresh_preview(); + }); + } + let rebuild_swatches: Rc>> = Rc::new(RefCell::new(Box::new(|| {}))); { let composite = Rc::clone(&composite);