namespace System.Windows.Controls.WpfPropertyGrid.Internal
{
///
/// Helper class that contains methods that execute mathematical operations
///
internal static class MathUtil
{
///
/// Validates the string passed by parsing it as int and checking if it is inside the bounds specified
/// then the resulting int will be incremented/decremented
///
/// The string to parse as int and increment/decrement
/// The min value for the bound checking
/// The max value for the bounds checking
/// Pass true to increment and false to decrement
/// Returns the new number incremented or decremeneted
public static int IncrementDecrementNumber(string num, int minValue, int maxVal, bool increment)
{
int newNum = ValidateNumber(num, minValue, maxVal);
newNum = increment ? Math.Min(newNum + 1, maxVal) : Math.Max(newNum - 1, 0);
return newNum;
}
///
/// Parses the number and makes sure that it is within the bounds specified
///
/// The string to parse and validate
/// The min value for the bound checking
/// The max value for the bound checking
/// Returns the int that was constructed from the string + bound checking
public static int ValidateNumber(string newNum, int minValue, int maxValue)
{
int num;
if (!int.TryParse(newNum, out num))
return 0;
return ValidateNumber(num, minValue, maxValue);
}
///
/// makes sure that the number is within the bounds specified
///
/// The number to validate
/// The min value for the bound checking
/// The max value for the bound checking
/// Returns the int that was constructed from the string + bound checking
public static int ValidateNumber(int newNum, int minValue, int maxValue)
{
newNum = Math.Max(newNum, minValue);
newNum = Math.Min(newNum, maxValue);
return newNum;
}
}
}