Skip to content

Instantly share code, notes, and snippets.

@s3thi
Created December 25, 2019 13:07
Show Gist options
  • Save s3thi/84fd4c7fad428ca6238087ef6b3c8345 to your computer and use it in GitHub Desktop.
Save s3thi/84fd4c7fad428ca6238087ef6b3c8345 to your computer and use it in GitHub Desktop.
struct TodoListRoot<T: Data> {
inner: WidgetPod<T, Box<dyn Widget<T>>>,
}
impl<T: Data> TodoListRoot<T> {
fn new(inner: impl Widget<T> + 'static) -> Self {
Self {
inner: WidgetPod::new(inner).boxed(),
}
}
}
impl<T: Data + 'static> Widget<T> for TodoListRoot<T> {
fn paint(&mut self, ctx: &mut PaintCtx, _state: &BaseState, data: &T, env: &Env) {
self.inner.paint(ctx, data, env);
}
fn layout(&mut self, ctx: &mut LayoutCtx, bc: &BoxConstraints, data: &T, env: &Env) -> Size {
self.inner.layout(ctx, &bc, data, env)
}
fn event(&mut self, ctx: &mut EventCtx, event: &Event, data: &mut T, env: &Env) {
self.inner.event(ctx, event, data, env);
}
fn update(&mut self, ctx: &mut UpdateCtx, _old_data: Option<&T>, new_data: &T, env: &Env) {
self.inner.update(ctx, new_data, env);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment