summaryrefslogtreecommitdiff
path: root/grapher/Models/AccelGUI.cs
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2020-09-08 14:01:33 -0700
committerJacob Palecki <[email protected]>2020-09-08 14:01:33 -0700
commitd31ef3c66c9919d3520ee34db062687a84bc5fa4 (patch)
tree52fd619eba3151933786f53f4200e47d482be5c0 /grapher/Models/AccelGUI.cs
parentFix accel type y active value alignment (diff)
downloadrawaccel-d31ef3c66c9919d3520ee34db062687a84bc5fa4.tar.xz
rawaccel-d31ef3c66c9919d3520ee34db062687a84bc5fa4.zip
Add delay on button enable after writing to driver
Diffstat (limited to 'grapher/Models/AccelGUI.cs')
-rw-r--r--grapher/Models/AccelGUI.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/grapher/Models/AccelGUI.cs b/grapher/Models/AccelGUI.cs
index 634aabf..a7fe5f9 100644
--- a/grapher/Models/AccelGUI.cs
+++ b/grapher/Models/AccelGUI.cs
@@ -35,6 +35,14 @@ namespace grapher
MouseWatcher = new MouseWatcher(AccelForm, mouseMoveLabel, AccelCharts);
ScaleMenuItem.Click += new System.EventHandler(OnScaleMenuItemClick);
+ WriteButton.Click += new System.EventHandler(OnWriteButtonClick);
+
+ ButtonTimer = new Timer();
+ ButtonTimer.Enabled = true;
+ ButtonTimer.Interval = Convert.ToInt32(ManagedAccel.WriteDelay);
+ ButtonTimer.Tick += new System.EventHandler(OnButtonTimerTick);
+
+ SetWriteButtonDefault();
}
#endregion Constructors
@@ -53,6 +61,8 @@ namespace grapher
public Button WriteButton { get; }
+ public Timer ButtonTimer { get; }
+
public MouseWatcher MouseWatcher { get; }
public ToolStripMenuItem ScaleMenuItem { get; }
@@ -81,6 +91,7 @@ namespace grapher
{
AccelForm.Invoke((MethodInvoker)delegate
{
+ WriteButtonDelay();
UpdateGraph();
});
});
@@ -113,6 +124,35 @@ namespace grapher
UpdateGraph();
}
+ private void OnWriteButtonClick(object sender, EventArgs e)
+ {
+ UpdateActiveSettingsFromFields();
+ }
+
+ private void OnButtonTimerTick(object sender, EventArgs e)
+ {
+ ButtonTimer.Stop();
+ SetWriteButtonDefault();
+ }
+
+ private void WriteButtonDelay()
+ {
+ SetWriteButtonDelay();
+ ButtonTimer.Start();
+ }
+
+ private void SetWriteButtonDefault()
+ {
+ WriteButton.Text = Constants.WriteButtonDefaultText;
+ WriteButton.Enabled = true;
+ }
+
+ private void SetWriteButtonDelay()
+ {
+ WriteButton.Enabled = false;
+ WriteButton.Text = $"{Constants.WriteButtonDelayText} : {ButtonTimer.Interval} ms";
+ }
+
#endregion Methods
}