diff options
author | Mike Krüger <mkrueger@novell.com> | 2010-01-14 16:10:50 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2010-01-14 16:10:50 +0300 |
commit | 90de5975caa9f72f2e9d48df302745c43fe3d7b2 (patch) | |
tree | 7f8f7e25c56738fc746a7c2702af95b672fd8f7a /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components | |
parent | ba7d75874fa35bcb3d1e899378e04eb62a91e009 (diff) |
* MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs: Added
left/right as collapse/expand keys.
svn path=/trunk/monodevelop/; revision=149554
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs index 77af44dc63..6efc757995 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs @@ -698,7 +698,7 @@ namespace MonoDevelop.Ide.Gui.Components // will be handled by the node Entry. if (editingText) return null; - + ArrayList targets = new ArrayList (); foreach (SelectionGroup grp in GetSelectedNodesGrouped ()) { @@ -716,18 +716,48 @@ namespace MonoDevelop.Ide.Gui.Components lastNode = newNode; } } - + if (targetChain != null) targets.Add (targetChain); } } if (targets.Count == 1) - return targets [0]; + return targets[0]; else if (targets.Count > 1) return new MulticastNodeRouter (targets); else return null; } + + void ExpandCurrentItem () + { + try { + LockUpdates (); + foreach (SelectionGroup grp in GetSelectedNodesGrouped ()) { + grp.SavePositions (); + foreach (var node in grp.Nodes) { + node.Expanded = true; + } + } + } finally { + UnlockUpdates (); + } + } + + void CollapseCurrentItem () + { + try { + LockUpdates (); + foreach (SelectionGroup grp in GetSelectedNodesGrouped ()) { + grp.SavePositions (); + foreach (var node in grp.Nodes) { + node.Expanded = false; + } + } + } finally { + UnlockUpdates (); + } + } [CommandHandler (ViewCommands.Open)] public virtual void ActivateCurrentItem () @@ -1646,6 +1676,12 @@ namespace MonoDevelop.Ide.Gui.Components } args.RetVal = true; } + if (args.Event.Key == Gdk.Key.Right || args.Event.Key == Gdk.Key.KP_Right) { + ExpandCurrentItem (); + } + if (args.Event.Key == Gdk.Key.Left || args.Event.Key == Gdk.Key.KP_Left) { + CollapseCurrentItem (); + } if (args.Event.Key == Gdk.Key.Return || args.Event.Key == Gdk.Key.KP_Enter) { ActivateCurrentItem (); |