slint/sixtyfps_runtime/corelib/input.rs
2020-07-13 18:49:06 +02:00

29 lines
744 B
Rust

/*! Module handling mouse events
TODO: Keyboard events
*/
use crate::abi::datastructures::MouseEvent;
use crate::ComponentRefPin;
use euclid::default::Vector2D;
pub fn process_mouse_event(component: ComponentRefPin, event: MouseEvent) {
let offset = Vector2D::new(0., 0.);
crate::item_tree::visit_items(
component,
|_, item, offset| {
let geom = item.as_ref().geometry();
let geom = geom.translate(*offset);
if geom.contains(event.pos) {
let mut event2 = event.clone();
event2.pos -= geom.origin.to_vector();
item.as_ref().input_event(event2);
}
geom.origin.to_vector()
},
offset,
);
}