diff options
| author | Jacob Palecki <[email protected]> | 2021-01-20 00:42:24 -0800 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2021-01-20 00:42:24 -0800 |
| commit | 77b4c7876918cac82494ec8fc15a22fdab5cf714 (patch) | |
| tree | 66b2c7d86cecf0846c3b5cdaa69c6991858ed931 /grapher/Models/Devices/DeviceIDItem.cs | |
| parent | Remove debug statement (diff) | |
| parent | show custom dialog on bad input (#63) (diff) | |
| download | rawaccel-77b4c7876918cac82494ec8fc15a22fdab5cf714.tar.xz rawaccel-77b4c7876918cac82494ec8fc15a22fdab5cf714.zip | |
merge with master builds
Diffstat (limited to 'grapher/Models/Devices/DeviceIDItem.cs')
| -rw-r--r-- | grapher/Models/Devices/DeviceIDItem.cs | 73 |
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..63c2761 --- /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 id, DeviceIDManager manager) + { + Name = name; + ID = id; + 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 ID { get; } + + private DeviceIDManager Manager { get; } + + public void SetActivated() + { + DeviceIDMenuItem.Checked = true; + } + + public void SetDeactivated() + { + DeviceIDMenuItem.Checked = false; + } + + private string MenuItemText() => string.IsNullOrEmpty(ID) ? $"{Name}" : $"{Name}: {ID}"; + + private string DisconnectedText() => $"Disconnected: {ID}"; + + 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 && + ID == item.ID; + } + + public override int GetHashCode() + { + int hashCode = -1692744877; + hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Name); + hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(ID); + return hashCode; + } + } +} |