Worms4Editor/W4Gui/Components/FloatUpDown.cs

64 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Media;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace W4Gui.Components
{
public class FloatUpDown : GenericUpDown<float>
{
internal override string allowedChars
{
get
{
return "+-.infa";
}
}
internal override string formatText(float val)
{
string fstr = "";
if (float.IsNaN(Value))
{
fstr = "NaN";
}
else if (float.IsNegativeInfinity(Value))
{
fstr = "-Inf";
}
else if (float.IsPositiveInfinity(Value))
{
fstr = "+Inf";
}
else
{
fstr = Convert.ToDouble(Value).ToString("G9", CultureInfo.InvariantCulture);
if (!fstr.Contains("."))
fstr += ".0";
}
return fstr;
}
internal override float parseValue(string val)
{
float fval = 0.0f;
if (val.Equals("NaN", StringComparison.InvariantCultureIgnoreCase))
fval = float.NaN;
else if (val.Equals("Inf", StringComparison.InvariantCultureIgnoreCase))
fval = float.PositiveInfinity;
else if (val.Equals("+Inf", StringComparison.InvariantCultureIgnoreCase))
fval = float.PositiveInfinity;
else if (val.Equals("-Inf", StringComparison.InvariantCultureIgnoreCase))
fval = float.NegativeInfinity;
else
float.TryParse(val, out fval);
return fval;
}
}
}