use iris::prelude::*; use winit::event::WindowEvent; fn main() { DesktopApp::::run(); } #[derive(DesktopUiState)] pub struct Client { ui_state: DesktopUiState, info: WeakWidget, } impl DesktopAppState for Client { fn new( mut ui_state: DesktopUiState, rsc: &mut DesktopRsc, _: Proxy, ) -> Self { let widgets = tabs_ui::build(rsc, &mut ui_state); Self { ui_state, info: widgets.info, } } fn window_event(&mut self, _: WindowEvent, rsc: &mut DesktopRsc) { let render_state = rsc.ui.render_state(); let new = format!( "widgets: {}\nactive: {}\nviews: {}", rsc.widgets().len(), render_state.get().active_widgets(), self.ui_state.renderer.ui.view_count(), ); if new != *rsc.widgets()[self.info].content { *rsc.widgets_mut()[self.info].content = new; } } }