public DockingHelper(DockBayFloating owner, Form dockOwner) { InitializeComponent(); ShowInTaskbar = false; TransparencyKey = BackColor; owner.FloatFormMove += new FloatFormEventHandler(owner_FloatFormMove); owner.FloatFormEndMove += new FloatFormEventHandler(owner_FloatFormEndMove); _owner = owner; }
public DockFormFloating(DockBay root) { InitializeComponent(); DockBay = new DockBayFloating(this, root); DockBay.PaneRemoved += _bay_PaneRemoved; DockBay.Disposed += DockBay_Disposed; DockBay.Dock = DockStyle.Fill; Controls.Add(DockBay); }
public static DockNeigh InitializeNeigh(DockBayFloating node, DockBay root) { var neigh = new DockBayFloating.DockNeigh(root); neigh.Owner = node; DockBaseNeigh.InitializeOf(neigh, node); DockBayBase.DockNeigh.InitEvent(neigh, node); return neigh; }
void otherForm_FormMoving(object sender, EventArgs e) { var form = (DockFormFloating)sender; var mousePosition = Control.MousePosition; var childAtPoint = GetChildAtPoint(PointToClient(mousePosition)) as DockPaneBase; var flag = Parent.RectangleToScreen(Bounds).Contains(mousePosition); if (TopLevelControl != form) { if (flag) { foreach (DockFormFloating floating2 in ((DockNeigh)Neigh).TopLevelRootBay.FloatFormOrder) { if (floating2.Bounds.Contains(mousePosition) && (floating2 != form)) { if (floating2.DockBay != this) { flag = false; } break; } } } if (flag) { OnFloatFormMove(new FloatFormEventArgs(form, childAtPoint)); if ((childAtPoint != _pane) || (flag != _isFloatFormOver)) { OnFloatFormOver(new FloatFormEventArgs(form, childAtPoint)); OnFloatFormEnter(new FloatFormEventArgs(form, childAtPoint)); } _pane = childAtPoint; } else if (!flag && (flag != _isFloatFormOver)) { OnFloatFormOver(new FloatFormEventArgs(form, childAtPoint)); OnFloatFormLeave(new FloatFormEventArgs(form, childAtPoint)); _pane = null; } _dragBay = form.DockBay; } _isFloatFormOver = flag; }
void floatForm_FormMoving(object sender, EventArgs e) { var form = (DockFormFloating)sender; var mousePosition = Control.MousePosition; var childAtPoint = GetChildAtPoint(PointToClient(mousePosition)) as DockPaneBase; var flag = Parent.RectangleToScreen(Bounds).Contains(mousePosition); if (flag) { foreach (var floatBay in FloatFormOrder) if ((floatBay != form) && floatBay.Bounds.Contains(mousePosition)) { flag = false; childAtPoint = null; } } if (flag) { OnFloatFormMove(new FloatFormEventArgs(form, childAtPoint)); if ((childAtPoint != _pane) || (flag != _isFloatFormOver)) { OnFloatFormOver(new FloatFormEventArgs(form, childAtPoint)); OnFloatFormEnter(new FloatFormEventArgs(form, childAtPoint)); } _pane = childAtPoint; } else if (!flag && (flag != _isFloatFormOver)) { OnFloatFormOver(new FloatFormEventArgs(form, childAtPoint)); OnFloatFormLeave(new FloatFormEventArgs(form, childAtPoint)); } _dragBay = form.DockBay; _isFloatFormOver = flag; }