diff --git a/ILSpy/TreeNodes/EventTreeNode.cs b/ILSpy/TreeNodes/EventTreeNode.cs
index 465048177..2f585369c 100644
--- a/ILSpy/TreeNodes/EventTreeNode.cs
+++ b/ILSpy/TreeNodes/EventTreeNode.cs
@@ -108,6 +108,14 @@ namespace ICSharpCode.ILSpy.TreeNodes
language.DecompileEvent(ev, output, options);
}
+
+ public override bool IsPublicAPI {
+ get {
+ MethodDefinition accessor = ev.AddMethod ?? ev.RemoveMethod;
+ return accessor != null && (accessor.IsPublic || accessor.IsFamilyOrAssembly || accessor.IsFamily);
+ }
+ }
+
MemberReference IMemberTreeNode.Member
{
get { return ev; }
diff --git a/ILSpy/TreeNodes/FieldTreeNode.cs b/ILSpy/TreeNodes/FieldTreeNode.cs
index ecd28f28f..90942a7a9 100644
--- a/ILSpy/TreeNodes/FieldTreeNode.cs
+++ b/ILSpy/TreeNodes/FieldTreeNode.cs
@@ -112,6 +112,12 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
language.DecompileField(field, output, options);
}
+
+ public override bool IsPublicAPI {
+ get {
+ return field.IsPublic || field.IsFamily || field.IsFamilyOrAssembly;
+ }
+ }
MemberReference IMemberTreeNode.Member
{
diff --git a/ILSpy/TreeNodes/ILSpyTreeNode.cs b/ILSpy/TreeNodes/ILSpyTreeNode.cs
index 8b4835fe5..f43e6fb5e 100644
--- a/ILSpy/TreeNodes/ILSpyTreeNode.cs
+++ b/ILSpy/TreeNodes/ILSpyTreeNode.cs
@@ -166,5 +166,18 @@ namespace ICSharpCode.ILSpy.TreeNodes
ApplyFilterToChild(node);
}
}
+
+ public virtual bool IsPublicAPI {
+ get { return true; }
+ }
+
+ public override System.Windows.Media.Brush Foreground {
+ get {
+ if (IsPublicAPI)
+ return base.Foreground;
+ else
+ return System.Windows.SystemColors.GrayTextBrush;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/ILSpy/TreeNodes/MethodTreeNode.cs b/ILSpy/TreeNodes/MethodTreeNode.cs
index 6435cbfb7..d16cce924 100644
--- a/ILSpy/TreeNodes/MethodTreeNode.cs
+++ b/ILSpy/TreeNodes/MethodTreeNode.cs
@@ -137,6 +137,12 @@ namespace ICSharpCode.ILSpy.TreeNodes
return FilterResult.Hidden;
}
+ public override bool IsPublicAPI {
+ get {
+ return method.IsPublic || method.IsFamily || method.IsFamilyOrAssembly;
+ }
+ }
+
MemberReference IMemberTreeNode.Member
{
get { return method; }
diff --git a/ILSpy/TreeNodes/PropertyTreeNode.cs b/ILSpy/TreeNodes/PropertyTreeNode.cs
index 2ead5dc71..4872b93e8 100644
--- a/ILSpy/TreeNodes/PropertyTreeNode.cs
+++ b/ILSpy/TreeNodes/PropertyTreeNode.cs
@@ -148,6 +148,19 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
language.DecompileProperty(property, output, options);
}
+
+ public override bool IsPublicAPI {
+ get {
+ switch (GetAttributesOfMostAccessibleMethod(property) & MethodAttributes.MemberAccessMask) {
+ case MethodAttributes.Public:
+ case MethodAttributes.Family:
+ case MethodAttributes.FamORAssem:
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
MemberReference IMemberTreeNode.Member
{
diff --git a/ILSpy/TreeNodes/TypeTreeNode.cs b/ILSpy/TreeNodes/TypeTreeNode.cs
index 15bb054d8..cd25c916d 100644
--- a/ILSpy/TreeNodes/TypeTreeNode.cs
+++ b/ILSpy/TreeNodes/TypeTreeNode.cs
@@ -62,7 +62,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
get { return HighlightSearchMatch(this.Language.FormatTypeName(type)); }
}
- public bool IsPublicAPI {
+ public override bool IsPublicAPI {
get {
switch (type.Attributes & TypeAttributes.VisibilityMask) {
case TypeAttributes.Public:
diff --git a/ILSpy/XmlDoc/XmlDocLoader.cs b/ILSpy/XmlDoc/XmlDocLoader.cs
index 3cc8384bb..4b91ad84d 100644
--- a/ILSpy/XmlDoc/XmlDocLoader.cs
+++ b/ILSpy/XmlDoc/XmlDocLoader.cs
@@ -99,6 +99,9 @@ namespace ICSharpCode.ILSpy.XmlDoc
static string LookupLocalizedXmlDoc(string fileName)
{
+ if (string.IsNullOrEmpty(fileName))
+ return null;
+
string xmlFileName = Path.ChangeExtension(fileName, ".xml");
string currentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName;
string localizedXmlDocFile = GetLocalizedName(xmlFileName, currentCulture);
diff --git a/SharpTreeView/SharpTreeNode.cs b/SharpTreeView/SharpTreeNode.cs
index ae0a0e646..65561ea93 100644
--- a/SharpTreeView/SharpTreeNode.cs
+++ b/SharpTreeView/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/SharpTreeView/Themes/Generic.xaml b/SharpTreeView/Themes/Generic.xaml
index a10e19c75..00b807af0 100644
--- a/SharpTreeView/Themes/Generic.xaml
+++ b/SharpTreeView/Themes/Generic.xaml
@@ -181,6 +181,7 @@
@@ -210,7 +211,8 @@
-->
-