From 6ed3996afaeeaa5b1dd8a1388f8a37210e3201fa Mon Sep 17 00:00:00 2001 From: dexy Date: Wed, 15 Jan 2020 19:14:59 +1100 Subject: [PATCH] Highlight multiple selection when clicking in project explorer --- Project/Panels/ProjectExplorerPanel.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Project/Panels/ProjectExplorerPanel.cs b/Project/Panels/ProjectExplorerPanel.cs index bf5ccd4..a5bbd53 100644 --- a/Project/Panels/ProjectExplorerPanel.cs +++ b/Project/Panels/ProjectExplorerPanel.cs @@ -2264,6 +2264,16 @@ namespace CodeWalker.Project.Panels public event ProjectExplorerItemActivateHandler OnItemActivated; + private void ClearSelectedNodes() + { + foreach (var node in SelectedNodes) + { + node.BackColor = Color.Empty; + node.ForeColor = Color.Empty; + } + SelectedNodes.Clear(); + } + private void ProjectTreeView_AfterSelect(object sender, TreeViewEventArgs e) { @@ -2273,6 +2283,8 @@ namespace CodeWalker.Project.Panels { if (SelectedNodes.Contains(e.Node)) { + e.Node.BackColor = Color.Empty; + e.Node.ForeColor = Color.Empty; SelectedNodes.Remove(e.Node); } else @@ -2292,7 +2304,7 @@ namespace CodeWalker.Project.Panels else { bool start = false; - SelectedNodes.Clear(); + ClearSelectedNodes(); foreach (TreeNode cnode in pnode.Nodes) { if (start) @@ -2316,7 +2328,7 @@ namespace CodeWalker.Project.Panels } else { - SelectedNodes.Clear(); + ClearSelectedNodes(); SelectedNodes.Add(e.Node); } if (SelectedNodes.Count > 1) @@ -2324,6 +2336,8 @@ namespace CodeWalker.Project.Panels var objs = new List(); foreach (var node in SelectedNodes) { + node.BackColor = SystemColors.Highlight; + node.ForeColor = SystemColors.HighlightText; objs.Add(node.Tag); } OnItemSelected?.Invoke(objs.ToArray());