Browse Source

Reverse Static Class icon changes to TypeTreeNode.cs

Commit:637a91236ce4a79ef0d0cc3227f77ae170eb98aa
Commit:e7caa3f43fa03c6480a76ba492eb7c53f858f617
pull/170/head
Ed Harvey 14 years ago
parent
commit
db114400ba
  1. 70
      ILSpy/TreeNodes/TypeTreeNode.cs

70
ILSpy/TreeNodes/TypeTreeNode.cs

@ -30,7 +30,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -30,7 +30,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
readonly TypeDefinition type;
readonly AssemblyTreeNode parentAssemblyNode;
public TypeTreeNode(TypeDefinition type, AssemblyTreeNode parentAssemblyNode)
{
if (parentAssemblyNode == null)
@ -41,36 +41,29 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -41,36 +41,29 @@ namespace ICSharpCode.ILSpy.TreeNodes
this.parentAssemblyNode = parentAssemblyNode;
this.LazyLoading = true;
}
public TypeDefinition TypeDefinition
{
public TypeDefinition TypeDefinition {
get { return type; }
}
public AssemblyTreeNode ParentAssemblyNode
{
public AssemblyTreeNode ParentAssemblyNode {
get { return parentAssemblyNode; }
}
public string Name
{
public string Name {
get { return type.Name; }
}
public string Namespace
{
public string Namespace {
get { return type.Namespace; }
}
public override object Text
{
public override object Text {
get { return HighlightSearchMatch(this.Language.TypeToString(type, includeNamespace: false)); }
}
public bool IsPublicAPI
{
get
{
public bool IsPublicAPI {
get {
switch (type.Attributes & TypeAttributes.VisibilityMask) {
case TypeAttributes.Public:
case TypeAttributes.NestedPublic:
@ -82,7 +75,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -82,7 +75,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
}
}
public override FilterResult Filter(FilterSettings settings)
{
if (!settings.ShowInternalApi && !IsPublicAPI)
@ -96,7 +89,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -96,7 +89,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
return FilterResult.Recurse;
}
}
protected override void LoadChildren()
{
if (type.BaseType != null || type.HasInterfaces)
@ -109,7 +102,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -109,7 +102,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
foreach (FieldDefinition field in type.Fields.OrderBy(m => m.Name)) {
this.Children.Add(new FieldTreeNode(field));
}
foreach (PropertyDefinition property in type.Properties.OrderBy(m => m.Name)) {
this.Children.Add(new PropertyTreeNode(property));
}
@ -123,7 +116,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -123,7 +116,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
}
}
public override void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{
language.DecompileType(type, output, options);
@ -153,10 +146,8 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -153,10 +146,8 @@ namespace ICSharpCode.ILSpy.TreeNodes
} else {
if (type.IsInterface)
return TypeIcon.Interface;
else if (IsDelegate(type))
else if (type.BaseType != null && type.BaseType.FullName == typeof(MulticastDelegate).FullName)
return TypeIcon.Delegate;
else if (IsStaticClass(type))
return TypeIcon.StaticClass;
else
return TypeIcon.Class;
}
@ -187,28 +178,9 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -187,28 +178,9 @@ namespace ICSharpCode.ILSpy.TreeNodes
}
return overlay;
}
private static bool IsDelegate(TypeDefinition type)
{
return type.BaseType != null && type.BaseType.FullName == typeof(MulticastDelegate).FullName;
}
private static bool IsStaticClass(TypeDefinition type)
{
if (type.IsSealed) {
if (type.IsAbstract)
return true;
else
return !type.Methods.Where(m => m.Name == ".ctor").Any(m => !m.IsPrivate);
}
return false;
}
#endregion
MemberReference IMemberTreeNode.Member
{
MemberReference IMemberTreeNode.Member {
get { return type; }
}
}

Loading…
Cancel
Save