implement listeners for Button component back

This commit is contained in:
Aleksander
2025-06-28 18:30:38 +02:00
parent 2420e8007c
commit 28d58fef59
6 changed files with 65 additions and 26 deletions

View File

@@ -62,7 +62,7 @@ fn load_testbed(
let name = std::env::var("TESTBED").unwrap_or_default();
Ok(match name.as_str() {
"" => Box::new(TestbedGeneric::new(listeners)?),
_ => Box::new(TestbedAny::new(&name)?),
_ => Box::new(TestbedAny::new(&name, listeners)?),
})
}

View File

@@ -1,16 +1,19 @@
use crate::{assets, testbed::Testbed};
use glam::Vec2;
use wgui::layout::Layout;
use wgui::{event::EventListenerCollection, layout::Layout};
pub struct TestbedAny {
pub layout: Layout,
}
impl TestbedAny {
pub fn new(name: &str) -> anyhow::Result<Self> {
pub fn new(
name: &str,
listeners: &mut EventListenerCollection<(), ()>,
) -> anyhow::Result<Self> {
let path = format!("gui/{name}.xml");
let (layout, _state) =
wgui::parser::new_layout_from_assets(Box::new(assets::Asset {}), &path)?;
wgui::parser::new_layout_from_assets(Box::new(assets::Asset {}), listeners, &path)?;
Ok(Self { layout })
}
}

View File

@@ -11,7 +11,7 @@ impl TestbedGeneric {
const XML_PATH: &str = "gui/testbed.xml";
let (layout, _res) =
wgui::parser::new_layout_from_assets(Box::new(assets::Asset {}), XML_PATH)?;
wgui::parser::new_layout_from_assets(Box::new(assets::Asset {}), listeners, XML_PATH)?;
Ok(Self { layout })
}