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