use crate::*;
impl NativeEventHandler {
pub fn new<F>(event_name: NativeEventName, callback: F) -> Self
where
F: FnMut(NativeEvent) + 'static,
{
NativeEventHandler {
event_name: event_name.as_str().into_owned(),
callback: Rc::new(RefCell::new(callback)),
}
}
pub fn handle(&self, event: NativeEvent) {
let mut cb: RefMut<dyn FnMut(NativeEvent)> = self.get_callback().borrow_mut();
cb(event);
}
}
impl Clone for NativeEventHandler {
fn clone(&self) -> Self {
NativeEventHandler {
event_name: self.get_event_name().clone(),
callback: Rc::clone(self.get_callback()),
}
}
}