rawaccel/grapher/Models/Options/OffsetOptions.cs
2021-04-04 23:14:39 -07:00

163 lines
3.9 KiB
C#

using System;
using System.Windows.Forms;
namespace grapher.Models.Options
{
public class OffsetOptions : OptionBase
{
public OffsetOptions(
ToolStripMenuItem velocityGainOffsetCheck,
ToolStripMenuItem legacyOffsetCheck,
Option offsetOption)
{
VelocityGainOffsetCheck = velocityGainOffsetCheck;
LegacyOffsetCheck = legacyOffsetCheck;
OffsetOption = offsetOption;
VelocityGainOffsetCheck.Click += new System.EventHandler(OnVelocityGainOffsetClick);
LegacyOffsetCheck.Click += new System.EventHandler(OnLegacyOffsetClick);
VelocityGainOffsetCheck.CheckedChanged += new System.EventHandler(OnVelocityGainOffsetCheckedChange);
LegacyOffsetCheck.CheckedChanged += new System.EventHandler(OnLegacyOffsetCheckedChange);
VelocityGainOffsetCheck.Checked = true;
}
public ToolStripMenuItem VelocityGainOffsetCheck { get; }
public ToolStripMenuItem LegacyOffsetCheck { get; }
public Option OffsetOption { get; }
public bool IsLegacy { get; private set; }
public double Offset
{
get
{
return OffsetOption.Field.Data;
}
}
public override int Top
{
get
{
return OffsetOption.Top;
}
set
{
OffsetOption.Top = value;
}
}
public override int Height
{
get
{
return OffsetOption.Height;
}
}
public override int Left
{
get
{
return OffsetOption.Left;
}
set
{
OffsetOption.Left = value;
}
}
public override int Width
{
get
{
return OffsetOption.Width;
}
set
{
OffsetOption.Width = value;
}
}
public override bool Visible
{
get
{
return OffsetOption.Visible;
}
}
public override void Hide()
{
OffsetOption.Hide();
}
public void Show()
{
OffsetOption.Show();
}
public override void Show(string name)
{
OffsetOption.Show(name);
}
public void SetActiveValue(double offset)
{
OffsetOption.SetActiveValue(offset);
}
public override void AlignActiveValues()
{
OffsetOption.AlignActiveValues();
}
public void OnVelocityGainOffsetClick(object sender, EventArgs e)
{
if (!VelocityGainOffsetCheck.Checked)
{
VelocityGainOffsetCheck.Checked = true;
LegacyOffsetCheck.Checked = false;
}
}
public void OnLegacyOffsetClick(object sender, EventArgs e)
{
if (!LegacyOffsetCheck.Checked)
{
LegacyOffsetCheck.Checked = true;
VelocityGainOffsetCheck.Checked = false;
}
}
public void OnVelocityGainOffsetCheckedChange(object sender, EventArgs e)
{
if (VelocityGainOffsetCheck.Checked)
{
EnableVelocityGainOffset();
}
}
public void OnLegacyOffsetCheckedChange(object sender, EventArgs e)
{
if (LegacyOffsetCheck.Checked)
{
EnableLegacyOffset();
}
}
public void EnableVelocityGainOffset()
{
IsLegacy = false;
}
public void EnableLegacyOffset()
{
IsLegacy = true;
}
}
}