public static void ExDragTo(ExtPoint Pos) { if (DragObject.ActiveDrag || Math.Abs(DragObject.DragStartPos.X - Pos.X) >= MouseDragThreshold || Math.Abs(DragObject.DragStartPos.Y - Pos.Y) >= MouseDragThreshold) { BaseMainWindow mainWnd = DragControl.MainWindow; BaseControl Target = mainWnd.GetSubControl(Pos.X, Pos.Y); DragObject.ActiveDrag = true; if (!Target.Equals(DragObject.DragTarget)) { ExDoDragOver(DRAGSTATE_LEAVE); if (DragObject == null) { return; } DragObject.DragTarget = Target; DragObject.DragPos = Pos; ExDoDragOver(DRAGSTATE_ENTER); if (DragObject == null) { return; } } DragObject.DragPos = Pos; DragObject.Accepted = ExDoDragOver(DRAGSTATE_MOVE); } }
public void EndDrag(bool drop) { if (DragControl.Equals(this)) { ExDragDone(drop); } }
public void ProcessMouseUp(MouseEventArgs eventArgs) { eventArgs.X -= fLeft; eventArgs.Y -= fTop; if (DragObject != null) { ExDragDone(true); } else { BaseControl ctl = GetClientControl(eventArgs.X, eventArgs.Y); BaseControl activeCtl = fActiveControl; if (this is BaseWindow && activeCtl != null && activeCtl is BaseWindow && (((BaseWindow)activeCtl).HasStyle(WindowStyles.wsModal))) { if (activeCtl.Equals(ctl)) { activeCtl.ProcessMouseUp(eventArgs); } } else { if (fActiveControl != null && (fActiveControl.ControlStyle.Contains(ControlStyles.сsCaptureMouse))) { fActiveControl.ProcessMouseUp(eventArgs); } else { if (ctl != null) { ctl.ProcessMouseUp(eventArgs); } else { if (Enabled) { DoMouseUpEvent(eventArgs); } } } } } }
public void ProcessMouseMove(MouseMoveEventArgs eventArgs) { eventArgs = (MouseMoveEventArgs)eventArgs.Clone(); eventArgs.X -= fLeft; eventArgs.Y -= fTop; fMouseX = eventArgs.X; fMouseY = eventArgs.Y; if (DragObject != null) { ExDragTo(new ExtPoint(eventArgs.X, eventArgs.Y)); } else { BaseControl ctl = GetClientControl(eventArgs.X, eventArgs.Y); BaseControl activeCtl = fActiveControl; if (this is BaseWindow && activeCtl != null && activeCtl is BaseWindow && (((BaseWindow)activeCtl).HasStyle(WindowStyles.wsModal))) { if (activeCtl.Equals(ctl)) { activeCtl.ProcessMouseMove(eventArgs); } } else { if (fActiveControl != null) { fActiveControl.ProcessMouseMove(eventArgs); } if (ctl != null) { ctl.ProcessMouseMove(eventArgs); } if (Enabled) { DoMouseMoveEvent(eventArgs); } } } }
public void ProcessMouseDown(MouseEventArgs eventArgs) { eventArgs.X -= fLeft; eventArgs.Y -= fTop; if (DragObject == null) { BaseControl ctl = GetClientControl(eventArgs.X, eventArgs.Y); BaseControl activeCtl = fActiveControl; if (this is BaseWindow && activeCtl != null && activeCtl is BaseWindow && (((BaseWindow)activeCtl).HasStyle(WindowStyles.wsModal))) { if (activeCtl.Equals(ctl)) { activeCtl.ProcessMouseDown(eventArgs); } } else { if (Owner != null && (Owner.ControlStyle.Contains(ControlStyles.сsAcceptsControls))) { Owner.ActiveControl = this; } fActiveControl = null; if (ctl != null) { ctl.ProcessMouseDown(eventArgs); } else { if (Enabled) { DoMouseDownEvent(eventArgs); } if (fDragMode == DRAGMODE_AUTOMATIC) { BeginDrag(false); } } } } }