use crate::core::ObjectId;
#[cfg(not(feature = "mini"))]
use crate::platform::get_platform;
use crate::platform::{DropEvent, Platform};
pub struct DragDropManager;
impl DragDropManager {
#[cfg(not(feature = "mini"))]
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)
}
#[cfg(feature = "mini")]
pub fn begin_drag(
_source_widget_id: ObjectId,
_mime: impl AsRef<str>,
_payload: &[u8],
) -> bool {
false
}
#[cfg(not(feature = "mini"))]
pub fn inject_drop_event(event: DropEvent) -> bool {
Self::inject_drop_event_with(get_platform(), event)
}
#[cfg(feature = "mini")]
pub fn inject_drop_event(_event: DropEvent) -> bool {
false
}
#[cfg(not(feature = "mini"))]
pub fn poll_drop_event() -> Option<DropEvent> {
Self::poll_drop_event_with(get_platform())
}
#[cfg(feature = "mini")]
pub fn poll_drop_event() -> Option<DropEvent> {
None
}
#[cfg_attr(feature = "mini", allow(dead_code))]
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)
}
#[cfg_attr(feature = "mini", allow(dead_code))]
pub(crate) fn inject_drop_event_with(platform: &dyn Platform, event: DropEvent) -> bool {
platform.inject_drop_event(event)
}
#[cfg_attr(feature = "mini", allow(dead_code))]
pub(crate) fn poll_drop_event_with(platform: &dyn Platform) -> Option<DropEvent> {
platform.poll_drop_event()
}
}