use crate::prelude::*; #[derive(Default)] pub struct WidgetPtr { pub inner: Option, } impl Widget for WidgetPtr { fn draw(&mut self, painter: &mut Painter) { if let Some(id) = &self.inner { painter.widget(id); } } fn desired_size(&mut self, ctx: &mut SizeCtx) -> Size { if let Some(id) = &self.inner { ctx.size(id) } else { Size::ZERO } } }