Пример #1
0
        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;
        }
Пример #2
0
        protected virtual void OnLeave(MouseMoveActionInfo info)
        {
            State = ControlState.Normal;

            if (MouseLeave != null)
            {
                MouseLeave.Invoke(this, info);
            }
        }
Пример #3
0
        protected virtual void OnHover(MouseMoveActionInfo info)
        {
            State = ControlState.Hovered;

            if (MouseOver != null)
            {
                MouseOver.Invoke(this, info);
            }
        }
Пример #4
0
 private void TopPanelMouseOver(object sender, MouseMoveActionInfo info)
 {
     UnFocusHighlightedFrame();
 }
Пример #5
0
 protected override void OnLeave(MouseMoveActionInfo e)
 {
     base.OnLeave(e);
     _drawOverlay = false;
 }
Пример #6
0
 protected override void OnHover(MouseMoveActionInfo e)
 {
     base.OnHover(e);
     _drawOverlay = true;
 }