UltimateZoneBuilder/Source/Core/GZBuilder/Controls/PairedIntControl.cs
MaxED bafb8ed511 UDMF: sidedef flags are now defined in game configuration instead of being hardcoded.
Texture scale controls now have "Link" button. 
Thing, Sector (UDMF) and Linedef edit forms now work in realtime mode.
Some more fixes in Edit form realtime update stuff.
Removed some unused variables and functions.
2013-07-19 15:30:58 +00:00

84 lines
2.1 KiB
C#

#region ================== Namespaces
using System;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Map;
#endregion
namespace CodeImp.DoomBuilder.GZBuilder.Controls
{
public partial class PairedIntControl : UserControl
{
#region ================== Events
public event EventHandler OnValuesChanged;
#endregion
#region ================== Variables
private int defaultValue;
private bool blockUpdate;
#endregion
#region ================== Properties
public string Label { get { return label.Text; } set { label.Text = value; } }
public int DefaultValue { get { return defaultValue; } set { defaultValue = value; } }
public int ButtonStep { get { return (int)value1.ButtonStep; } set { value1.ButtonStep = value; value2.ButtonStep = value; } }
#endregion
public PairedIntControl() {
InitializeComponent();
}
public void SetValues(int val1, int val2) {
blockUpdate = true;
if(!string.IsNullOrEmpty(value1.Text) && value1.Text != val1.ToString())
value1.Text = "";
else
value1.Text = val1.ToString();
if(!string.IsNullOrEmpty(value2.Text) && value2.Text != val2.ToString())
value2.Text = "";
else
value2.Text = val2.ToString();
blockUpdate = false;
}
public int GetValue1(int original) {
return value1.GetResult(original);
}
public int GetValue2(int original) {
return value2.GetResult(original);
}
private void checkValues() {
bool changed = (string.IsNullOrEmpty(value1.Text) || string.IsNullOrEmpty(value2.Text));
if(!changed)
changed = (value1.GetResult(defaultValue) != defaultValue || value2.GetResult(defaultValue) != defaultValue);
label.Enabled = changed;
bReset.Visible = changed;
if(!blockUpdate && OnValuesChanged != null) OnValuesChanged(this, EventArgs.Empty);
}
private void bReset_Click(object sender, EventArgs e) {
value1.Text = defaultValue.ToString();
value2.Text = defaultValue.ToString();
checkValues();
}
private void value1_WhenTextChanged(object sender, EventArgs e) {
checkValues();
}
}
}