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_width(&mut self, ctx: &mut SizeCtx) -> Len { if let Some(id) = &self.inner { ctx.width(id) } else { Len::ZERO } } fn desired_height(&mut self, ctx: &mut SizeCtx) -> Len { if let Some(id) = &self.inner { ctx.height(id) } else { Len::ZERO } } }