Ejemplo n.º 1
0
        /// <summary>
        /// Checks if a given <see cref="PopupActivationMode"/> is a match for
        /// an effectively pressed mouse button.
        /// </summary>
        public static bool IsMatch(this MouseEvent me, PopupActivationMode activationMode)
        {
            switch (activationMode)
            {
            case PopupActivationMode.LeftClick:
                return(me == MouseEvent.IconLeftMouseUp);

            case PopupActivationMode.RightClick:
                return(me == MouseEvent.IconRightMouseUp);

            case PopupActivationMode.LeftOrRightClick:
                return(me.Is(MouseEvent.IconLeftMouseUp, MouseEvent.IconRightMouseUp));

            case PopupActivationMode.LeftOrDoubleClick:
                return(me.Is(MouseEvent.IconLeftMouseUp, MouseEvent.IconDoubleClick));

            case PopupActivationMode.DoubleClick:
                return(me.Is(MouseEvent.IconDoubleClick));

            case PopupActivationMode.MiddleClick:
                return(me == MouseEvent.IconMiddleMouseUp);

            case PopupActivationMode.All:
                //return true for everything except mouse movements
                return(me != MouseEvent.MouseMove);

            default:
                throw new ArgumentOutOfRangeException("activationMode");
            }
        }