| 56 | |
| 57 | impl<T> AsyncActivityHost<MaterialApplication> for MaterialApplicationHost<T> { |
| 58 | fn init( |
| 59 | runner: &mut MaterialApplication, |
| 60 | store: &mut Store<Self::Context, StoreKey>, |
| 61 | context: &mut Self::Context, |
| 62 | ) -> Result<Self, Self::Error> { |
| 63 | let painter = Rc::new(Painter::new()); |
| 64 | |
| 65 | // Composition root in terms of Dependecy Injection |
| 66 | // We fill WidgetRenderFactory with default render implementations |
| 67 | { |
| 68 | let factory = WidgetRenderFactory::global(); |
| 69 | factory.register(box AppBarRender::new(painter.clone())); |
| 70 | factory.register(box ButtonRender); |
| 71 | factory.register(box CanvasRender); |
| 72 | factory.register(box CheckboxRender); |
| 73 | factory.register(box DividerRender::new(painter.clone())); |
| 74 | factory.register(box DropdownRender); |
| 75 | factory.register(box ImageRender::new(painter.clone())); |
| 76 | factory.register(box LabelRender); |
| 77 | factory.register(box ListRender); |
| 78 | factory.register(box MaterialAppRender::new(painter.clone())); // set the projection matrix and do other necessary things |
| 79 | factory.register(box MaterialButtonRender::new(painter.clone())); |
| 80 | factory.register(box NavigationRailDestinationRender::new(painter.clone())); |
| 81 | factory.register(box NavigationRailRender::new(painter.clone())); |
| 82 | factory.register(box PanelRender); |
| 83 | factory.register(box ProgressIndicatorRender); |
| 84 | factory.register(box ScaffoldRender::new(painter.clone())); |
| 85 | factory.register(box ScrollableRender); |
| 86 | factory.register(box SliderRender); |
| 87 | factory.register(box TextRender::new(painter.clone())); |
| 88 | factory.register(box TextEditRender); |
| 89 | factory.register(box VerticalDividerRender::new(painter.clone())); |
| 90 | factory.register(box WindowRender); |
| 91 | } |
| 92 | |
| 93 | Ok(Self { |
| 94 | phantom: PhantomData, |
| 95 | root: box NoneElement::default(), |
| 96 | cursor: Point2::new(0.0, 0.0), |
| 97 | painter, |
| 98 | }) |
| 99 | } |
| 100 | } |
| 101 | |
| 102 | impl<T> AsyncActivity<MaterialApplication> for MaterialApplicationHost<T> { |