23 lines
450 B
Rust
23 lines
450 B
Rust
use crate::prelude::*;
|
|
|
|
#[derive(Default)]
|
|
pub struct WidgetPtr {
|
|
pub inner: Option<WidgetId>,
|
|
}
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|