use crate::core::ObjectId;
use crate::platform::{get_platform, DropEvent, Platform};
pub struct DragDropManager;
impl DragDropManager {
pub fn begin_drag(source_widget_id: ObjectId, mime: impl AsRef<str>, payload: &[u8]) -> bool {
Self::begin_drag_with(get_platform(), source_widget_id, mime.as_ref(), payload)
}
pub fn inject_drop_event(event: DropEvent) -> bool {
Self::inject_drop_event_with(get_platform(), event)
}
pub fn poll_drop_event() -> Option<DropEvent> {
Self::poll_drop_event_with(get_platform())
}
pub(crate) fn begin_drag_with(
platform: &dyn Platform,
source_widget_id: ObjectId,
mime: &str,
payload: &[u8],
) -> bool {
platform.begin_drag(source_widget_id, mime, payload)
}
pub(crate) fn inject_drop_event_with(platform: &dyn Platform, event: DropEvent) -> bool {
platform.inject_drop_event(event)
}
pub(crate) fn poll_drop_event_with(platform: &dyn Platform) -> Option<DropEvent> {
platform.poll_drop_event()
}
}