|
|
|
@ -16,6 +16,9 @@ namespace ICSharpCode.SharpDevelop.Gui |
|
|
|
List<ExtTreeNode> cutNodes = new List<ExtTreeNode>(); |
|
|
|
List<ExtTreeNode> cutNodes = new List<ExtTreeNode>(); |
|
|
|
bool isSorted = true; |
|
|
|
bool isSorted = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Gets/Sets whether the ExtTreeView does its own sorting.
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
public bool IsSorted { |
|
|
|
public bool IsSorted { |
|
|
|
get { |
|
|
|
get { |
|
|
|
return isSorted; |
|
|
|
return isSorted; |
|
|
|
@ -24,18 +27,53 @@ namespace ICSharpCode.SharpDevelop.Gui |
|
|
|
isSorted = value; |
|
|
|
isSorted = value; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Obsolete("Use IsSorted instead!")] |
|
|
|
|
|
|
|
public new bool Sorted { |
|
|
|
|
|
|
|
get { |
|
|
|
|
|
|
|
return base.Sorted; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
set { |
|
|
|
|
|
|
|
base.Sorted = value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<ExtTreeNode> CutNodes { |
|
|
|
public List<ExtTreeNode> CutNodes { |
|
|
|
get { |
|
|
|
get { |
|
|
|
return cutNodes; |
|
|
|
return cutNodes; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// using TreeView.TreeViewNodeSorter will result in TreeNodeCollection
|
|
|
|
|
|
|
|
// calling Sort() after every insertion. Therefore, we have to create
|
|
|
|
|
|
|
|
// our own NodeSorter property.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IComparer<TreeNode> nodeSorter = new ExtTreeViewComparer(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IComparer<TreeNode> NodeSorter { |
|
|
|
|
|
|
|
get { |
|
|
|
|
|
|
|
return nodeSorter; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
set { |
|
|
|
|
|
|
|
nodeSorter = value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Obsolete("Use NodeSorter instead!")] |
|
|
|
|
|
|
|
public new System.Collections.IComparer TreeViewNodeSorter { |
|
|
|
|
|
|
|
get { |
|
|
|
|
|
|
|
return base.TreeViewNodeSorter; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
set { |
|
|
|
|
|
|
|
base.TreeViewNodeSorter = value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public ExtTreeView() |
|
|
|
public ExtTreeView() |
|
|
|
{ |
|
|
|
{ |
|
|
|
DrawMode = TreeViewDrawMode.OwnerDrawText; |
|
|
|
DrawMode = TreeViewDrawMode.OwnerDrawText; |
|
|
|
HideSelection = false; |
|
|
|
HideSelection = false; |
|
|
|
AllowDrop = true; |
|
|
|
AllowDrop = true; |
|
|
|
this.TreeViewNodeSorter = new ExtTreeViewComparer(); |
|
|
|
|
|
|
|
ImageList newImageList = new ImageList(); |
|
|
|
ImageList newImageList = new ImageList(); |
|
|
|
newImageList.ImageSize = new Size(16, 16); |
|
|
|
newImageList.ImageSize = new Size(16, 16); |
|
|
|
newImageList.ColorDepth = ColorDepth.Depth32Bit; |
|
|
|
newImageList.ColorDepth = ColorDepth.Depth32Bit; |
|
|
|
@ -55,7 +93,7 @@ namespace ICSharpCode.SharpDevelop.Gui |
|
|
|
} |
|
|
|
} |
|
|
|
TreeNode[] nodeArray = new TreeNode[node.Nodes.Count]; |
|
|
|
TreeNode[] nodeArray = new TreeNode[node.Nodes.Count]; |
|
|
|
node.Nodes.CopyTo(nodeArray, 0); |
|
|
|
node.Nodes.CopyTo(nodeArray, 0); |
|
|
|
Array.Sort(nodeArray, TreeViewNodeSorter); |
|
|
|
Array.Sort(nodeArray, nodeSorter); |
|
|
|
node.Nodes.Clear(); |
|
|
|
node.Nodes.Clear(); |
|
|
|
node.Nodes.AddRange(nodeArray); |
|
|
|
node.Nodes.AddRange(nodeArray); |
|
|
|
|
|
|
|
|
|
|
|
|