private Boolean NeedReturn(KeyboardKeys key) { var lastInput = _inputList.LastOrDefault(); if (this.KeyboardType == KeyboardTypes.Number) { return(key == KeyboardKeys.O_Substract && lastInput != null); } if ((lastInput == null || lastInput.IsFunction || lastInput.IsLeftBracket) && ((KeyboardHelper.IsOperatorKey(key) && key != KeyboardKeys.O_Substract) || KeyboardHelper.IsConfirmKey(key) || KeyboardHelper.IsRightBracketKey(key) || KeyboardHelper.IsUnitConverterKey(key))) { return(true); } if (lastInput != null) { // last minus? × : Overwrite if (KeyboardHelper.IsOperatorKey(key) && IsLastInputAMinusSign(lastInput)) // return if last input is a minus sign { return(true); } if (lastInput.IsOperator && (KeyboardHelper.IsConfirmKey(key) || KeyboardHelper.IsRightBracketKey(key) || KeyboardHelper.IsUnitConverterKey(key))) { return(true); } if (lastInput.IsUnitConverter && (KeyboardHelper.IsRightBracketKey(key) || KeyboardHelper.IsUnitConverterKey(key))) { return(true); } // already have? × : √ if ((lastInput.IsPoint || GetLastNumericText(this.InputValue).Contains(".")) && KeyboardHelper.IsPointKey(key)) { return(true); } // completed? × : √ if ((lastInput.IsDigit || lastInput.IsPoint || lastInput.IsRightBracket || lastInput.IsPI) && KeyboardHelper.IsRightBracketKey(key)) { var leftBracketCount = Helpers.GetCount(this.InputValue, @"[([{]"); var rightBracketCount = Helpers.GetCount(this.InputValue, @"[)\]}]"); if (leftBracketCount <= rightBracketCount) { return(true); } } } return(false); }
private Boolean NeedAddRightBrackets(KeyboardKeys key) { var lastInput = _inputList.LastOrDefault(); return(lastInput != null && (lastInput.IsDigit || lastInput.IsPoint || lastInput.IsRightBracket || lastInput.IsPI) && (KeyboardHelper.IsConfirmKey(key) || KeyboardHelper.IsUnitConverterKey(key))); }