freya_core/
event_loop_messages.rs1use torin::prelude::{
2 Area,
3 CursorPoint,
4};
5use uuid::Uuid;
6use winit::window::{
7 CursorIcon,
8 Window,
9};
10
11use crate::{
12 accessibility::AccessibilityFocusStrategy,
13 events::PlatformEvent,
14};
15
16pub struct TextGroupMeasurement {
17 pub text_id: Uuid,
18 pub cursor_id: usize,
19 pub cursor_position: Option<CursorPoint>,
20 pub cursor_selection: Option<(CursorPoint, CursorPoint)>,
21}
22
23pub enum EventLoopMessage {
25 PollVDOM,
27 RequestRerender,
29 RequestFullRerender,
31 InvalidateArea(Area),
33 RemeasureTextGroup(TextGroupMeasurement),
35 SetCursorIcon(CursorIcon),
37 Accessibility(accesskit_winit::WindowEvent),
39 FocusAccessibilityNode(AccessibilityFocusStrategy),
41 ExitApp,
43 WithWindow(Box<dyn FnOnce(&Window) + Send + Sync>),
45 PlatformEvent(PlatformEvent),
47}
48
49impl From<accesskit_winit::Event> for EventLoopMessage {
50 fn from(value: accesskit_winit::Event) -> Self {
51 Self::Accessibility(value.window_event)
52 }
53}