Files
ai-app/iris/examples/tabs/main.rs
T

36 lines
959 B
Rust

use iris::prelude::*;
use winit::event::WindowEvent;
fn main() {
DesktopApp::<Client>::run();
}
#[derive(DesktopUiState)]
pub struct Client {
ui_state: DesktopUiState,
info: WeakWidget<Text>,
}
impl DesktopAppState for Client {
fn new(mut ui_state: DesktopUiState, rsc: &mut StdRsc<Self>, _: Proxy<Self::Event>) -> Self {
let widgets = tabs_ui::build(rsc, &mut ui_state);
Self {
ui_state,
info: widgets.info,
}
}
fn window_event(&mut self, _: WindowEvent, rsc: &mut StdRsc<Self>) {
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;
}
}
}