1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
use polyhorn_core::{CommandBuffer, Key}; use crate::prelude::*; use crate::raw::{Builtin, Convert}; impl Component for Window { fn render(&self, manager: &mut Manager) -> Element { let reference = use_reference!(manager, None); let style = self.style; use_layout_effect!(manager, move |link, buffer| { if let Some(view) = reference.apply(link, |&mut id| id) { buffer.mutate(&[view], move |views, environment| { if let Some(view) = views[0].downcast_mut::<polyhorn_android_sys::View>() { view.set_background_color( environment.env(), style.background_color.convert(environment.env()), ); } }); } }); Element::builtin( Key::new(()), Builtin::Window, manager.children(), Some(reference.weak(manager)), ) } }