Browse Source

SharpTreeView: add ActivateItem() [double-click support]

pull/1/head
Daniel Grunwald 15 years ago
parent
commit
495d86f69c
  1. 7
      SharpTreeView/SharpTreeNode.cs
  2. 15
      SharpTreeView/SharpTreeViewItem.cs

7
SharpTreeView/SharpTreeNode.cs

@ -609,5 +609,12 @@ namespace ICSharpCode.TreeView @@ -609,5 +609,12 @@ namespace ICSharpCode.TreeView
}
#endregion
/// <summary>
/// Gets called when the item is double-clicked.
/// </summary>
public virtual void ActivateItem(RoutedEventArgs e)
{
}
}
}

15
SharpTreeView/SharpTreeViewItem.cs

@ -65,6 +65,7 @@ namespace ICSharpCode.TreeView @@ -65,6 +65,7 @@ namespace ICSharpCode.TreeView
Point startPoint;
bool wasSelected;
bool wasDoubleClick;
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
@ -78,9 +79,7 @@ namespace ICSharpCode.TreeView @@ -78,9 +79,7 @@ namespace ICSharpCode.TreeView
CaptureMouse();
if (e.ClickCount == 2) {
if (!Node.IsRoot || ParentTreeView.ShowRootExpander) {
Node.IsExpanded = !Node.IsExpanded;
}
wasDoubleClick = true;
}
}
}
@ -101,6 +100,16 @@ namespace ICSharpCode.TreeView @@ -101,6 +100,16 @@ namespace ICSharpCode.TreeView
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
if (wasDoubleClick) {
wasDoubleClick = false;
Node.ActivateItem(e);
if (!e.Handled) {
if (!Node.IsRoot || ParentTreeView.ShowRootExpander) {
Node.IsExpanded = !Node.IsExpanded;
}
}
}
ReleaseMouseCapture();
if (wasSelected) {
base.OnMouseLeftButtonDown(e);

Loading…
Cancel
Save