use std::{any::Any, path::PathBuf, rc::Rc};
pub type DragPayload = Rc<dyn Any>;
#[derive(Clone, Debug)]
pub struct DragStart {
pub source_id: u64,
pub position: crate::Vec2,
pub modifiers: crate::Modifiers,
}
#[derive(Clone, Debug)]
pub struct DragOver {
pub source_id: u64,
pub target_id: u64,
pub position: crate::Vec2,
pub modifiers: crate::Modifiers,
pub payload: DragPayload,
}
#[derive(Clone, Debug)]
pub struct DropEvent {
pub source_id: u64,
pub target_id: u64,
pub position: crate::Vec2,
pub modifiers: crate::Modifiers,
pub payload: DragPayload,
}
#[derive(Clone, Copy, Debug)]
pub struct DragEnd {
pub accepted: bool,
}
#[derive(Clone, Debug)]
pub struct DroppedFile {
pub name: String,
pub path: Option<PathBuf>,
}
#[derive(Clone, Debug)]
pub struct DroppedFiles {
pub files: Vec<DroppedFile>,
}