diff --git a/uidev/src/testbed/testbed_any.rs b/uidev/src/testbed/testbed_any.rs index a5ac9c9..6bea26f 100644 --- a/uidev/src/testbed/testbed_any.rs +++ b/uidev/src/testbed/testbed_any.rs @@ -1,7 +1,10 @@ use crate::{assets, testbed::Testbed}; use glam::Vec2; use wgui::{ - event::EventListenerCollection, globals::WguiGlobals, layout::Layout, parser::ParserState, + event::EventListenerCollection, + globals::WguiGlobals, + layout::Layout, + parser::{ParseDocumentParams, ParserState}, }; pub struct TestbedAny { @@ -20,8 +23,14 @@ impl TestbedAny { let globals = WguiGlobals::new(Box::new(assets::Asset {}))?; - let (layout, state) = - wgui::parser::new_layout_from_assets(globals, listeners, &path, false)?; + let (layout, state) = wgui::parser::new_layout_from_assets( + listeners, + &ParseDocumentParams { + globals, + path: &path, + extra: Default::default(), + }, + )?; Ok(Self { layout, state }) } } diff --git a/uidev/src/testbed/testbed_generic.rs b/uidev/src/testbed/testbed_generic.rs index 44d5dfa..cd2d338 100644 --- a/uidev/src/testbed/testbed_generic.rs +++ b/uidev/src/testbed/testbed_generic.rs @@ -12,7 +12,7 @@ use wgui::{ globals::WguiGlobals, i18n::Translation, layout::{Layout, Widget}, - parser::ParserState, + parser::{ParseDocumentParams, ParserState}, widget::label::WidgetLabel, }; @@ -58,8 +58,14 @@ impl TestbedGeneric { let globals = WguiGlobals::new(Box::new(assets::Asset {}))?; - let (layout, state) = - wgui::parser::new_layout_from_assets(globals, listeners, XML_PATH, false)?; + let (layout, state) = wgui::parser::new_layout_from_assets( + listeners, + &ParseDocumentParams { + globals, + path: XML_PATH, + extra: Default::default(), + }, + )?; let label_cur_option = state.fetch_widget(&layout.state, "label_current_option")?; diff --git a/wgui/src/parser/mod.rs b/wgui/src/parser/mod.rs index 4e907b4..bb368ee 100644 --- a/wgui/src/parser/mod.rs +++ b/wgui/src/parser/mod.rs @@ -105,12 +105,12 @@ impl ParserState { pub fn process_template( &mut self, + doc_params: &ParseDocumentParams, template_name: &str, layout: &mut Layout, listeners: &mut EventListenerCollection, widget_id: WidgetID, template_parameters: HashMap, Rc>, - dev_mode: bool, ) -> anyhow::Result<()> { let Some(template) = self.templates.get(template_name) else { anyhow::bail!("no template named \"{}\" found", template_name); @@ -125,7 +125,7 @@ impl ParserState { components: self.components.clone(), // FIXME: prevent copying components_id_map: self.components_id_map.clone(), // FIXME: prevent copying templates: Default::default(), - dev_mode, + doc_params, }; let file = ParserFile { @@ -157,6 +157,7 @@ struct MacroAttribs { } struct ParserContext<'a, U1, U2> { + doc_params: &'a ParseDocumentParams<'a>, layout: &'a mut Layout, listeners: &'a mut EventListenerCollection, var_map: HashMap, Rc>, @@ -165,7 +166,6 @@ struct ParserContext<'a, U1, U2> { templates: HashMap, Rc