# HG changeset patch # User sl # Date 1400078264 -7200 # Node ID 0220435cf48af475cef6dbdf2d9ba31d34b70a3f # Parent f5e6a5b8a56af1822f46387f0d3e5f824014a5d5 Newly added device are now showing green. Removed devices are showing red. Other devices are showing black. Devices in unknown state are showing purple. diff -r f5e6a5b8a56a -r 0220435cf48a FrmMain.cs --- a/FrmMain.cs Wed May 14 15:42:29 2014 +0200 +++ b/FrmMain.cs Wed May 14 16:37:44 2014 +0200 @@ -669,7 +669,8 @@ SetInputReportBufferSize, AddDeviceToTreeView, ResetDeviceTreeView, - SelectDeviceInTreeView + SelectDeviceInTreeView, + CompleteDeviceTreeView } private enum ReportReadOrWritten @@ -768,33 +769,86 @@ break; case FormActions.AddDeviceToTreeView: - //Build our node from our string array - TreeNode newNode = new TreeNode(strings[0]); - for (int i=1;i 0) + { + //Our device is already there + break; + } + + //Build our node from our string array + TreeNode newNode = new TreeNode(strings[0]); + for (int i = 1; i < strings.Length; i++) + { + newNode.Nodes.Add(strings[i]); + if (strings[i].StartsWith("Name: ")) + { + //Found our name property, update our node text + newNode.Text = strings[i].Substring(6, strings[i].Length - 6); + } + } + + //New device color is green + newNode.ForeColor = Color.Green; + newNode.Name = strings[0]; //Set ID as name to make sure we can find it + treeViewDevices.Nodes.Add(newNode); } - - newNode.Name = strings[0]; //Set ID as name to make sure we can find it - treeViewDevices.Nodes.Add(newNode); break; case FormActions.ResetDeviceTreeView: - treeViewDevices.Nodes.Clear(); + { + //Mark all non removed/red device as purple/unknown + foreach (TreeNode device in treeViewDevices.Nodes) + { + if (device.ForeColor != Color.Red) + { + device.ForeColor = Color.Purple; + } + } + //treeViewDevices.Nodes.Clear(); + } + break; + + case FormActions.CompleteDeviceTreeView: + { + //Our device list is now complete + foreach (TreeNode device in treeViewDevices.Nodes) + { + //Purple devices need to be marked as red for removed + if (device.ForeColor == Color.Purple) + { + device.ForeColor = Color.Red; + } + } + } break; case FormActions.SelectDeviceInTreeView: - treeViewDevices.SelectedNode = null; - TreeNode[] res=treeViewDevices.Nodes.Find(strings[0], false); - if (res.Length>0) { - treeViewDevices.SelectedNode = res[0]; - treeViewDevices.SelectedNode.ForeColor = Color.Blue; + //treeViewDevices.SelectedNode = null; + TreeNode[] res = treeViewDevices.Nodes.Find(strings[0], false); + foreach (TreeNode device in res) + { + device.ForeColor = Color.Blue; + //treeViewDevices.SelectedNode = res[0]; + //treeViewDevices.SelectedNode.ForeColor = Color.Blue; + } } @@ -1431,6 +1485,10 @@ } } + //Complete our device TreeView + MyMarshalDataToForm(FormActions.CompleteDeviceTreeView); + + MyMarshalDataToForm(FormActions.AddItemToListBox, "Found " + usbDeviceCounter /*searcher.Get().Count*/ + " USB HID devices"); if (!_deviceDetected)