summaryrefslogtreecommitdiff
path: root/grapher/Models/Serialized
diff options
context:
space:
mode:
authorTomáš Pazdiora <[email protected]>2021-01-07 23:21:33 +0100
committerTomáš Pazdiora <[email protected]>2021-01-07 23:21:33 +0100
commit215a21f9b62aa50d9ca4037ca0a22f5b0920f373 (patch)
tree3f0cbca12e4575cc325c86996d952d01829b2acd /grapher/Models/Serialized
parentupdate devicelist app (diff)
downloadrawaccel-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.cs66
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);