diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index 44c6a3be9b..a5589fd8d9 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -2099,9 +2099,12 @@
extensions = ".txt,.doc"
resource = "Icons.16x16.TextFileIcon"/>
-
+
diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/Adapters/TreeViewVarNode.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/Adapters/TreeViewVarNode.cs
index a40d097413..8029c61985 100644
--- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/Adapters/TreeViewVarNode.cs
+++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/TreeModel/Adapters/TreeViewVarNode.cs
@@ -11,6 +11,7 @@ using System.Drawing;
using System.Windows.Forms;
using Aga.Controls.Tree;
+using Aga.Controls.Tree.NodeControls;
using Debugger.Util;
@@ -19,6 +20,96 @@ using ICSharpCode.SharpDevelop.Gui.Pads;
namespace Debugger.AddIn.TreeModel
{
+ public sealed class ItemIcon: NodeIcon {
+ protected override System.Drawing.Image GetIcon(TreeNodeAdv node)
+ {
+ return ((TreeViewVarNode)node).Content.Image;
+ }
+ }
+
+ public sealed class ItemName: NodeTextBox {
+ protected override bool CanEdit(TreeNodeAdv node)
+ {
+ return false;
+ }
+ public override object GetValue(TreeNodeAdv node)
+ {
+ if (node is TreeViewVarNode) {
+ return ((TreeViewVarNode)node).Content.Name;
+ } else {
+ // Happens during incremental search
+ return base.GetValue(node);
+ }
+ }
+ }
+
+ public sealed class ItemText: NodeTextBox {
+ public ItemText()
+ {
+ this.EditEnabled = true;
+ this.EditOnClick = true;
+ }
+ protected override bool CanEdit(TreeNodeAdv node)
+ {
+ AbstractNode content = ((TreeViewVarNode)node).Content;
+ return (content is ISetText) && ((ISetText)content).CanSetText;
+ }
+ public override object GetValue(TreeNodeAdv node)
+ {
+ if (node is TreeViewVarNode) {
+ return ((TreeViewVarNode)node).Content.Text;
+ } else {
+ // Happens during incremental search
+ return base.GetValue(node);
+ }
+ }
+ public override void SetValue(TreeNodeAdv node, object value)
+ {
+ ISetText content = (ISetText)((TreeViewVarNode)node).Content;
+ if (content.CanSetText) {
+ content.SetText(value.ToString());
+ }
+ }
+ protected override void OnDrawText(DrawEventArgs args)
+ {
+ AbstractNode content = ((TreeViewVarNode)args.Node).Content;
+ if (content is ErrorNode) {
+ args.TextColor = Color.Red;
+ } else if (((TreeViewVarNode)args.Node).TextChanged) {
+ args.TextColor = Color.Blue;
+ }
+ base.OnDrawText(args);
+ }
+ public override void MouseDown(TreeNodeAdvMouseEventArgs args)
+ {
+ AbstractNode content = ((TreeViewVarNode)args.Node).Content;
+ if (content is IContextMenu && args.Button == MouseButtons.Right) {
+ ContextMenuStrip menu = ((IContextMenu)content).GetContextMenu();
+ if (menu != null) {
+ menu.Show(args.Node.Tree, args.Location);
+ }
+ } else {
+ base.MouseDown(args);
+ }
+ }
+ }
+
+ public sealed class ItemType: NodeTextBox {
+ protected override bool CanEdit(TreeNodeAdv node)
+ {
+ return false;
+ }
+ public override object GetValue(TreeNodeAdv node)
+ {
+ if (node is TreeViewVarNode) {
+ return ((TreeViewVarNode)node).Content.Type;
+ } else {
+ // Happens during incremental search
+ return base.GetValue(node);
+ }
+ }
+ }
+
///
/// A child class of TreeNodeAdv that displays exceptions.
///
diff --git a/src/Main/StartUp/Project/Resources/BitmapResources.resources b/src/Main/StartUp/Project/Resources/BitmapResources.resources
index ece178e419..b056e21f18 100644
Binary files a/src/Main/StartUp/Project/Resources/BitmapResources.resources and b/src/Main/StartUp/Project/Resources/BitmapResources.resources differ