diff options
| author | Jacob Palecki <[email protected]> | 2020-09-08 14:01:33 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-09-08 14:01:33 -0700 |
| commit | d31ef3c66c9919d3520ee34db062687a84bc5fa4 (patch) | |
| tree | 52fd619eba3151933786f53f4200e47d482be5c0 /grapher/Models/AccelGUI.cs | |
| parent | Fix accel type y active value alignment (diff) | |
| download | rawaccel-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.cs | 40 |
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 } |