/// <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"); } }