diff --git a/dash-frontend/assets/gui/view/audio_settings.xml b/dash-frontend/assets/gui/view/audio_settings.xml index a6a4b887..e1dbabc2 100644 --- a/dash-frontend/assets/gui/view/audio_settings.xml +++ b/dash-frontend/assets/gui/view/audio_settings.xml @@ -1,16 +1,16 @@ - + @@ -67,4 +67,4 @@ - \ No newline at end of file + diff --git a/dash-frontend/src/tab/apps.rs b/dash-frontend/src/tab/apps.rs index cd2a5150..7e17ff39 100644 --- a/dash-frontend/src/tab/apps.rs +++ b/dash-frontend/src/tab/apps.rs @@ -286,7 +286,7 @@ impl AppList { let mut params = HashMap::, Rc>::new(); params.insert("text".into(), category_name.into()); - parser_state.parse_template( + parser_state.realize_template( doc_params, "CategoryText", &mut frontend.layout, @@ -318,7 +318,7 @@ impl AppList { ); params.insert("name".into(), entry.app_name.clone()); - let data = parser_state.parse_template( + let data = parser_state.realize_template( doc_params, "AppEntry", &mut frontend.layout, diff --git a/dash-frontend/src/tab/monado.rs b/dash-frontend/src/tab/monado.rs index 844ad634..a8f3fcf1 100644 --- a/dash-frontend/src/tab/monado.rs +++ b/dash-frontend/src/tab/monado.rs @@ -117,7 +117,7 @@ impl TabMonado { par.insert("flag_primary".into(), yesno(client.is_primary).into()); par.insert("flag_visible".into(), yesno(client.is_visible).into()); - let state_cell = self.state.parse_template( + let state_cell = self.state.realize_template( &doc_params(&self.globals), "Cell", &mut frontend.layout, diff --git a/dash-frontend/src/views/audio_settings.rs b/dash-frontend/src/views/audio_settings.rs index f2c43f45..61061d33 100644 --- a/dash-frontend/src/views/audio_settings.rs +++ b/dash-frontend/src/views/audio_settings.rs @@ -750,7 +750,7 @@ impl View { let data = self .state - .parse_template(&doc_params(&self.globals), "Card", params.layout, self.id_devices, par)?; + .realize_template(&doc_params(&self.globals), "Card", params.layout, self.id_devices, par)?; let btn_card = data.fetch_component_as::("btn_card")?; btn_card.on_click({ @@ -764,7 +764,6 @@ impl View { }) }); - log::info!("mount card TODO: {}", params.card.name); Ok(()) } @@ -794,7 +793,7 @@ impl View { }, ); - let data = self.state.parse_template( + let data = self.state.realize_template( &doc_params(&self.globals), "DeviceSlider", params.layout, @@ -941,7 +940,7 @@ impl View { layout.remove_children(self.id_devices); { - let data = self.state.parse_template( + let data = self.state.realize_template( &doc_params(&self.globals), "SelectAudioProfileText", layout, diff --git a/dash-frontend/src/views/running_games_list.rs b/dash-frontend/src/views/running_games_list.rs index 19f96911..6428f5d1 100644 --- a/dash-frontend/src/views/running_games_list.rs +++ b/dash-frontend/src/views/running_games_list.rs @@ -127,7 +127,7 @@ impl View { for game in games { let game_name = View::extract_name_from_appid(&game.app_id, &self.installed_games); - let t = self.state.parse_template( + let t = self.state.realize_template( &doc_params(layout.state.globals.clone()), "RunningGameCell", layout, diff --git a/wayvr/src/backend/openvr/playspace.rs b/wayvr/src/backend/openvr/playspace.rs index 66e1409f..6f4652b9 100644 --- a/wayvr/src/backend/openvr/playspace.rs +++ b/wayvr/src/backend/openvr/playspace.rs @@ -83,9 +83,7 @@ impl PlayspaceMover { let offset = (space_transform.transform_vector3a(app.input_state.hmd.translation) - app.input_state.hmd.translation) * -1.0; - let mut overlay_transform = Affine3A::from_rotation_y(-rel_y); - overlay_transform.translation = offset; space_transform.translation = offset; data.pose *= space_transform; diff --git a/wgui/src/layout.rs b/wgui/src/layout.rs index 2efb3398..dd7b52f3 100644 --- a/wgui/src/layout.rs +++ b/wgui/src/layout.rs @@ -377,7 +377,7 @@ impl Layout { self.registered_components_to_refresh.insert(*node_id, component.weak()); } - /// Convenience function to avoid repeated `WidgetID` → `WidgetState` lookups. + /// Convenience function to avoid repeated `WidgetID` → `WidgetState` look-ups. pub fn add_event_listener( &self, widget_id: WidgetID, diff --git a/wgui/src/parser/mod.rs b/wgui/src/parser/mod.rs index 2ed37d82..46efe68b 100644 --- a/wgui/src/parser/mod.rs +++ b/wgui/src/parser/mod.rs @@ -201,7 +201,6 @@ impl Fetchable for ParserData { let casted = widget .get_as::() .ok_or_else(|| anyhow::anyhow!("fetch_widget_as({id}): failed to cast"))?; - Ok(casted) } } @@ -217,16 +216,40 @@ pub struct ParserState { } impl ParserState { - /// This function is suitable in cases if you don't want to pollute main parser state with dynamic IDs - /// Use `instantiate_template` instead unless you want to handle `components` results yourself. - /// Make sure not to drop them if you want to have your listener handles valid - pub fn parse_template( + /// Parse named