summaryrefslogtreecommitdiff
path: root/grapher/Models/Options/CapOptions.cs
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-08-12 19:22:21 -0700
committerJacob Palecki <[email protected]>2020-08-12 19:22:21 -0700
commitcc531c79f2bd664551071ef315a54814bd9ab914 (patch)
treee6d1db3477e8ba41299d1d92eac4748a648c960b /grapher/Models/Options/CapOptions.cs
parentAdd ability to have x\y graphs (diff)
downloadrawaccel-cc531c79f2bd664551071ef315a54814bd9ab914.tar.xz
rawaccel-cc531c79f2bd664551071ef315a54814bd9ab914.zip
Reorganized solution into directories
Diffstat (limited to 'grapher/Models/Options/CapOptions.cs')
-rw-r--r--grapher/Models/Options/CapOptions.cs137
1 files changed, 137 insertions, 0 deletions
diff --git a/grapher/Models/Options/CapOptions.cs b/grapher/Models/Options/CapOptions.cs
new file mode 100644
index 0000000..2ee7f6b
--- /dev/null
+++ b/grapher/Models/Options/CapOptions.cs
@@ -0,0 +1,137 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace grapher
+{
+ public class CapOptions
+ {
+ public CapOptions(
+ ToolStripMenuItem sensitivityCapCheck,
+ ToolStripMenuItem velocityGainCapCheck,
+ OptionXY capOption,
+ OptionXY weightOption)
+ {
+
+ SensitivityCapCheck = sensitivityCapCheck;
+ VelocityGainCapCheck = velocityGainCapCheck;
+ CapOption = capOption;
+ WeightOption = weightOption;
+
+ SensitivityCapCheck.Click += new System.EventHandler(OnSensitivityCapCheckClick);
+ VelocityGainCapCheck.Click += new System.EventHandler(OnVelocityGainCapCheckClick);
+
+ SensitivityCapCheck.CheckedChanged += new System.EventHandler(OnSensitivityCapCheckedChange);
+ VelocityGainCapCheck.CheckedChanged += new System.EventHandler(OnVelocityGainCapCheckedChange);
+
+ EnableSensitivityCap();
+ }
+
+ ToolStripMenuItem SensitivityCapCheck { get; }
+
+ ToolStripMenuItem VelocityGainCapCheck { get; }
+
+ OptionXY CapOption { get; }
+
+ OptionXY WeightOption { get; }
+
+ public double SensitivityCapX {
+ get
+ {
+ if (IsSensitivityGain)
+ {
+ return CapOption.Fields.X;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+
+ public double SensitivityCapY {
+ get
+ {
+ if (IsSensitivityGain)
+ {
+ return CapOption.Fields.Y;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+
+ public double VelocityGainCap {
+ get
+ {
+ if (IsSensitivityGain)
+ {
+ return 0;
+ }
+ else
+ {
+ return CapOption.Fields.X;
+ }
+ }
+ }
+
+ public bool IsSensitivityGain { get; private set; }
+
+ void OnSensitivityCapCheckClick(object sender, EventArgs e)
+ {
+ if (!SensitivityCapCheck.Checked)
+ {
+ VelocityGainCapCheck.Checked = false;
+ SensitivityCapCheck.Checked = true;
+ }
+ }
+
+ void OnVelocityGainCapCheckClick(object sender, EventArgs e)
+ {
+ if (!VelocityGainCapCheck.Checked)
+ {
+ VelocityGainCapCheck.Checked = true;
+ SensitivityCapCheck.Checked = false;
+ }
+ }
+
+ void OnSensitivityCapCheckedChange(object sender, EventArgs e)
+ {
+ if (SensitivityCapCheck.Checked == true)
+ {
+ EnableSensitivityCap();
+ }
+ }
+
+ void OnVelocityGainCapCheckedChange(object sender, EventArgs e)
+ {
+ if (SensitivityCapCheck.Checked == true)
+ {
+ EnableVelocityGainCap();
+ }
+ }
+
+ void EnableSensitivityCap()
+ {
+ IsSensitivityGain = true;
+ CapOption.Fields.LockCheckBox.Enabled = true;
+ WeightOption.Fields.LockCheckBox.Enabled = true;
+ CapOption.SetName("Sensitivity Cap");
+ }
+
+ void EnableVelocityGainCap()
+ {
+ IsSensitivityGain = false;
+ CapOption.Fields.LockCheckBox.Checked = true;
+ CapOption.Fields.LockCheckBox.Enabled = false;
+ WeightOption.Fields.LockCheckBox.Checked = true;
+ WeightOption.Fields.LockCheckBox.Enabled = false;
+ CapOption.SetName("Velocity Gain Cap");
+ }
+ }
+}