use crate::prelude::*; pub mod eventable { use super::*; widget_trait! { pub trait Eventable + 'static>; fn on( self, event: E, f: impl for<'a> WidgetEventFn::Data<'a>, WL::Widget>, ) -> impl WidgetIdFn { move |state| { let id = self.add(state); state.register_event(id, event.into_event(), move |ctx| { f(&mut EventIdCtx { widget: id, state: ctx.state, data: ctx.data, }); }); id } } } }