/// <summary> /// Base method propagates messages to children controls and managers. Override to /// add custom handling. /// </summary> protected internal override void OnMouseMoved(MouseData mouseData) { base.OnMouseMoved(mouseData); foreach (Manager m in managerList) { m.OnMouseMoved(mouseData); } Control checkUnderMouse = GetTopControlAt(mouseData.Position); if (checkUnderMouse != CurrentUnderMouse) { // check for Leave and Enter actions if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentUnderMouse.OnMouseLeave(); } if (checkUnderMouse != null && checkUnderMouse.IsActive) { checkUnderMouse.OnMouseEnter(); } CurrentUnderMouse = checkUnderMouse; } if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentUnderMouse.OnMouseMoved(mouseData); } }
/// <summary> /// Base method propagates messages to children controls and managers. Override to /// add custom handling. /// </summary> protected internal override void OnMouseHoverBegin(MouseData mouseData) { base.OnMouseHoverBegin(mouseData); foreach (Manager m in managerList) { m.OnMouseHoverBegin(mouseData); } if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentUnderMouse.OnMouseHoverBegin(mouseData); } }
/// <summary> /// Base method propagates messages to children controls and managers. Override to /// add custom handling. /// </summary> protected internal override void OnMouseDragEnd(Point sPos) { base.OnMouseDragEnd(sPos); foreach (Manager m in managerList) { m.OnMouseDragEnd(sPos); } if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentDragging = null; CurrentUnderMouse.OnMouseDragEnd(sPos); } }
/// <summary> /// Base method propagates messages to children controls and managers. Override to /// add custom handling. /// </summary> protected internal override void OnMouseButtonUp(MouseData mouseData) { base.OnMouseButtonUp(mouseData); foreach (Manager m in managerList) { m.OnMouseButtonUp(mouseData); } if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentUnderMouse.OnMouseButtonUp(mouseData); } LastLBDown = null; }
/// <summary> /// Base method propagates messages to children controls and managers. Override to /// add custom handling. /// </summary> protected internal override void OnMouseHoverEnd(MouseData mouseData) { if (CurrentTooltip != null) { CurrentTooltip.Dispose(); CurrentTooltip = null; } base.OnMouseHoverEnd(mouseData); foreach (Manager m in managerList) { m.OnMouseHoverEnd(mouseData); } if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentUnderMouse.OnMouseHoverEnd(mouseData); } }
/// <summary> /// Base method propagates messages to children controls and managers. Override to /// add custom handling. /// </summary> protected internal override void OnMouseButtonDown(MouseData mouseData) { base.OnMouseButtonDown(mouseData); foreach (Manager m in managerList) { m.OnMouseButtonDown(mouseData); } // If applicable, forward MouseDown and Select to child control if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive) { CurrentUnderMouse.OnMouseButtonDown(mouseData); LastLBDown = CurrentUnderMouse; } // Check to see if a control looses KBFocus if user hit any mouse button outside current focused control if (CurrentKeyboardFocus != null) { if (CurrentKeyboardFocus != CurrentUnderMouse) { CurrentKeyboardFocus.OnReleaseKeyboardFocus(); CurrentKeyboardFocus = null; } } // Give KBFocus to child on left button down, if applicable if (CurrentUnderMouse != null && CurrentUnderMouse.CanHaveKeyboardFocus && CurrentUnderMouse.HasKeyboardFocus == false && mouseData.MouseButton == MouseButton.LeftButton && CurrentUnderMouse.IsActive) { CurrentKeyboardFocus = CurrentUnderMouse; CurrentKeyboardFocus.OnTakeKeyboardFocus(); } }