using System;
namespace DesktopMagic.Api.Settings;
///
/// Represents a up-down control.
///
public class IntegerUpDown : Setting
{
private int _value;
///
/// Gets or sets the maximum value for the element.
///
public int Maximum { get; }
///
/// Gets or sets the minimum value for the element.
///
public int Minimum { get; }
///
/// Gets or sets the value assigned to the element.
///
public int Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
ValueChanged();
}
}
}
///
/// Initializes a new instance of the class with the provided value, value and .
///
/// The maximum value for the element.
/// The minimum value for the element.
/// The value assigned to the element.
///
public IntegerUpDown(int min, int max, int value = 0)
{
if (min > max)
{
throw new ArgumentException($"{nameof(min)} is greater than or equal to {nameof(max)}!");
}
if (value > max)
{
throw new ArgumentException($"{nameof(value)} is greater than {nameof(max)}!");
}
if (value < min)
{
throw new ArgumentException($"{nameof(value)} is less than {nameof(min)}!");
}
Minimum = min;
Maximum = max;
Value = value;
}
internal override string GetJsonValue()
{
return Value.ToString();
}
internal override void SetJsonValue(string value)
{
_ = int.TryParse(value, out int result);
Value = result;
}
}