/// <summary> /// Mouse moved handler. /// </summary> /// <param name="canvas">Canvas.</param> /// <param name="x"></param> /// <param name="y"></param> /// <param name="dx"></param> /// <param name="dy"></param> /// <returns>True if handled.</returns> public static bool OnMouseMoved(ControlBase canvas, int x, int y, int dx, int dy) { // Send input to canvas for study MousePosition.X = x; MousePosition.Y = y; UpdateHoveredControl(canvas); if (InputHandler.HoveredControl == null) { return(false); } if (InputHandler.HoveredControl == canvas) { return(false); } if (InputHandler.HoveredControl.GetCanvas() != canvas) { return(false); } InputHandler.HoveredControl.InputMouseMoved(x, y, dx, dy); InputHandler.HoveredControl.UpdateCursor(); DragAndDrop.OnMouseMoved(InputHandler.HoveredControl, x, y); return(true); }
/// <summary> /// Handles mouse movement events. Called from Input subsystems. /// </summary> /// <returns>True if handled.</returns> public bool Input_MouseMoved(int x, int y, int dx, int dy) { if (IsHidden) { return(false); } x = (int)Math.Round(x / Scale); y = (int)Math.Round(y / Scale); dx = (int)Math.Round(dx / Scale); dy = (int)Math.Round(dy / Scale); InputHandler.OnMouseMoved(this, x, y, dx, dy); if (InputHandler.HoveredControl == null) { return(InputHandler.MouseCaptured); } if (InputHandler.HoveredControl == this) { return(false); } if (InputHandler.HoveredControl.GetCanvas() != this) { return(false); } InputHandler.HoveredControl.InputMouseMoved(x, y, dx, dy); InputHandler.HoveredControl.UpdateCursor(); DragAndDrop.OnMouseMoved(InputHandler.HoveredControl, x, y); return(true); }
/// <summary> /// Handles mouse movement events. Called from Input subsystems. /// </summary> /// <returns>True if handled.</returns> public bool Input_MouseMoved(int x, int y, int dx, int dy) { if (IsHidden) { return(false); } // Todo: Handle scaling here.. //float fScale = 1.0f / Scale(); InputHandler.OnMouseMoved(this, x, y, dx, dy); if (InputHandler.HoveredControl == null) { return(false); } if (InputHandler.HoveredControl == this) { return(false); } if (InputHandler.HoveredControl.GetCanvas() != this) { return(false); } InputHandler.HoveredControl.InputMouseMoved(x, y, dx, dy); InputHandler.HoveredControl.UpdateCursor(); DragAndDrop.OnMouseMoved(InputHandler.HoveredControl, x, y); return(true); }
/// <summary> /// Handles mouse movement events. Called from Input subsystems. /// </summary> /// <returns>True if handled.</returns> public bool Input_MouseMoved(int x, int y, int dx, int dy) { if (IsHidden) { return(false); } float inverseScale = 1.0f / Scale; x = Util.Round(x * inverseScale); y = Util.Round(y * inverseScale); dx = Util.Round(dx * inverseScale); dy = Util.Round(dy * inverseScale); InputHandler.OnMouseMoved(this, x, y, dx, dy); if (InputHandler.HoveredControl == null) { return(false); } if (InputHandler.HoveredControl == this) { return(false); } if (InputHandler.HoveredControl.GetCanvas() != this) { return(false); } InputHandler.HoveredControl.InputMouseMoved(x, y, dx, dy); InputHandler.HoveredControl.UpdateCursor(); DragAndDrop.OnMouseMoved(InputHandler.HoveredControl, x, y); return(true); }