1use feather_ui::component::mouse_area;
5use feather_ui::lua::LuaApp;
6use feather_ui::mlua::Lua;
7use feather_ui::{InputResult, WrapEventEx, handlers};
8
9const LAYOUT: &[u8] = include_bytes!("./basic.lua");
10
11#[derive(PartialEq, Clone, Debug, feather_macro::UserData)]
12struct CounterState {
13 count: i32,
14}
15
16fn main() {
17 let lua = Lua::new();
18
19 let onclick = |_: mouse_area::MouseAreaEvent,
20 mut appdata: feather_ui::AccessCell<CounterState>|
21 -> InputResult<()> {
22 {
23 appdata.count += 1;
24 InputResult::Forward(())
25 }
26 }
27 .wrap();
28
29 let (mut app, event_loop) = LuaApp::<CounterState>::new::<()>(
30 &lua,
31 CounterState { count: 0 },
32 handlers![CounterState, onclick],
33 LAYOUT,
34 )
35 .unwrap();
36
37 event_loop.run_app(&mut app).unwrap();
38}