ZoneBuilder/Source/Core/Config/EnumItem.cs

85 lines
1.7 KiB
C#

#region ================== Copyright (c) 2007 Pascal vd Heiden
/*
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
* This program is released under GNU General Public License
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#endregion
#region ================== Namespaces
using System;
using System.Globalization;
#endregion
namespace CodeImp.DoomBuilder.Config
{
public class EnumItem : IComparable<EnumItem>
{
#region ================== Constants
#endregion
#region ================== Variables
private readonly string value;
private readonly string title;
#endregion
#region ================== Properties
public string Value { get { return value; } }
public string Title { get { return title; } }
#endregion
#region ================== Constructor
// Constructor
public EnumItem(string value, string title)
{
// Initialize
this.value = value;
this.title = title;
}
#endregion
#region ================== Methods
// String representation
public override string ToString()
{
return title;
}
//mxd. This compares against another activate info
public int CompareTo(EnumItem other)
{
int thisval = GetIntValue();
int otherval = other.GetIntValue();
if(thisval < otherval) return -1;
if(thisval > otherval) return 1;
return 0;
}
// This returns the value as int
public int GetIntValue()
{
int result;
return int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out result) ? result : 0;
}
#endregion
}
}