summaryrefslogtreecommitdiff
path: root/grapher/Models/Devices/DeviceIDItem.cs
diff options
context:
space:
mode:
authorJacob Palecki <[email protected]>2021-01-07 23:11:24 -0800
committerJacob Palecki <[email protected]>2021-01-07 23:11:24 -0800
commit8273ecf0c22876f0f4e9dfa9eb29b9d491614faa (patch)
tree089cb8e024722781670433502e1452a59456cc6a /grapher/Models/Devices/DeviceIDItem.cs
parentrough GUI integration of "Device Hardware ID" (diff)
downloadrawaccel-8273ecf0c22876f0f4e9dfa9eb29b9d491614faa.tar.xz
rawaccel-8273ecf0c22876f0f4e9dfa9eb29b9d491614faa.zip
Refactor
Diffstat (limited to 'grapher/Models/Devices/DeviceIDItem.cs')
-rw-r--r--grapher/Models/Devices/DeviceIDItem.cs73
1 files changed, 73 insertions, 0 deletions
diff --git a/grapher/Models/Devices/DeviceIDItem.cs b/grapher/Models/Devices/DeviceIDItem.cs
new file mode 100644
index 0000000..2bdff81
--- /dev/null
+++ b/grapher/Models/Devices/DeviceIDItem.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace grapher.Models.Devices
+{
+ public class DeviceIDItem
+ {
+ public DeviceIDItem(string name, string hwid, DeviceIDManager manager)
+ {
+ Name = name;
+ HWID = hwid;
+ Manager = manager;
+ DeviceIDMenuItem = new ToolStripMenuItem();
+ DeviceIDMenuItem.Checked = false;
+ DeviceIDMenuItem.Text = MenuItemText();
+ DeviceIDMenuItem.Click += OnClicked;
+ manager.DeviceIDsMenuItem.DropDownItems.Add(DeviceIDMenuItem);
+ }
+
+ private ToolStripMenuItem DeviceIDMenuItem { get; }
+
+ public string Name { get; }
+
+ public string HWID { get; }
+
+ private DeviceIDManager Manager { get; }
+
+ public void SetActivated()
+ {
+ DeviceIDMenuItem.Checked = true;
+ }
+
+ public void SetDeactivated()
+ {
+ DeviceIDMenuItem.Checked = false;
+ }
+
+ private string MenuItemText() => string.IsNullOrWhiteSpace(HWID) ? $"{Name}" : $"{Name}: {HWID}";
+
+ private string DisconnectedText() => $"Disconnected: {HWID}";
+
+ public void SetDisconnected()
+ {
+ DeviceIDMenuItem.ForeColor = Color.DarkGray;
+ DeviceIDMenuItem.Text = DisconnectedText();
+ }
+
+ public void OnClicked(object sender, EventArgs e)
+ {
+ Manager.SetActive(this);
+ }
+
+ public override bool Equals(object obj)
+ {
+ return obj is DeviceIDItem item &&
+ Name == item.Name &&
+ HWID == item.HWID;
+ }
+
+ public override int GetHashCode()
+ {
+ int hashCode = -1692744877;
+ hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Name);
+ hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(HWID);
+ return hashCode;
+ }
+ }
+}