private void ProcessMouseMove(MouseMoveActionInfo info) { for (int i = _allControlsFromControlTree.Count - 1; i >= 0; i--) { Control control = _allControlsFromControlTree[i]; if (!control.Visible) { continue; } if (CheckMouseOver(control, new Vector2(info.Location))) { if (!control.State.Equals(Control.ControlState.Hovered)) { if (control.Children.Count > 0 && _focusedControl != null) { continue; } if (_focusedControl != null) { _focusedControl.SendMessage(ControlMessage.Out, info); _focusedControl = null; } _focusedControl = control; control.SendMessage(ControlMessage.Over, info); } } else { if (control.State.Equals(Control.ControlState.Hovered)) { if (_focusedControl != null) { _focusedControl.SendMessage(ControlMessage.Out, info); _focusedControl = null; } } } } bool isOver = false; foreach (Control rootControl in _rootControls) { if (CheckMouseOver(rootControl, new Vector2(info.Location))) { isOver = true; } } MouseIsOverGUI = isOver; }
protected virtual void OnLeave(MouseMoveActionInfo info) { State = ControlState.Normal; if (MouseLeave != null) { MouseLeave.Invoke(this, info); } }
protected virtual void OnHover(MouseMoveActionInfo info) { State = ControlState.Hovered; if (MouseOver != null) { MouseOver.Invoke(this, info); } }
private void TopPanelMouseOver(object sender, MouseMoveActionInfo info) { UnFocusHighlightedFrame(); }
protected override void OnLeave(MouseMoveActionInfo e) { base.OnLeave(e); _drawOverlay = false; }
protected override void OnHover(MouseMoveActionInfo e) { base.OnHover(e); _drawOverlay = true; }