diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index 77a40a2ef2..10b38fabab 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -273,6 +273,9 @@
+
+
+
@@ -849,6 +852,7 @@
+
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/MemberNodes.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/MemberNodes.cs
new file mode 100644
index 0000000000..c13f1ea118
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/MemberNodes.cs
@@ -0,0 +1,152 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+using System;
+
+namespace ICSharpCode.SharpDevelop.Project.InnerExpand
+{
+ public abstract class MemberNode : AbstractProjectBrowserTreeNode
+ {
+ public override object AcceptVisitor(ProjectBrowserTreeNodeVisitor visitor, object data)
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ #region Field nodes
+ public class PublicFieldNode : MemberNode
+ {
+ public PublicFieldNode()
+ {
+ SetIcon("Icons.16x16.Field");
+ }
+ }
+
+ public class InternalFieldNode : MemberNode
+ {
+ public InternalFieldNode()
+ {
+ SetIcon("Icons.16x16.InteralField");
+ }
+ }
+
+ public class ProtectedFieldNode : MemberNode
+ {
+ public ProtectedFieldNode()
+ {
+ SetIcon("Icons.16x16.ProtectedField");
+ }
+ }
+
+ public class PrivateFieldNode : MemberNode
+ {
+ public PrivateFieldNode()
+ {
+ SetIcon("Icons.16x16.PrivateField");
+ }
+ }
+ #endregion
+
+ #region Properties nodes
+ public class PublicPropertyNode : MemberNode
+ {
+ public PublicPropertyNode()
+ {
+ SetIcon("Icons.16x16.Property");
+ }
+ }
+
+ public class InternalPropertyNode : MemberNode
+ {
+ public InternalPropertyNode()
+ {
+ SetIcon("Icons.16x16.InteralProperty");
+ }
+ }
+
+ public class ProtectedPropertyNode : MemberNode
+ {
+ public ProtectedPropertyNode()
+ {
+ SetIcon("Icons.16x16.ProtectedProperty");
+ }
+ }
+
+ public class PrivatePropertyNode : MemberNode
+ {
+ public PrivatePropertyNode()
+ {
+ SetIcon("Icons.16x16.PrivateProperty");
+ }
+ }
+ #endregion
+
+ #region Method nodes
+
+ public class PublicMethodNode : MemberNode
+ {
+ public PublicMethodNode()
+ {
+ SetIcon("Icons.16x16.Method");
+ }
+ }
+
+ public class InternalMethodNode : MemberNode
+ {
+ public InternalMethodNode()
+ {
+ SetIcon("Icons.16x16.InternalMethod");
+ }
+ }
+
+ public class ProtectedMethodNode : MemberNode
+ {
+ public ProtectedMethodNode()
+ {
+ SetIcon("Icons.16x16.ProtectedMethod");
+ }
+ }
+
+ public class PrivateMethodNode : MemberNode
+ {
+ public PrivateMethodNode()
+ {
+ SetIcon("Icons.16x16.PrivateMethod");
+ }
+ }
+
+ #endregion
+
+ #region Event node
+ public class PublicEventNode : MemberNode
+ {
+ public PublicEventNode()
+ {
+ SetIcon("Icons.16x16.Event");
+ }
+ }
+
+ public class InternalEventNode : MemberNode
+ {
+ public InternalEventNode()
+ {
+ SetIcon("Icons.16x16.InternalEvent");
+ }
+ }
+
+ public class ProtectedEventNode : MemberNode
+ {
+ public ProtectedEventNode()
+ {
+ SetIcon("Icons.16x16.ProtectedEvent");
+ }
+ }
+
+ public class PrivateEventNode : MemberNode
+ {
+ public PrivateEventNode()
+ {
+ SetIcon("Icons.16x16.PrivateEvent");
+ }
+ }
+ #endregion
+}
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/NamespaceNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/NamespaceNode.cs
new file mode 100644
index 0000000000..533539a942
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/NamespaceNode.cs
@@ -0,0 +1,22 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+using System;
+using System.Windows.Forms;
+
+using ICSharpCode.Core;
+
+namespace ICSharpCode.SharpDevelop.Project.InnerExpand
+{
+ public class NamespaceNode : AbstractProjectBrowserTreeNode
+ {
+ public NamespaceNode()
+ {
+ SetIcon("Icons.16x16.NameSpace");
+ }
+
+ public override object AcceptVisitor(ProjectBrowserTreeNodeVisitor visitor, object data)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/TypeNodes.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/TypeNodes.cs
new file mode 100644
index 0000000000..88f3cd5d84
--- /dev/null
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/InnerExpand/TypeNodes.cs
@@ -0,0 +1,186 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+using System;
+
+namespace ICSharpCode.SharpDevelop.Project.InnerExpand
+{
+ public abstract class TypeNode : AbstractProjectBrowserTreeNode
+ {
+ public override object AcceptVisitor(ProjectBrowserTreeNodeVisitor visitor, object data)
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ #region Classes
+ public class PublicClassNode : TypeNode
+ {
+ public PublicClassNode()
+ {
+ SetIcon("Icons.16x16.Class");
+ }
+ }
+
+ public class InternalClassNode : TypeNode
+ {
+ public InternalClassNode()
+ {
+ SetIcon("Icons.16x16.InternalClass");
+ }
+ }
+
+ public class ProtectedClassNode : TypeNode
+ {
+ public ProtectedClassNode()
+ {
+ SetIcon("Icons.16x16.ProtectedClass");
+ }
+ }
+
+ public class PrivateClassNode : TypeNode
+ {
+ public PrivateClassNode()
+ {
+ SetIcon("Icons.16x16.PrivateClass");
+ }
+ }
+
+ #endregion
+
+ #region Interfaces
+ public class PublicInterfaceNode : TypeNode
+ {
+ public PublicInterfaceNode()
+ {
+ SetIcon("Icons.16x16.Interface");
+ }
+ }
+
+ public class InternalInterfaceNode : TypeNode
+ {
+ public InternalInterfaceNode()
+ {
+ SetIcon("Icons.16x16.InternalInterface");
+ }
+ }
+
+ public class ProtectedInterfaceNode : TypeNode
+ {
+ public ProtectedInterfaceNode()
+ {
+ SetIcon("Icons.16x16.ProtectedInterface");
+ }
+ }
+
+ public class PrivateInterfaceNode : TypeNode
+ {
+ public PrivateInterfaceNode()
+ {
+ SetIcon("Icons.16x16.PrivateInterface");
+ }
+ }
+
+ #endregion
+
+ #region Structs
+ public class PublicStructNode : TypeNode
+ {
+ public PublicStructNode()
+ {
+ SetIcon("Icons.16x16.Struct");
+ }
+ }
+
+ public class InternalStructNode : TypeNode
+ {
+ public InternalStructNode()
+ {
+ SetIcon("Icons.16x16.InternalStruct");
+ }
+ }
+
+ public class ProtectedStructNode : TypeNode
+ {
+ public ProtectedStructNode()
+ {
+ SetIcon("Icons.16x16.ProtectedStruct");
+ }
+ }
+
+ public class PrivateStructNode : TypeNode
+ {
+ public PrivateStructNode()
+ {
+ SetIcon("Icons.16x16.PrivateStruct");
+ }
+ }
+ #endregion
+
+ #region Enums
+ public class PublicEnumNode : TypeNode
+ {
+ public PublicEnumNode()
+ {
+ SetIcon("Icons.16x16.Enum");
+ }
+ }
+
+ public class IntenalEnumNode : TypeNode
+ {
+ public IntenalEnumNode()
+ {
+ SetIcon("Icons.16x16.InternalEnum");
+ }
+ }
+
+ public class ProtectedEnumNode : TypeNode
+ {
+ public ProtectedEnumNode()
+ {
+ SetIcon("Icons.16x16.ProtectedEnum");
+ }
+ }
+
+ public class PrivateEnumNode : TypeNode
+ {
+ public PrivateEnumNode()
+ {
+ SetIcon("Icons.16x16.PrivateEnum");
+ }
+ }
+ #endregion
+
+ #region Delegates
+ public class PublicDelegateNode : TypeNode
+ {
+ public PublicDelegateNode()
+ {
+ SetIcon("Icons.16x16.Delegate");
+ }
+ }
+
+ public class InternalDelegateNode : TypeNode
+ {
+ public InternalDelegateNode()
+ {
+ SetIcon("Icons.16x16.InternalDelegate");
+ }
+ }
+
+ public class ProtectedDelegateNode : TypeNode
+ {
+ public ProtectedDelegateNode()
+ {
+ SetIcon("Icons.16x16.ProtectedDelegate");
+ }
+ }
+
+ public class PrivateDelegateNode : TypeNode
+ {
+ public PrivateDelegateNode()
+ {
+ SetIcon("Icons.16x16.PrivateDelegate");
+ }
+ }
+ #endregion
+}