freya_core/
event_loop_messages.rsuse cursor_icon::CursorIcon;
use torin::prelude::{
Area,
CursorPoint,
};
#[cfg(feature = "winit")]
use winit::window::Window;
use winit::window::WindowId;
#[cfg(feature = "winit")]
use crate::window_config;
use crate::{
accessibility::AccessibilityFocusStrategy,
events::PlatformEvent,
};
pub struct TextGroupMeasurement {
pub text_id: usize,
pub cursor_id: usize,
pub cursor_position: Option<CursorPoint>,
pub cursor_selection: Option<(CursorPoint, CursorPoint)>,
}
pub enum EventLoopMessageAction {
PollVDOM,
RequestRerender,
RequestFullRerender,
InvalidateArea(Area),
RemeasureTextGroup(TextGroupMeasurement),
SetCursorIcon(CursorIcon),
FocusAccessibilityNode(AccessibilityFocusStrategy),
CloseWindow,
PlatformEvent(PlatformEvent),
#[cfg(feature = "winit")]
Accessibility(accesskit_winit::WindowEvent),
#[cfg(feature = "winit")]
WithWindow(Box<dyn FnOnce(&Window) + Send + Sync>),
#[cfg(feature = "winit")]
NewWindow(window_config::WindowConfig),
}
pub struct EventLoopMessage {
pub window_id: Option<WindowId>,
pub action: EventLoopMessageAction,
}