/// <summary> /// Checks if at least one mouse button is pressed. /// </summary> private bool IsAnyMouseButtonPressed() { if (RTInput.IsLeftMouseButtonPressed()) { return(true); } if (RTInput.IsRightMouseButtonPressed()) { return(true); } if (RTInput.IsMiddleMouseButtonPressed()) { return(true); } return(false); }
public bool IsActive(bool checkForOverlaps = true) { if (!IsEnabled || IsEmpty()) { return(false); } if (Key != KeyCode.None && !RTInput.IsKeyPressed(Key)) { return(false); } // If strict modifier check is used but at least one modifier key is pressed, // it means the key is not active and we return false. if (UseStrictModifierCheck && HasNoModifiers() && IsAnyModifierKeyPressed()) { return(false); } // Check if the corresponding modifier keys are pressed if (_lCtrl && !RTInput.IsKeyPressed(KeyCode.LeftControl)) { return(false); } if (_lCmd && !RTInput.IsKeyPressed(KeyCode.LeftCommand)) { return(false); } if (_lAlt && !RTInput.IsKeyPressed(KeyCode.LeftAlt)) { return(false); } if (_lShift && !RTInput.IsKeyPressed(KeyCode.LeftShift)) { return(false); } // Perform the mouse button strict check in the same way we did for the modifier keys if (UseStrictMouseCheck && HasNoMouseButtons() && IsAnyMouseButtonPressed()) { return(false); } // Check if the corresponding mouse buttons are pressed if (_lMouseBtn && !RTInput.IsLeftMouseButtonPressed()) { return(false); } if (_rMouseBtn && !RTInput.IsRightMouseButtonPressed()) { return(false); } if (_mMouseBtn && !RTInput.IsMiddleMouseButtonPressed()) { return(false); } if (checkForOverlaps) { foreach (var potentialOverlap in _potentialOverlaps) { if (potentialOverlap.IsActive(false) && IsOverlappedBy(potentialOverlap)) { return(false); } } } return(true); }