summaryrefslogtreecommitdiff
path: root/grapher/Models
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2021-09-15 23:16:43 -0700
committera1xd <[email protected]>2021-09-23 22:34:51 -0400
commit8878091a2cab77b0433daea7a47033e1c35e42c1 (patch)
tree58dd2c7ee901acd809230a1bc86d6fd5b569593a /grapher/Models
parentMostly working cap type in GUI (diff)
downloadrawaccel-8878091a2cab77b0433daea7a47033e1c35e42c1.tar.xz
rawaccel-8878091a2cab77b0433daea7a47033e1c35e42c1.zip
Cap type options now fully working
Diffstat (limited to 'grapher/Models')
-rw-r--r--grapher/Models/AccelGUIFactory.cs188
-rw-r--r--grapher/Models/Options/AccelTypeOptions.cs3
-rw-r--r--grapher/Models/Options/Cap/CapOptions.cs62
-rw-r--r--grapher/Models/Options/Cap/CapTypeOptions.cs27
-rw-r--r--grapher/Models/Options/ComboBoxOptionsBase.cs11
5 files changed, 198 insertions, 93 deletions
diff --git a/grapher/Models/AccelGUIFactory.cs b/grapher/Models/AccelGUIFactory.cs
index 156606e..4d0a483 100644
--- a/grapher/Models/AccelGUIFactory.cs
+++ b/grapher/Models/AccelGUIFactory.cs
@@ -28,8 +28,10 @@ namespace grapher.Models
ComboBox accelTypeDropY,
ComboBox lutApplyDropdownX,
ComboBox lutApplyDropdownY,
- ComboBox capTypeDropdownX,
- ComboBox capTypeDropdownY,
+ ComboBox capTypeDropdownXClassic,
+ ComboBox capTypeDropdownYClassic,
+ ComboBox capTypeDropdownXPower,
+ ComboBox capTypeDropdownYPower,
Button writeButton,
ButtonBase toggleButton,
ToolStripMenuItem showVelocityGainToolStripMenuItem,
@@ -46,10 +48,14 @@ namespace grapher.Models
TextBox rotationBox,
TextBox weightBoxX,
TextBox weightBoxY,
- TextBox inCapBoxX,
- TextBox inCapBoxY,
- TextBox outCapBoxX,
- TextBox outCapBoxY,
+ TextBox inCapBoxXClassic,
+ TextBox inCapBoxYClassic,
+ TextBox outCapBoxXClassic,
+ TextBox outCapBoxYClassic,
+ TextBox inCapBoxXPower,
+ TextBox inCapBoxYPower,
+ TextBox outCapBoxXPower,
+ TextBox outCapBoxYPower,
TextBox offsetBoxX,
TextBox offsetBoxY,
TextBox accelerationBoxX,
@@ -92,12 +98,18 @@ namespace grapher.Models
Label rotationLabel,
Label weightLabelX,
Label weightLabelY,
- Label inCapLabelX,
- Label inCapLabelY,
- Label outCapLabelX,
- Label outCapLabelY,
- Label capTypeLabelX,
- Label capTypeLabelY,
+ Label inCapLabelXClassic,
+ Label inCapLabelYClassic,
+ Label outCapLabelXClassic,
+ Label outCapLabelYClassic,
+ Label capTypeLabelXClassic,
+ Label capTypeLabelYClassic,
+ Label inCapLabelXPower,
+ Label inCapLabelYPower,
+ Label outCapLabelXPower,
+ Label outCapLabelYPower,
+ Label capTypeLabelXPower,
+ Label capTypeLabelYPower,
Label offsetLabelX,
Label offsetLabelY,
Label constantOneLabelX,
@@ -127,12 +139,18 @@ namespace grapher.Models
Label rotationActiveLabel,
Label weightActiveXLabel,
Label weightActiveYLabel,
- Label inCapActiveXLabel,
- Label inCapActiveYLabel,
- Label outCapActiveXLabel,
- Label outCapActiveYLabel,
- Label capTypeActiveXLabel,
- Label capTypeActiveYLabel,
+ Label inCapActiveXLabelClassic,
+ Label inCapActiveYLabelClassic,
+ Label outCapActiveXLabelClassic,
+ Label outCapActiveYLabelClassic,
+ Label capTypeActiveXLabelClassic,
+ Label capTypeActiveYLabelClassic,
+ Label inCapActiveXLabelPower,
+ Label inCapActiveYLabelPower,
+ Label outCapActiveXLabelPower,
+ Label outCapActiveYLabelPower,
+ Label capTypeActiveXLabelPower,
+ Label capTypeActiveYLabelPower,
Label offsetActiveLabelX,
Label offsetActiveLabelY,
Label accelerationActiveLabelX,
@@ -373,75 +391,125 @@ namespace grapher.Models
new ActiveValueLabel(midpointActiveLabelY, activeValueTitleY),
optionSetYLeft);
- var inCapX = new Option(
- inCapBoxX,
+ var inCapXClassic = new Option(
+ inCapBoxXClassic,
form,
0,
- inCapLabelX,
+ inCapLabelXClassic,
0,
- new ActiveValueLabel(inCapActiveXLabel, activeValueTitleX),
+ new ActiveValueLabel(inCapActiveXLabelClassic, activeValueTitleX),
"Cap: Input");
- var inCapY = new Option(
- inCapBoxY,
+ var inCapYClassic = new Option(
+ inCapBoxYClassic,
form,
0,
- inCapLabelY,
+ inCapLabelYClassic,
optionSetYLeft,
- new ActiveValueLabel(inCapActiveYLabel, activeValueTitleY),
+ new ActiveValueLabel(inCapActiveYLabelClassic, activeValueTitleY),
"Cap");
- var outCapX = new Option(
- outCapBoxX,
+ var outCapXClassic = new Option(
+ outCapBoxXClassic,
form,
0,
- outCapLabelX,
+ outCapLabelXClassic,
0,
- new ActiveValueLabel(outCapActiveXLabel, activeValueTitleX),
+ new ActiveValueLabel(outCapActiveXLabelClassic, activeValueTitleX),
"Cap: Input");
- var outCapY = new Option(
- outCapBoxY,
+ var outCapYClassic = new Option(
+ outCapBoxYClassic,
form,
0,
- outCapLabelY,
+ outCapLabelYClassic,
optionSetYLeft,
- new ActiveValueLabel(outCapActiveYLabel, activeValueTitleY),
+ new ActiveValueLabel(outCapActiveYLabelClassic, activeValueTitleY),
"Cap");
- var capTypeX = new CapTypeOptions(
- capTypeLabelX,
- capTypeDropdownX,
- new ActiveValueLabel(capTypeActiveXLabel, activeValueTitleX));
+ var capTypeXClassic = new CapTypeOptions(
+ capTypeLabelXClassic,
+ capTypeDropdownXClassic,
+ new ActiveValueLabel(capTypeActiveXLabelClassic, activeValueTitleX),
+ 0);
- var capTypeY = new CapTypeOptions(
- capTypeLabelY,
- capTypeDropdownY,
- new ActiveValueLabel(capTypeActiveYLabel, activeValueTitleY));
+ var capTypeYClassic = new CapTypeOptions(
+ capTypeLabelYClassic,
+ capTypeDropdownYClassic,
+ new ActiveValueLabel(capTypeActiveYLabelClassic, activeValueTitleY),
+ optionSetYLeft);
- var accelCapOptionsX = new CapOptions(
- capTypeX,
- inCapX,
- outCapX,
+ var classicCapOptionsX = new CapOptions(
+ capTypeXClassic,
+ inCapXClassic,
+ outCapXClassic,
accelerationX);
- var accelCapOptionsY = new CapOptions(
- capTypeY,
- inCapY,
- outCapY,
+ var classicCapOptionsY = new CapOptions(
+ capTypeYClassic,
+ inCapYClassic,
+ outCapYClassic,
accelerationY);
+ var inCapXPower = new Option(
+ inCapBoxXPower,
+ form,
+ 0,
+ inCapLabelXPower,
+ 0,
+ new ActiveValueLabel(inCapActiveXLabelPower, activeValueTitleX),
+ "Cap: Input");
+
+ var inCapYPower = new Option(
+ inCapBoxYPower,
+ form,
+ 0,
+ inCapLabelYPower,
+ optionSetYLeft,
+ new ActiveValueLabel(inCapActiveYLabelPower, activeValueTitleY),
+ "Cap");
+
+ var outCapXPower = new Option(
+ outCapBoxXPower,
+ form,
+ 0,
+ outCapLabelXPower,
+ 0,
+ new ActiveValueLabel(outCapActiveXLabelPower, activeValueTitleX),
+ "Cap: Input");
+
+ var outCapYPower = new Option(
+ outCapBoxYPower,
+ form,
+ 0,
+ outCapLabelYPower,
+ optionSetYLeft,
+ new ActiveValueLabel(outCapActiveYLabelPower, activeValueTitleY),
+ "Cap");
+
+ var capTypeXPower = new CapTypeOptions(
+ capTypeLabelXPower,
+ capTypeDropdownXPower,
+ new ActiveValueLabel(capTypeActiveXLabelPower, activeValueTitleX),
+ 0);
+
+ var capTypeYPower = new CapTypeOptions(
+ capTypeLabelYPower,
+ capTypeDropdownYPower,
+ new ActiveValueLabel(capTypeActiveYLabelPower, activeValueTitleY),
+ optionSetYLeft);
+
var powerCapOptionsX = new CapOptions(
- capTypeX,
- inCapX,
- outCapX,
- accelerationX);
+ capTypeXPower,
+ inCapXPower,
+ outCapXPower,
+ scaleX);
var powerCapOptionsY = new CapOptions(
- capTypeY,
- inCapY,
- outCapY,
- accelerationY);
+ capTypeYPower,
+ inCapYPower,
+ outCapYPower,
+ scaleY);
var lpNorm = new Option(
new Field(lpNormBox, form, 2),
@@ -486,7 +554,7 @@ namespace grapher.Models
var accelerationOptionsX = new AccelTypeOptions(
accelTypeDropX,
gainSwitchOptionX,
- accelCapOptionsX,
+ classicCapOptionsX,
powerCapOptionsX,
decayRateX,
growthRateX,
@@ -509,7 +577,7 @@ namespace grapher.Models
var accelerationOptionsY = new AccelTypeOptions(
accelTypeDropY,
gainSwitchOptionY,
- accelCapOptionsY,
+ classicCapOptionsY,
powerCapOptionsY,
decayRateY,
growthRateY,
diff --git a/grapher/Models/Options/AccelTypeOptions.cs b/grapher/Models/Options/AccelTypeOptions.cs
index 9086b41..3d2f840 100644
--- a/grapher/Models/Options/AccelTypeOptions.cs
+++ b/grapher/Models/Options/AccelTypeOptions.cs
@@ -2,10 +2,7 @@
using grapher.Models.Options;
using grapher.Models.Options.Cap;
using grapher.Models.Options.LUT;
-using grapher.Models.Serialized;
using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Windows.Forms;
namespace grapher
diff --git a/grapher/Models/Options/Cap/CapOptions.cs b/grapher/Models/Options/Cap/CapOptions.cs
index e959dee..ac34abf 100644
--- a/grapher/Models/Options/Cap/CapOptions.cs
+++ b/grapher/Models/Options/Cap/CapOptions.cs
@@ -1,8 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
using static grapher.Models.Options.Cap.CapTypeOptions;
@@ -10,6 +6,20 @@ namespace grapher.Models.Options.Cap
{
public class CapOptions : OptionBase
{
+ #region Constants
+
+ public const string InCapLabel = "Cap: Input";
+ public const string OutCapLabel = "Cap: Output";
+
+ #endregion Constants
+
+ #region Fields
+
+ private int _top;
+
+ #endregion Fields
+
+ #region Constructors
public CapOptions(
CapTypeOptions capTypeOptions,
@@ -23,11 +33,16 @@ namespace grapher.Models.Options.Cap
Slope = slope;
ShouldShow = true;
- TopElement = Slope;
+ _top = Slope.Top;
BottomElement = In;
CapTypeOptions.OptionsDropdown.SelectedIndexChanged += OnCapTypeDropdownSelectedItemChanged;
+ CapTypeOptions.SelectedCapOption = InCap;
}
+ #endregion Constructors
+
+ #region Properties
+
public CapTypeOptions CapTypeOptions { get; }
public Option In { get; }
@@ -50,16 +65,17 @@ namespace grapher.Models.Options.Cap
public override int Top
{
- get => TopElement.Top;
+ get => _top;
set
{
+ _top = value;
Layout(value);
}
}
public override int Height
{
- get => BottomElement.Top + BottomElement.Height - TopElement.Top;
+ get => BottomElement.Top + BottomElement.Height - Top;
}
public override int Width
@@ -84,7 +100,9 @@ namespace grapher.Models.Options.Cap
private IOption BottomElement { get; set; }
- private IOption TopElement { get; set; }
+ #endregion Properties
+
+ #region Methods
public override void AlignActiveValues()
{
@@ -130,7 +148,7 @@ namespace grapher.Models.Options.Cap
{
Slope.Show();
CapTypeOptions.Show(name);
- In.Show();
+ ShowInCap();
Out.Hide();
}
@@ -138,7 +156,6 @@ namespace grapher.Models.Options.Cap
CapTypeOptions.SnapTo(Slope);
In.SnapTo(CapTypeOptions);
- TopElement = CapTypeOptions;
BottomElement = In;
break;
case CapType.Output:
@@ -147,14 +164,13 @@ namespace grapher.Models.Options.Cap
Slope.Show();
CapTypeOptions.Show(name);
In.Hide();
- Out.Show();
+ ShowOutCap();
}
Slope.Top = top;
CapTypeOptions.SnapTo(Slope);
Out.SnapTo(CapTypeOptions);
- TopElement = CapTypeOptions;
BottomElement = Out;
break;
case CapType.Both:
@@ -162,29 +178,35 @@ namespace grapher.Models.Options.Cap
{
CapTypeOptions.Show(name);
Slope.Hide();
- In.Show();
- Out.Show();
+ ShowInCap();
+ ShowOutCap();
}
CapTypeOptions.Top = top;
In.SnapTo(CapTypeOptions);
Out.SnapTo(In);
- TopElement = In;
BottomElement = Out;
break;
}
}
- private void OnCapTypeDropdownSelectedItemChanged(object sender, EventArgs e)
+ private void ShowInCap()
{
- Layout(Top);
+ In.Show(InCapLabel);
+ }
+
+ private void ShowOutCap()
+ {
+ Out.Show(OutCapLabel);
}
- private void SetupCapTypeDropdown(ComboBox capTypeDropDown)
+ private void OnCapTypeDropdownSelectedItemChanged(object sender, EventArgs e)
{
- capTypeDropDown.Items.Clear();
- capTypeDropDown.DataSource = Enum.GetValues(typeof(CapType));
+ Layout(Top);
+ CapTypeOptions.CheckIfDefault();
}
+
+ #endregion Methods
}
}
diff --git a/grapher/Models/Options/Cap/CapTypeOptions.cs b/grapher/Models/Options/Cap/CapTypeOptions.cs
index f0c5617..1e7bd58 100644
--- a/grapher/Models/Options/Cap/CapTypeOptions.cs
+++ b/grapher/Models/Options/Cap/CapTypeOptions.cs
@@ -64,7 +64,8 @@ namespace grapher.Models.Options.Cap
public CapTypeOptions(
Label label,
ComboBox dropdown,
- ActiveValueLabel activeValueLabel)
+ ActiveValueLabel activeValueLabel,
+ int left)
: base(
label,
dropdown,
@@ -77,6 +78,13 @@ namespace grapher.Models.Options.Cap
OutCap,
BothCap
});
+
+ Default = OutCap;
+
+ label.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ label.Left = left;
+ label.Width = OptionsDropdown.Left - left - Constants.OptionLabelBoxSeperation;
+ label.Height = OptionsDropdown.Height;
}
#endregion Constructors
@@ -97,6 +105,8 @@ namespace grapher.Models.Options.Cap
}
}
+ private CapTypeOption Default { get; set; }
+
public ClassicCapMode GetSelectedCapMode()
{
switch(SelectedCapType)
@@ -128,10 +138,23 @@ namespace grapher.Models.Options.Cap
public void SetActiveValue(ClassicCapMode capMode)
{
- SelectedCapOption = CapTypeOptionFromSettings(capMode);
+ Default = CapTypeOptionFromSettings(capMode);
+ SelectedCapOption = Default;
ActiveValueLabel.SetValue(SelectedCapOption.Name);
}
+ public void CheckIfDefault()
+ {
+ if (SelectedCapOption.Equals(Default))
+ {
+ OptionsDropdown.ForeColor = System.Drawing.Color.Gray;
+ }
+ else
+ {
+ OptionsDropdown.ForeColor = System.Drawing.Color.Black;
+ }
+ }
+
#endregion Methods
}
}
diff --git a/grapher/Models/Options/ComboBoxOptionsBase.cs b/grapher/Models/Options/ComboBoxOptionsBase.cs
index 64e0092..6999e99 100644
--- a/grapher/Models/Options/ComboBoxOptionsBase.cs
+++ b/grapher/Models/Options/ComboBoxOptionsBase.cs
@@ -1,9 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
+using System.Windows.Forms;
namespace grapher.Models.Options
{
@@ -61,7 +56,7 @@ namespace grapher.Models.Options
{
get
{
- return Label.Height;
+ return OptionsDropdown.Height;
}
}
@@ -69,7 +64,7 @@ namespace grapher.Models.Options
{
get
{
- return Label.Top;
+ return OptionsDropdown.Top;
}
set
{