Browse Source

Generalize the work with the tree-nodes context menu.

pull/1/head
Eusebiu Marcu 15 years ago
parent
commit
b2c532bfe9
  1. 23
      ILSpy/TreeNodes/AssemblyTreeNode.cs
  2. 17
      ILSpy/TreeNodes/ILSpyTreeNode.cs

23
ILSpy/TreeNodes/AssemblyTreeNode.cs

@ -46,9 +46,6 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -46,9 +46,6 @@ namespace ICSharpCode.ILSpy.TreeNodes
readonly List<TypeTreeNode> classes = new List<TypeTreeNode>();
readonly Dictionary<string, NamespaceTreeNode> namespaces = new Dictionary<string, NamespaceTreeNode>();
// UI
ContextMenu menu;
public AssemblyTreeNode(string fileName, AssemblyList assemblyList)
{
if (fileName == null)
@ -63,7 +60,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -63,7 +60,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
this.LazyLoading = true;
CreateRemoveItemContextMenu();
CreateContextMenu();
}
public string FileName {
@ -129,10 +126,12 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -129,10 +126,12 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
}
void CreateRemoveItemContextMenu()
protected override void CreateContextMenu()
{
var menu = GetContextMenu();
// this is necesary since it create the instance of the context menu
base.CreateContextMenu();
// add specific items - remove assembly
MenuItem item = new MenuItem() {
Header = "Remove assembly",
Icon = new Image() { Source = Images.Delete }
@ -140,7 +139,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -140,7 +139,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
item.Click += delegate { Delete(); };
menu.Items.Add(item);
contextMenu.Items.Add(item);
}
sealed class MyAssemblyResolver : IAssemblyResolver
@ -177,14 +176,6 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -177,14 +176,6 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
}
public override ContextMenu GetContextMenu()
{
if (menu != null)
return menu;
return (menu = new ContextMenu());
}
protected override void LoadChildren()
{
try {

17
ILSpy/TreeNodes/ILSpyTreeNode.cs

@ -20,6 +20,8 @@ using System; @@ -20,6 +20,8 @@ using System;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using ICSharpCode.Decompiler;
using ICSharpCode.TreeView;
@ -31,6 +33,9 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -31,6 +33,9 @@ namespace ICSharpCode.ILSpy.TreeNodes
/// </summary>
abstract class ILSpyTreeNodeBase : SharpTreeNode
{
// UI
protected ContextMenu contextMenu;
FilterSettings filterSettings;
public FilterSettings FilterSettings {
@ -61,6 +66,18 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -61,6 +66,18 @@ namespace ICSharpCode.ILSpy.TreeNodes
return FilterResult.Hidden;
}
protected virtual void CreateContextMenu()
{
contextMenu = new ContextMenu();
// add common context menu items, e.g. copy.
}
public override ContextMenu GetContextMenu()
{
return contextMenu;
}
protected object HighlightSearchMatch(string text, string suffix = null)
{
// TODO: implement highlighting the search match

Loading…
Cancel
Save