listener handles, auto-clean destroyed listeners, minor refactor
This commit is contained in:
@@ -126,7 +126,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
MouseScrollDelta::LineDelta(x, y) => testbed
|
||||
.layout()
|
||||
.push_event(
|
||||
&listeners,
|
||||
&mut listeners,
|
||||
&wgui::event::Event::MouseWheel(MouseWheelEvent {
|
||||
shift: Vec2::new(x, y),
|
||||
pos: mouse / scale,
|
||||
@@ -138,7 +138,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
MouseScrollDelta::PixelDelta(pos) => testbed
|
||||
.layout()
|
||||
.push_event(
|
||||
&listeners,
|
||||
&mut listeners,
|
||||
&wgui::event::Event::MouseWheel(MouseWheelEvent {
|
||||
shift: Vec2::new(pos.x as f32 / 5.0, pos.y as f32 / 5.0),
|
||||
pos: mouse / scale,
|
||||
@@ -157,7 +157,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
testbed
|
||||
.layout()
|
||||
.push_event(
|
||||
&listeners,
|
||||
&mut listeners,
|
||||
&wgui::event::Event::MouseDown(MouseDownEvent {
|
||||
pos: mouse / scale,
|
||||
button: MouseButton::Left,
|
||||
@@ -170,7 +170,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
testbed
|
||||
.layout()
|
||||
.push_event(
|
||||
&listeners,
|
||||
&mut listeners,
|
||||
&wgui::event::Event::MouseUp(MouseUpEvent {
|
||||
pos: mouse / scale,
|
||||
button: MouseButton::Left,
|
||||
@@ -190,7 +190,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
testbed
|
||||
.layout()
|
||||
.push_event(
|
||||
&listeners,
|
||||
&mut listeners,
|
||||
&wgui::event::Event::MouseMotion(MouseMotionEvent {
|
||||
pos: mouse / scale,
|
||||
device: 0,
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
use crate::{assets, testbed::Testbed};
|
||||
use glam::Vec2;
|
||||
use wgui::{event::EventListenerCollection, layout::Layout};
|
||||
use wgui::{event::EventListenerCollection, layout::Layout, parser::ParserState};
|
||||
|
||||
pub struct TestbedAny {
|
||||
pub layout: Layout,
|
||||
|
||||
#[allow(dead_code)]
|
||||
state: ParserState,
|
||||
}
|
||||
|
||||
impl TestbedAny {
|
||||
@@ -12,9 +15,9 @@ impl TestbedAny {
|
||||
listeners: &mut EventListenerCollection<(), ()>,
|
||||
) -> anyhow::Result<Self> {
|
||||
let path = format!("gui/{name}.xml");
|
||||
let (layout, _state) =
|
||||
let (layout, state) =
|
||||
wgui::parser::new_layout_from_assets(Box::new(assets::Asset {}), listeners, &path)?;
|
||||
Ok(Self { layout })
|
||||
Ok(Self { layout, state })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
use crate::{assets, testbed::Testbed};
|
||||
use glam::Vec2;
|
||||
use wgui::{event::EventListenerCollection, layout::Layout};
|
||||
use wgui::{event::EventListenerCollection, layout::Layout, parser::ParserState};
|
||||
|
||||
pub struct TestbedGeneric {
|
||||
pub layout: Layout,
|
||||
|
||||
#[allow(dead_code)]
|
||||
state: ParserState,
|
||||
}
|
||||
|
||||
impl TestbedGeneric {
|
||||
pub fn new(listeners: &mut EventListenerCollection<(), ()>) -> anyhow::Result<Self> {
|
||||
const XML_PATH: &str = "gui/testbed.xml";
|
||||
|
||||
let (layout, _res) =
|
||||
let (layout, state) =
|
||||
wgui::parser::new_layout_from_assets(Box::new(assets::Asset {}), listeners, XML_PATH)?;
|
||||
|
||||
Ok(Self { layout })
|
||||
Ok(Self { layout, state })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user