diff options
| author | Tomáš Pazdiora <[email protected]> | 2021-01-07 23:21:33 +0100 |
|---|---|---|
| committer | Tomáš Pazdiora <[email protected]> | 2021-01-07 23:21:33 +0100 |
| commit | 215a21f9b62aa50d9ca4037ca0a22f5b0920f373 (patch) | |
| tree | 3f0cbca12e4575cc325c86996d952d01829b2acd /grapher/Models/Serialized | |
| parent | update devicelist app (diff) | |
| download | rawaccel-215a21f9b62aa50d9ca4037ca0a22f5b0920f373.tar.xz rawaccel-215a21f9b62aa50d9ca4037ca0a22f5b0920f373.zip | |
rough GUI integration of "Device Hardware ID"
Diffstat (limited to 'grapher/Models/Serialized')
| -rw-r--r-- | grapher/Models/Serialized/SettingsManager.cs | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/grapher/Models/Serialized/SettingsManager.cs b/grapher/Models/Serialized/SettingsManager.cs index 41ebcb5..3adbc8b 100644 --- a/grapher/Models/Serialized/SettingsManager.cs +++ b/grapher/Models/Serialized/SettingsManager.cs @@ -3,6 +3,7 @@ using System; using System.Windows.Forms; using System.Threading; using System.Text; +using System.Drawing; namespace grapher.Models.Serialized { @@ -15,6 +16,7 @@ namespace grapher.Models.Serialized Field dpiField, Field pollRateField, ToolStripMenuItem autoWrite, + ToolStripMenuItem useSpecificDevice, ToolStripMenuItem showLastMouseMove, ToolStripMenuItem showVelocityAndGain) { @@ -22,6 +24,7 @@ namespace grapher.Models.Serialized DpiField = dpiField; PollRateField = pollRateField; AutoWriteMenuItem = autoWrite; + UseSpecificDeviceMenuItem = useSpecificDevice; ShowLastMouseMoveMenuItem = showLastMouseMove; ShowVelocityAndGainMoveMenuItem = showVelocityAndGain; } @@ -40,6 +43,8 @@ namespace grapher.Models.Serialized private ToolStripMenuItem AutoWriteMenuItem { get; set; } + private ToolStripMenuItem UseSpecificDeviceMenuItem { get; set; } + private ToolStripMenuItem ShowLastMouseMoveMenuItem { get; set; } private ToolStripMenuItem ShowVelocityAndGainMoveMenuItem { get; set; } @@ -61,6 +66,66 @@ namespace grapher.Models.Serialized return errors; } + private void SpecificDeviceClickHnadler(Object o, EventArgs a, string hwid) + { + var item = (ToolStripMenuItem)o; + foreach (ToolStripMenuItem i in UseSpecificDeviceMenuItem.DropDownItems) + { + i.Checked = false; + } + item.Checked = true; + if (hwid == null || hwid == "") + { + UseSpecificDeviceMenuItem.Checked = false; + } else + { + UseSpecificDeviceMenuItem.Checked = true; + } + RawAccelSettings.AccelerationSettings.deviceHardwareID = hwid; + + TryUpdateActiveSettings(RawAccelSettings.AccelerationSettings); + + } + private void UpdateUseSpecificDeviceMenu() + { + var hwid = RawAccelSettings.AccelerationSettings.deviceHardwareID; + if (hwid == null) { hwid = ""; } + + UseSpecificDeviceMenuItem.Checked = hwid.Length > 0; + UseSpecificDeviceMenuItem.DropDownItems.Clear(); + + var any_device = new ToolStripMenuItem(); + any_device.Text = ""; + any_device.Checked = hwid.Length == 0; + any_device.Click += new EventHandler(delegate(Object o, EventArgs a) { SpecificDeviceClickHnadler(o, a, ""); }); + UseSpecificDeviceMenuItem.DropDownItems.Add(any_device); + + var hwid_not_found = true; + + foreach (Tuple<string,string> device in Models.Devices.DeviceList.GetDeviceHardwareIDs()) + { + if (hwid == device.Item2) + { + hwid_not_found = false; + } + var dev = new ToolStripMenuItem(); + dev.Text = device.Item1; + dev.Checked = device.Item2 == RawAccelSettings.AccelerationSettings.deviceHardwareID; + dev.Click += new EventHandler(delegate (Object o, EventArgs a) { SpecificDeviceClickHnadler(o, a, device.Item2); }); + UseSpecificDeviceMenuItem.DropDownItems.Add(dev); + } + + if (hwid.Length > 0 && hwid_not_found) + { + var current_hwid = new ToolStripMenuItem(); + current_hwid.Text = "Disconnected (" + hwid + ")"; + current_hwid.ForeColor = Color.DarkGray; + current_hwid.Checked = true; + current_hwid.Click += new EventHandler(delegate (Object o, EventArgs a) { SpecificDeviceClickHnadler(o, a, hwid); }); + UseSpecificDeviceMenuItem.DropDownItems.Add(current_hwid); + } + } + public void UpdateFieldsFromGUISettings() { DpiField.SetToEntered(RawAccelSettings.GUISettings.DPI); @@ -110,6 +175,7 @@ namespace grapher.Models.Serialized { RawAccelSettings = RawAccelSettings.Load(() => MakeGUISettingsFromFields()); UpdateFieldsFromGUISettings(); + UpdateUseSpecificDeviceMenu(); if (RawAccelSettings.GUISettings.AutoWriteToDriverOnStartup) { TryUpdateAccel(RawAccelSettings.AccelerationSettings); |