
8 changed files with 255 additions and 68 deletions
-
38ILSpy/AssemblyListTreeNode.cs
-
106ILSpy/AssemblyTreeNode.cs
-
47ILSpy/FieldTreeNode.cs
-
3ILSpy/ILSpy.csproj
-
2ILSpy/MainWindow.xaml
-
23ILSpy/MainWindow.xaml.cs
-
45ILSpy/MethodTreeNode.cs
-
59ILSpy/TypeTreeNode.cs
@ -0,0 +1,38 @@ |
|||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
|||
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
|
|||
|
|||
using System; |
|||
using System.Diagnostics; |
|||
using System.Linq; |
|||
|
|||
using ICSharpCode.TreeView; |
|||
|
|||
namespace ICSharpCode.ILSpy |
|||
{ |
|||
/// <summary>
|
|||
/// Represents a list of assemblies.
|
|||
/// </summary>
|
|||
public sealed class AssemblyListTreeNode : SharpTreeNode |
|||
{ |
|||
public override bool CanDelete(SharpTreeNode[] nodes) |
|||
{ |
|||
return nodes.All(n => n is AssemblyTreeNode); |
|||
} |
|||
|
|||
public override void Delete(SharpTreeNode[] nodes) |
|||
{ |
|||
DeleteCore(nodes); |
|||
} |
|||
|
|||
public override void DeleteCore(SharpTreeNode[] nodes) |
|||
{ |
|||
foreach (SharpTreeNode node in nodes) |
|||
this.Children.Remove(node); |
|||
} |
|||
|
|||
public override DropEffect CanDrop(System.Windows.IDataObject data, DropEffect requestedEffect) |
|||
{ |
|||
return requestedEffect; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,47 @@ |
|||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
|||
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
|
|||
|
|||
using System; |
|||
using ICSharpCode.TreeView; |
|||
using Mono.Cecil; |
|||
|
|||
namespace ICSharpCode.ILSpy |
|||
{ |
|||
/// <summary>
|
|||
/// Represents a field in the TreeView.
|
|||
/// </summary>
|
|||
sealed class FieldTreeNode : SharpTreeNode |
|||
{ |
|||
readonly FieldDefinition field; |
|||
|
|||
public FieldTreeNode(FieldDefinition field) |
|||
{ |
|||
if (field == null) |
|||
throw new ArgumentNullException("field"); |
|||
this.field = field; |
|||
} |
|||
|
|||
public override object Text { |
|||
get { return field.Name; } |
|||
} |
|||
|
|||
public override object Icon { |
|||
get { |
|||
if (field.IsLiteral) |
|||
return Images.Literal; |
|||
switch (field.Attributes & FieldAttributes.FieldAccessMask) { |
|||
case FieldAttributes.Public: |
|||
return Images.Field; |
|||
case FieldAttributes.Assembly: |
|||
case FieldAttributes.FamANDAssem: |
|||
return Images.InternalField; |
|||
case FieldAttributes.Family: |
|||
case FieldAttributes.FamORAssem: |
|||
return Images.ProtectedField; |
|||
default: |
|||
return Images.PrivateField; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,45 @@ |
|||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
|||
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
|
|||
|
|||
using System; |
|||
using ICSharpCode.TreeView; |
|||
using Mono.Cecil; |
|||
|
|||
namespace ICSharpCode.ILSpy |
|||
{ |
|||
/// <summary>
|
|||
/// Tree Node representing a field, method, property, or event.
|
|||
/// </summary>
|
|||
public sealed class MethodTreeNode : SharpTreeNode |
|||
{ |
|||
MethodDefinition method; |
|||
|
|||
public MethodTreeNode(MethodDefinition method) |
|||
{ |
|||
if (method == null) |
|||
throw new ArgumentNullException("method"); |
|||
this.method = method; |
|||
} |
|||
|
|||
public override object Text { |
|||
get { return method.Name; } |
|||
} |
|||
|
|||
public override object Icon { |
|||
get { |
|||
switch (method.Attributes & MethodAttributes.MemberAccessMask) { |
|||
case MethodAttributes.Public: |
|||
return Images.Method; |
|||
case MethodAttributes.Assembly: |
|||
case MethodAttributes.FamANDAssem: |
|||
return Images.InternalMethod; |
|||
case MethodAttributes.Family: |
|||
case MethodAttributes.FamORAssem: |
|||
return Images.ProtectedMethod; |
|||
default: |
|||
return Images.PrivateMethod; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue