public override bool DragAndDrop_HandleDrop(Package p, int x, int y)
{
Vector2i pos = CanvasPosToLocal(new Vector2i(x, y));
Pos dir = GetDroppedTabDirection(pos.X, pos.Y);
DockedTabControl addTo = m_DockedTabControl;
if (dir == Pos.Fill && addTo == null)
{
return(false);
}
if (dir != Pos.Fill)
{
DockBase dock = GetChildDock(dir);
addTo = dock.m_DockedTabControl;
if (!m_DropFar)
{
dock.BringToFront();
}
else
{
dock.SendToBack();
}
}
if (p.Name == "TabButtonMove")
{
TabButton tabButton = DragAndDrop.SourceControl as TabButton;
if (null == tabButton)
{
return(false);
}
addTo.AddPage(tabButton);
}
if (p.Name == "TabWindowMove")
{
DockedTabControl tabControl = DragAndDrop.SourceControl as DockedTabControl;
if (null == tabControl)
{
return(false);
}
if (tabControl == addTo)
{
return(false);
}
tabControl.MoveTabsTo(addTo);
}
Invalidate();
return(true);
}