Flood.GUI.Controls.DockBase.DragAndDrop_HandleDrop C# (CSharp) Method

DragAndDrop_HandleDrop() public method

public DragAndDrop_HandleDrop ( DragDrop p, int x, int y ) : bool
p DragDrop
x int
y int
return bool
        public override bool DragAndDrop_HandleDrop(DragDrop.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;
        }