Browse Source

Part of #234: Keyboard shortcuts now working in XmlEditor's tree view.

pull/516/head
Andreas Weizel 11 years ago
parent
commit
fc284a5d16
  1. 17
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeViewContainerControl.cs
  2. 22
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeViewControl.cs

17
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeViewContainerControl.cs

@ -667,11 +667,20 @@ namespace ICSharpCode.XmlEditor
} }
/// <summary> /// <summary>
/// Deletes the selected node. /// Handles a keyboard press event in tree view.
/// </summary> /// </summary>
protected void XmlElementTreeViewDeleteKeyPressed(object source, EventArgs e) protected void XmlElementTreeViewKeyPressed(object source, XmlTreeViewKeyPressedEventArgs e)
{ {
Delete(); if (e.KeyData == Keys.Delete)
Delete();
else if (e.KeyData == (Keys.Control | Keys.C))
Copy();
else if (e.KeyData == (Keys.Control | Keys.X))
Cut();
else if (e.KeyData == (Keys.Control | Keys.V))
Paste();
else if (e.KeyData == (Keys.Control | Keys.A))
SelectAll();
} }
#region Forms Designer generated code #region Forms Designer generated code
@ -738,7 +747,7 @@ namespace ICSharpCode.XmlEditor
this.xmlElementTreeView.Size = new System.Drawing.Size(185, 326); this.xmlElementTreeView.Size = new System.Drawing.Size(185, 326);
this.xmlElementTreeView.TabIndex = 0; this.xmlElementTreeView.TabIndex = 0;
this.xmlElementTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.XmlElementTreeViewAfterSelect); this.xmlElementTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.XmlElementTreeViewAfterSelect);
this.xmlElementTreeView.DeleteKeyPressed += new System.EventHandler(this.XmlElementTreeViewDeleteKeyPressed); this.xmlElementTreeView.TreeViewKeyPressed += this.XmlElementTreeViewKeyPressed;
// //
// attributesGrid // attributesGrid
// //

22
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeViewControl.cs

@ -26,6 +26,20 @@ using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.XmlEditor namespace ICSharpCode.XmlEditor
{ {
public class XmlTreeViewKeyPressedEventArgs : EventArgs
{
public XmlTreeViewKeyPressedEventArgs(Keys keyData)
{
KeyData = keyData;
}
public Keys KeyData
{
get;
private set;
}
}
/// <summary> /// <summary>
/// Displays a tree of XML elements. This is a separate control so it can /// Displays a tree of XML elements. This is a separate control so it can
/// be unit tested. It has no SharpDevelop specific parts, for example, /// be unit tested. It has no SharpDevelop specific parts, for example,
@ -43,9 +57,9 @@ namespace ICSharpCode.XmlEditor
} }
/// <summary> /// <summary>
/// Raised when the delete key is pressed. /// Raised when some key in tree view is pressed.
/// </summary> /// </summary>
public event EventHandler DeleteKeyPressed; public event EventHandler<XmlTreeViewKeyPressedEventArgs> TreeViewKeyPressed;
public XmlTreeViewControl() public XmlTreeViewControl()
{ {
@ -332,8 +346,8 @@ namespace ICSharpCode.XmlEditor
/// </summary> /// </summary>
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{ {
if (keyData == Keys.Delete && DeleteKeyPressed != null) { if (/*keyData == Keys.Delete && */TreeViewKeyPressed != null) {
DeleteKeyPressed(this, new EventArgs()); TreeViewKeyPressed(this, new XmlTreeViewKeyPressedEventArgs(keyData));
} }
return base.ProcessCmdKey(ref msg, keyData); return base.ProcessCmdKey(ref msg, keyData);
} }

Loading…
Cancel
Save