From ca8a8e283ec80040da516db37cd3e9ba1eaad04b Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sat, 14 Apr 2012 14:34:42 +0200 Subject: [PATCH] Merge SharpTreeView changes from ILSpy to SharpDevelop. --- .../ICSharpCode.TreeView/DropEffect.cs | 15 ------------ .../ICSharpCode.TreeView.csproj | 24 ++++++++++++------- .../ICSharpCode.TreeView/SharpTreeNode.cs | 5 ++++ .../ICSharpCode.TreeView/SharpTreeView.cs | 16 +++++++------ .../ICSharpCode.TreeView/Themes/Generic.xaml | 4 +++- 5 files changed, 33 insertions(+), 31 deletions(-) delete mode 100644 src/Libraries/SharpTreeView/ICSharpCode.TreeView/DropEffect.cs diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/DropEffect.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/DropEffect.cs deleted file mode 100644 index 24a16504fe..0000000000 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/DropEffect.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) -// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace ICSharpCode.TreeView -{ - public enum DropEffect - { - None, Move, Copy, Link - } -} diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/ICSharpCode.TreeView.csproj b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/ICSharpCode.TreeView.csproj index 78b7d35db3..1049c5d1dd 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/ICSharpCode.TreeView.csproj +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/ICSharpCode.TreeView.csproj @@ -6,7 +6,7 @@ 9.0.30729 2.0 {DDE2A481-8271-4EAC-A330-8FA6A38D13D1} - library + Library Properties ICSharpCode.TreeView ICSharpCode.TreeView @@ -14,15 +14,16 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 + Client ..\..\..\..\bin\ - - + False + False + false true - full + Full false - ..\..\..\..\bin\ DEBUG;TRACE prompt 4 @@ -30,11 +31,19 @@ pdbonly true - ..\..\..\..\bin\ TRACE prompt 4 + + False + + + False + Auto + 4194304 + AnyCPU + @@ -64,16 +73,15 @@ Properties\GlobalAssemblyInfo.cs - - Code + diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeNode.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeNode.cs index ae0a0e6468..65561ea930 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeNode.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeNode.cs @@ -12,6 +12,7 @@ using System.Collections.ObjectModel; using System.Windows.Controls; using System.Collections.Specialized; using System.Windows.Input; +using System.Windows.Media; namespace ICSharpCode.TreeView { @@ -101,6 +102,10 @@ namespace ICSharpCode.TreeView get { return null; } } + public virtual Brush Foreground { + get { return SystemColors.WindowTextBrush; } + } + public virtual object Icon { get { return null; } diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs index 26f8bab069..3addc9e03b 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeView.cs @@ -135,11 +135,11 @@ namespace ICSharpCode.TreeView this.ItemsSource = flattener; } } - + void flattener_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { - // Deselect nodes that are being hidden - if (e.Action == NotifyCollectionChangedAction.Remove) { + // Deselect nodes that are being hidden, if any remain in the tree + if (e.Action == NotifyCollectionChangedAction.Remove && Items.Count > 0) { List selectedOldItems = null; foreach (SharpTreeNode node in e.OldItems) { if (node.IsSelected) { @@ -151,11 +151,13 @@ namespace ICSharpCode.TreeView if (selectedOldItems != null) { var list = SelectedItems.Cast().Except(selectedOldItems).ToList(); SetSelectedItems(list); + if (SelectedItem == null) { + // if we removed all selected nodes, then move the focus to the node + // preceding the first of the old selected nodes + SelectedIndex = Math.Max(0, e.OldStartingIndex - 1); + FocusNode((SharpTreeNode)SelectedItem); + } } - // reset the focus to the previous node - SelectedIndex = Math.Max(0, e.OldStartingIndex - 1); - if (SelectedItem != null) - FocusNode((SharpTreeNode)SelectedItem); } } diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/Themes/Generic.xaml b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/Themes/Generic.xaml index a10e19c75c..00b807af01 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/Themes/Generic.xaml +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/Themes/Generic.xaml @@ -181,6 +181,7 @@ @@ -210,7 +211,8 @@ --> -