summaryrefslogtreecommitdiff
path: root/grapher/Models/AccelGUI.cs
diff options
context:
space:
mode:
authorJacobPalecki <[email protected]>2020-09-08 16:00:05 -0700
committerGitHub <[email protected]>2020-09-08 16:00:05 -0700
commite5461fa84e65d78823d0022339fa2d8864f7e63c (patch)
treeb486ef524c93bfeb29a86403114b6805bf9decf1 /grapher/Models/AccelGUI.cs
parentMerge pull request #19 from JacobPalecki/gainOffset (diff)
parentSave show last mouse value (diff)
downloadrawaccel-e5461fa84e65d78823d0022339fa2d8864f7e63c.tar.xz
rawaccel-e5461fa84e65d78823d0022339fa2d8864f7e63c.zip
Merge pull request #20 from JacobPalecki/GUI
GUI: Add By Component & Anisotropy; Remove Logarithm and Sigmoid; Delete Console; Some Refactoring
Diffstat (limited to 'grapher/Models/AccelGUI.cs')
-rw-r--r--grapher/Models/AccelGUI.cs170
1 files changed, 80 insertions, 90 deletions
diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs
index a7d5d49..3acb943 100644
--- a/grapher/Models/AccelGUI.cs
+++ b/grapher/Models/AccelGUI.cs
@@ -3,67 +3,47 @@ using grapher.Models.Mouse;
using grapher.Models.Options;
using grapher.Models.Serialized;
using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Forms;
-using System.Windows.Forms.DataVisualization.Charting;
namespace grapher
{
public class AccelGUI
{
- #region constructors
+ #region Constructors
public AccelGUI(
RawAcceleration accelForm,
AccelCalculator accelCalculator,
AccelCharts accelCharts,
SettingsManager settings,
- AccelOptions accelOptions,
- OptionXY sensitivity,
- Option rotation,
- OptionXY weight,
- CapOptions cap,
- OffsetOptions offset,
- Option acceleration,
- Option limtOrExp,
- Option midpoint,
+ ApplyOptions applyOptions,
Button writeButton,
Label mouseMoveLabel,
- ToolStripMenuItem scaleMenuItem,
- ToolStripMenuItem autoWriteMenuItem)
+ ToolStripMenuItem scaleMenuItem)
{
AccelForm = accelForm;
AccelCalculator = accelCalculator;
AccelCharts = accelCharts;
- AccelerationOptions = accelOptions;
- Sensitivity = sensitivity;
- Rotation = rotation;
- Weight = weight;
- Cap = cap;
- Offset = offset;
- Acceleration = acceleration;
- LimitOrExponent = limtOrExp;
- Midpoint = midpoint;
+ ApplyOptions = applyOptions;
WriteButton = writeButton;
ScaleMenuItem = scaleMenuItem;
Settings = settings;
Settings.Startup();
- UpdateGraph();
+ RefreshOnRead();
MouseWatcher = new MouseWatcher(AccelForm, mouseMoveLabel, AccelCharts);
ScaleMenuItem.Click += new System.EventHandler(OnScaleMenuItemClick);
+ WriteButton.Click += new System.EventHandler(OnWriteButtonClick);
+
+ ButtonTimer = SetupButtonTimer();
+ SetupWriteButton();
}
- #endregion constructors
+ #endregion Constructors
- #region properties
+ #region Properties
public RawAcceleration AccelForm { get; }
@@ -73,67 +53,33 @@ namespace grapher
public SettingsManager Settings { get; }
- public AccelOptions AccelerationOptions { get; }
-
- public OptionXY Sensitivity { get; }
-
- public Option Rotation { get; }
-
- public OptionXY Weight { get; }
-
- public CapOptions Cap { get; }
-
- public OffsetOptions Offset { get; }
-
- public Option Acceleration { get; }
-
- public Option LimitOrExponent { get; }
-
- public Option Midpoint { get; }
+ public ApplyOptions ApplyOptions { get; }
public Button WriteButton { get; }
+ public Timer ButtonTimer { get; }
+
public MouseWatcher MouseWatcher { get; }
public ToolStripMenuItem ScaleMenuItem { get; }
- #endregion properties
+ #endregion Properties
- #region methods
+ #region Methods
public void UpdateActiveSettingsFromFields()
{
var settings = new DriverSettings
{
- rotation = Rotation.Field.Data,
+ rotation = ApplyOptions.Rotation.Field.Data,
sensitivity = new Vec2<double>
{
- x = Sensitivity.Fields.X,
- y = Sensitivity.Fields.Y
- },
- combineMagnitudes = true,
- modes = new Vec2<AccelMode>
- {
- x = (AccelMode)AccelerationOptions.AccelerationIndex
- },
- args = new Vec2<AccelArgs>
- {
- x = new AccelArgs
- {
- offset = Offset.Offset,
- legacy_offset = Offset.LegacyOffset,
- weight = Weight.Fields.X,
- gainCap = Cap.VelocityGainCap,
- scaleCap = Cap.SensitivityCapX,
- accel = Acceleration.Field.Data,
- rate = Acceleration.Field.Data,
- powerScale = Acceleration.Field.Data,
- limit = LimitOrExponent.Field.Data,
- exponent = LimitOrExponent.Field.Data,
- powerExponent = LimitOrExponent.Field.Data,
- midpoint = Midpoint.Field.Data
- }
+ x = ApplyOptions.Sensitivity.Fields.X,
+ y = ApplyOptions.Sensitivity.Fields.Y
},
+ combineMagnitudes = ApplyOptions.IsWhole,
+ modes = ApplyOptions.GetModes(),
+ args = ApplyOptions.GetArgs(),
minimumTime = .4
};
@@ -141,10 +87,17 @@ namespace grapher
{
AccelForm.Invoke((MethodInvoker)delegate
{
+ WriteButtonDelay();
UpdateGraph();
});
});
-
+ RefreshOnRead();
+ }
+
+ public void RefreshOnRead()
+ {
+ UpdateGraph();
+ UpdateShownActiveValues();
}
public void UpdateGraph()
@@ -154,29 +107,66 @@ namespace grapher
Settings.ActiveAccel,
Settings.RawAccelSettings.AccelerationSettings);
AccelCharts.Bind();
- UpdateActiveValueLabels();
}
- public void UpdateActiveValueLabels()
+ public void UpdateShownActiveValues()
{
var settings = Settings.RawAccelSettings.AccelerationSettings;
-
- Sensitivity.SetActiveValues(settings.sensitivity.x, settings.sensitivity.y);
- Rotation.SetActiveValue(settings.rotation);
- AccelerationOptions.SetActiveValue((int)settings.modes.x);
- Offset.SetActiveValue(settings.args.x.offset, settings.args.y.offset);
- Weight.SetActiveValues(settings.args.x.weight, settings.args.x.weight);
- Acceleration.SetActiveValue(settings.args.x.accel); // rate, powerscale
- LimitOrExponent.SetActiveValue(settings.args.x.limit); //exp, powerexp
- Midpoint.SetActiveValue(settings.args.x.midpoint);
- //Cap.SetActiveValues(Settings.ActiveAccel.GainCap, Settings.ActiveAccel.CapX, Settings.ActiveAccel.CapY, Settings.ActiveAccel.GainCapEnabled);
+
+ AccelCharts.ShowActive(settings);
+ ApplyOptions.SetActiveValues(settings);
+ }
+
+ private Timer SetupButtonTimer()
+ {
+ Timer buttonTimer = new Timer();
+ buttonTimer.Enabled = true;
+ buttonTimer.Interval = Convert.ToInt32(ManagedAccel.WriteDelay);
+ buttonTimer.Tick += new System.EventHandler(OnButtonTimerTick);
+ return buttonTimer;
+ }
+
+ private void SetupWriteButton()
+ {
+ WriteButton.Top = AccelCharts.SensitivityChart.Top + AccelCharts.SensitivityChart.Height - Constants.WriteButtonVerticalOffset;
+ SetWriteButtonDefault();
+ }
+
+ private void SetWriteButtonDefault()
+ {
+ WriteButton.Text = Constants.WriteButtonDefaultText;
+ WriteButton.Enabled = true;
+ }
+
+ private void SetWriteButtonDelay()
+ {
+ WriteButton.Enabled = false;
+ WriteButton.Text = $"{Constants.WriteButtonDelayText} : {ButtonTimer.Interval} ms";
}
private void OnScaleMenuItemClick(object sender, EventArgs e)
{
UpdateGraph();
}
- #endregion methods
+
+ private void OnWriteButtonClick(object sender, EventArgs e)
+ {
+ UpdateActiveSettingsFromFields();
+ }
+
+ private void OnButtonTimerTick(object sender, EventArgs e)
+ {
+ ButtonTimer.Stop();
+ SetWriteButtonDefault();
+ }
+
+ private void WriteButtonDelay()
+ {
+ SetWriteButtonDelay();
+ ButtonTimer.Start();
+ }
+
+ #endregion Methods
}
}