void newt_DragOver(object sender, DragEventArgs e) {
e.Handled = true;
var tabItemSource = e.Data.GetData(typeof(Wpf.Controls.TabItem)) as Wpf.Controls.TabItem;
if ((sender as Wpf.Controls.TabItem).ShellObject.IsFileSystem)
e.Effects = (e.KeyStates & DragDropKeyStates.ControlKey) == DragDropKeyStates.ControlKey ? DragDropEffects.Copy : DragDropEffects.Move;
else if (tabItemSource != null)
e.Effects = DragDropEffects.Move;
else
e.Effects = DragDropEffects.None;
var desc = new BExplorer.Shell.DataObject.DropDescription();
switch (e.Effects) {
case DragDropEffects.Copy:
desc.type = (int)BExplorer.Shell.DataObject.DropImageType.Copy;
desc.szMessage = "Copy To %1";
break;
case DragDropEffects.Move:
desc.type = (int)BExplorer.Shell.DataObject.DropImageType.Move;
desc.szMessage = "Move To %1";
break;
case DragDropEffects.None:
desc.type = (int)BExplorer.Shell.DataObject.DropImageType.None;
desc.szMessage = "Cant drop here!";
break;
default:
desc.type = (int)BExplorer.Shell.DataObject.DropImageType.Invalid;
desc.szMessage = "";
break;
}
desc.szInsert = (sender as Wpf.Controls.TabItem).ShellObject.DisplayName;
((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data).SetDropDescription(desc);
var ptw = new BExplorer.Shell.DataObject.Win32Point();
GetCursorPos(ref ptw);
if (e.Data.GetType() != typeof(Wpf.Controls.TabItem)) {
var wpt = new BExplorer.Shell.DataObject.Win32Point() { X = ptw.X, Y = ptw.Y };
DropTarget.Create.DragOver(ref wpt, (int)e.Effects);
}
}
System.Runtime.InteropServices.ComTypes.IDataObject _TabDropData;