mod dropsource;
mod droptarget;
pub use dropsource::DropSource;
pub use droptarget::{FileDropTarget, TextDropTarget};
pub use crate::data_object::{BitmapDataObject, DataObject, FileDataObject, TextDataObject};
use std::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(i32)]
pub enum DragResult {
None = 0,
Copy = 1,
Move = 2,
Link = 3,
Cancel = 4,
Error = 5,
}
impl From<wxdragon_sys::wxd_DragResult> for DragResult {
fn from(value: wxdragon_sys::wxd_DragResult) -> Self {
match value {
wxdragon_sys::wxd_DragResult_WXD_DRAG_NONE => DragResult::None,
wxdragon_sys::wxd_DragResult_WXD_DRAG_COPY => DragResult::Copy,
wxdragon_sys::wxd_DragResult_WXD_DRAG_MOVE => DragResult::Move,
wxdragon_sys::wxd_DragResult_WXD_DRAG_LINK => DragResult::Link,
wxdragon_sys::wxd_DragResult_WXD_DRAG_CANCEL => DragResult::Cancel,
_ => DragResult::Error,
}
}
}
impl From<DragResult> for wxdragon_sys::wxd_DragResult {
fn from(val: DragResult) -> Self {
match val {
DragResult::None => wxdragon_sys::wxd_DragResult_WXD_DRAG_NONE,
DragResult::Copy => wxdragon_sys::wxd_DragResult_WXD_DRAG_COPY,
DragResult::Move => wxdragon_sys::wxd_DragResult_WXD_DRAG_MOVE,
DragResult::Link => wxdragon_sys::wxd_DragResult_WXD_DRAG_LINK,
DragResult::Cancel => wxdragon_sys::wxd_DragResult_WXD_DRAG_CANCEL,
DragResult::Error => wxdragon_sys::wxd_DragResult_WXD_DRAG_ERROR,
}
}
}
impl fmt::Display for DragResult {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DragResult::None => write!(f, "None"),
DragResult::Copy => write!(f, "Copy"),
DragResult::Move => write!(f, "Move"),
DragResult::Link => write!(f, "Link"),
DragResult::Cancel => write!(f, "Cancel"),
DragResult::Error => write!(f, "Error"),
}
}
}