public override bool DragAndDrop_HandleDrop(Package p, int x, int y) { Point LocalPos = CanvasPosToLocal(new Point(x, y)); TabButton button = DragAndDrop.SourceControl as TabButton; TabControl tabControl = Parent as TabControl; if (tabControl != null && button != null) { if (button.TabControl != tabControl) { // We've moved tab controls! tabControl.AddPage(button); } } ControlBase droppedOn = GetControlAt(LocalPos.X, LocalPos.Y); if (droppedOn != null && droppedOn != this) { Point dropPos = droppedOn.CanvasPosToLocal(new Point(x, y)); DragAndDrop.SourceControl.BringNextToControl(droppedOn, dropPos.X > droppedOn.ActualWidth / 2); } else { DragAndDrop.SourceControl.BringToFront(); } return(true); }
public override void DragAndDrop_Hover(Package p, int x, int y) { Point localPos = CanvasPosToLocal(new Point(x, y)); ControlBase droppedOn = GetControlAt(localPos.X, localPos.Y); if (droppedOn != null && droppedOn != this) { Point dropPos = droppedOn.CanvasPosToLocal(new Point(x, y)); m_TabDragControl.BringToFront(); int pos = droppedOn.ActualLeft - 1; if (dropPos.X > droppedOn.ActualWidth / 2) { pos += droppedOn.ActualWidth - 1; } Point canvasPos = LocalPosToCanvas(new Point(pos, 0)); m_TabDragControl.MoveTo(canvasPos.X, canvasPos.Y); } else { m_TabDragControl.BringToFront(); } }
public override void DragAndDrop_Hover(Package p, int x, int y) { Point localPos = CanvasPosToLocal(new Point(x, y)); ControlBase droppedOn = GetControlAt(localPos.X, localPos.Y); if (droppedOn != null && droppedOn != this) { Point dropPos = droppedOn.CanvasPosToLocal(new Point(x, y)); tabDragControl.SetBounds(new Rectangle(0, 0, 3, Height)); tabDragControl.BringToFront(); tabDragControl.SetPosition(droppedOn.X - 1, 0); if (dropPos.X > droppedOn.Width / 2) { tabDragControl.MoveBy(droppedOn.Width - 1, 0); } tabDragControl.Dock = Pos.None; } else { tabDragControl.Dock = Pos.Left; tabDragControl.BringToFront(); } }
/// <summary> /// Handler invoked on mouse click (left) event. /// </summary> /// <param name="x">X coordinate.</param> /// <param name="y">Y coordinate.</param> /// <param name="down">If set to <c>true</c> mouse button is down.</param> protected override void onMouseClickedLeft(int x, int y, bool down) { if (null == target) return; if (down) { held = true; holdPos = target.CanvasPosToLocal(new Point(x, y)); InputHandler.MouseFocus = this; } else { held = false; InputHandler.MouseFocus = null; } }
/// <summary> /// Handler invoked on mouse click (left) event. /// </summary> /// <param name="x">X coordinate.</param> /// <param name="y">Y coordinate.</param> /// <param name="down">If set to <c>true</c> mouse button is down.</param> protected override void OnMouseClickedLeft(int x, int y, bool down) { if (null == m_Target) { return; } if (down) { m_Held = true; m_HoldPos = m_Target.CanvasPosToLocal(new Point(x, y)); InputHandler.MouseFocus = this; } else { m_Held = false; InputHandler.MouseFocus = null; } }