using System;
using System.Collections.Generic;
using System.Text;
using Common.UI;
using System.Windows.Forms;
using System.IO;
namespace DiagramUI
{
class DragDropStream
{
#region Fields
string name;
PanelDesktop desktop;
#endregion
#region Ctor
internal DragDropStream(string name, PanelDesktop desktop)
{
this.name = name;
desktop.DragEnter += dragEnter;
desktop.DragDrop += dragDrop;
this.desktop = desktop;
}
#endregion
#region Members
private void dragEnter(object sender, DragEventArgs e)
{
string[] s = e.Data.GetFormats();
if (s == null)
{
return;
}
if (s.Length != 1)
{
return;
}
if (s[0].Equals(name))
{
e.Effect = DragDropEffects.Copy;
}
}
private void dragDrop(object sender, DragEventArgs e)
{
string[] s = e.Data.GetFormats();
if (s == null)
{
return;
}
if (s.Length != 1)
{
return;
}
if (s[0].Equals(name))
{
object o = e.Data.GetData(s[0]);
IStreamCreator cr = o as IStreamCreator;
Stream stream = cr.Stream;
desktop.LoadFromStream(stream, PureDesktopPeer.Binders, desktop.Extention, desktop.Extention);
}
}
#endregion
}
}