protected override void OnKeyPress(KeyPressEventArgs args) { base.OnKeyPress(args); var e = args.uwfKeyArgs; if (e.Modifiers == Keys.None) { switch (e.KeyCode) { case Keys.Space: case Keys.Return: if (SelectedNode != null) { SelectedNode.Toggle(); } break; case Keys.Down: _SelectNext(); break; case Keys.Left: if (SelectedNode != null) { SelectedNode.Collapse(); } break; case Keys.Right: if (SelectedNode != null) { SelectedNode.Expand(); } break; case Keys.Up: _SelectPrevious(); break; } } char c = KeyHelper.GetLastInputChar(); if (char.IsLetterOrDigit(c) || char.IsPunctuation(c)) { filter += c; resetFilterTime = 3; // sec. SelectNodeWText(filter); } }
protected override void OnKeyPress(KeyEventArgs e) { base.OnKeyPress(e); if (e.Modifiers == UnityEngine.EventModifiers.None) { switch (e.KeyCode) { case UnityEngine.KeyCode.Space: case UnityEngine.KeyCode.Return: if (SelectedNode != null) { SelectedNode.Toggle(); } break; case UnityEngine.KeyCode.DownArrow: _SelectNext(); break; case UnityEngine.KeyCode.LeftArrow: if (SelectedNode != null) { SelectedNode.Collapse(); } break; case UnityEngine.KeyCode.RightArrow: if (SelectedNode != null) { SelectedNode.Expand(); } break; case UnityEngine.KeyCode.UpArrow: _SelectPrevious(); break; } } char c = KeyHelper.GetLastInputChar(); if (char.IsLetterOrDigit(c) || char.IsPunctuation(c)) { _filter += c; _resetFilterTime = 3; // sec. SelectNodeWText(_filter); } }
/// <summary> /// /// </summary> /// <param name="m"></param> protected override void WndProc(ref Message m) { // Suppress WM_LBUTTONDBLCLK if (m.Msg == 0x203) { m.Result = IntPtr.Zero; //the first click of the double click will select the node, if it's clicked on the body. if (SelectedNode != null && !nodeLastClickedOnCheckBox) { SelectedNode.Toggle(); } } else { base.WndProc(ref m); } }
protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.Modifiers == Keys.None) { switch (e.KeyCode) { case Keys.Space: case Keys.Return: if (SelectedNode != null) { SelectedNode.Toggle(); } break; case Keys.Down: SelectNext(); break; case Keys.Left: if (SelectedNode != null) { SelectedNode.Collapse(); } break; case Keys.Right: if (SelectedNode != null) { SelectedNode.Expand(); } break; case Keys.Up: SelectPrevious(); break; case Keys.PageDown: if (nodeList.Count > 0) { var lNodesOnScreen = nodesOnScreen; var nextIndex = 0; if (SelectedNode != null) { nextIndex = nodeList.IndexOf(SelectedNode); } nextIndex = MathHelper.Clamp(nextIndex + lNodesOnScreen, 0, nodeList.Count - 1); SelectedNode = nodeList[nextIndex]; } break; case Keys.PageUp: if (nodeList.Count > 0) { var lNodesOnScreen = nodesOnScreen; var nextIndex = 0; if (SelectedNode != null) { nextIndex = nodeList.IndexOf(SelectedNode); } nextIndex = MathHelper.Clamp(nextIndex - lNodesOnScreen, 0, nodeList.Count - 1); SelectedNode = nodeList[nextIndex]; } break; case Keys.End: if (nodeList.Count > 0) { SelectedNode = nodeList[nodeList.Count - 1]; } break; case Keys.Home: if (nodeList.Count > 0) { SelectedNode = nodeList[0]; } break; } } else if (e.Control) { switch (e.KeyCode) { case Keys.Down: if (uwfVScrollBar.Visible) { uwfVScrollBar.DoScroll(ScrollEventType.SmallIncrement); } break; case Keys.Up: if (uwfVScrollBar.Visible) { uwfVScrollBar.DoScroll(ScrollEventType.SmallDecrement); } break; } } char c = KeyHelper.GetLastInputChar(); if (char.IsLetterOrDigit(c) || char.IsPunctuation(c)) { filter += c; resetFilterTime = 3; // sec. SelectNodeWText(filter); } }