use accesskit::NodeId;
use accesskit_winit::ActionRequestEvent;
use dioxus_core::Template;
use torin::prelude::CursorPoint;
use uuid::Uuid;
use winit::window::{CursorIcon, Window};
pub struct TextGroupMeasurement {
pub text_id: Uuid,
pub cursor_id: usize,
pub cursor_position: Option<CursorPoint>,
pub cursor_selection: Option<(CursorPoint, CursorPoint)>,
}
pub enum EventMessage {
UpdateTemplate(Template),
PollVDOM,
RequestRerender,
RemeasureTextGroup(TextGroupMeasurement),
SetCursorIcon(CursorIcon),
ActionRequestEvent(ActionRequestEvent),
FocusAccessibilityNode(NodeId),
QueueFocusAccessibilityNode(NodeId),
FocusNextAccessibilityNode,
FocusPrevAccessibilityNode,
ExitApp,
WithWindow(Box<dyn FnOnce(&Window) + Send + Sync>),
}
impl From<ActionRequestEvent> for EventMessage {
fn from(value: ActionRequestEvent) -> Self {
Self::ActionRequestEvent(value)
}
}