use iris::prelude::*; use winit::event::WindowEvent; fn main() { DefaultApp::::run(); } #[derive(DefaultUiState)] pub struct Client { ui_state: DefaultUiState, info: WeakWidget, } impl DefaultAppState for Client { fn new( mut ui_state: DefaultUiState, rsc: &mut DefaultRsc, _: 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 DefaultRsc, render: &mut UiRenderState, ) { let new = format!( "widgets: {}\nactive: {}\nviews: {}", rsc.widgets().len(), render.active_widgets(), self.ui_state.renderer.ui.view_count(), ); if new != *rsc.widgets()[self.info].content { *rsc.widgets_mut()[self.info].content = new; } } }