Beispiel #1
0
        internal void Acknowledge(MouseController.RequestType Request, Vector2f Position, bool Primary = true)
        {
            if (_Enabled)
            {
                if (_Links != null)
                {
                    foreach (Interactive Link in _Links)
                    {
                        Link.Acknowledge(Request, Position, false);
                    }
                }
                if (_Parent != null)
                {
                    _Parent.Acknowledge(Request, Position, false);
                }
                switch (Request)
                {
                case MouseController.RequestType.Focus:
                    if (!_Right)
                    {
                        if (OnClick != null)
                        {
                            OnClick(this, new MouseEventArgs(Position));
                        }
                    }
                    else
                    {
                        if (OnRightClick != null)
                        {
                            OnRightClick(this, new MouseEventArgs(Position));
                        }
                    }
                    break;

                case MouseController.RequestType.Leave:
                    if (Primary && OnLeave != null)
                    {
                        OnLeave(this, new MouseEventArgs(Position));
                    }
                    break;

                case MouseController.RequestType.MouseOut:
                    if (Primary && OnMouseOut != null)
                    {
                        OnMouseOut(this, new MouseEventArgs(Position));
                    }
                    if (Primary)
                    {
                        _HoverAck = false;
                    }
                    break;

                case MouseController.RequestType.MouseOver:
                    if ((Primary || !_HoverAck) && OnMouseOver != null)
                    {
                        OnMouseOver(this, new MouseEventArgs(Position));
                    }
                    _HoverAck = true;
                    break;
                }
            }
        }