1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
use std::{cell::RefCell, rc::Rc}; use crate::{ControlEvent, ControlObject}; pub trait EventContext { fn get_hovered_control(&self) -> Option<Rc<RefCell<dyn ControlObject>>>; fn set_hovered_control(&mut self,control: Option<Rc<RefCell<dyn ControlObject>>>); fn get_captured_control(&self) -> Option<Rc<RefCell<dyn ControlObject>>>; fn set_captured_control(&mut self, control: Option<Rc<RefCell<dyn ControlObject>>>); fn get_focused_control(&self) -> Option<Rc<RefCell<dyn ControlObject>>>; fn set_focused_control(&mut self, control: Option<Rc<RefCell<dyn ControlObject>>>); fn queue_event(&mut self, control: Option<Rc<RefCell<dyn ControlObject>>>, event: ControlEvent); }