/// <inheritdoc/> public override bool UIKeyPressed(KeyInfo key) { if (key == null) throw new ArgumentNullException("key"); switch (key.VirtualKeyCode) { case KeyCode.LeftArrow: { if (!key.Is() && !key.IsAlt() || Far.Api.CommandLine.Length > 0) break; FarFile file = CurrentFile; if (file == null) break; TreeFile node = (TreeFile)file; if (node._State == 1) { // reset if (key.IsAlt()) { node.ChildFiles.Clear(); node._State = 0; UpdateRedraw(false); return true; } // collapse OpenFile(file); } else if (node.Parent != null) { PostFile(node.Parent); Redraw(); } return true; } case KeyCode.RightArrow: { if (!key.Is() && !key.IsAlt() || Far.Api.CommandLine.Length > 0) break; FarFile file = CurrentFile; if (file == null) break; TreeFile node = (TreeFile)file; if (node != null && node._State != 1 && node.IsNode) { // reset if (key.IsAlt()) { node.ChildFiles.Clear(); node._State = 0; } // open OpenFile(file); } else { // go to next Redraw(CurrentIndex + 1, -1); } return true; } } // base return base.UIKeyPressed(key); }
/// <summary> /// Converts a <see cref="KeyInfo"/> to its string representation. Returns null on errors. /// </summary> /// <param name="key">The key info to convert.</param> public abstract string KeyInfoToName(KeyInfo key);
public override PS.KeyInfo ReadKey(PS.ReadKeyOptions options) { FarNet.KeyInfo k = Far.Api.UI.ReadKey((FarNet.ReadKeyOptions)options); return(new PS.KeyInfo((int)k.VirtualKeyCode, k.Character, (PS.ControlKeyStates)k.ControlKeyState, k.KeyDown)); }
/// <param name="key">Key data.</param> public KeyEventArgs(KeyInfo key) { _key = key; }
public virtual bool UIKeyPressed(KeyInfo key) { if (key == null) throw new ArgumentNullException("key"); switch (key.VirtualKeyCode) { case KeyCode.Enter: if (key.Is()) { if (RealNames) break; var file = CurrentFile; if (file == null || file.IsDirectory) break; UIOpenFile(file); return true; } break; case KeyCode.F3: if (key.Is()) { if (RealNames) break; var file = CurrentFile; if (file == null || file.IsDirectory) break; UIViewFile(file); return true; } break; case KeyCode.F4: if (key.Is()) { if (RealNames) break; var file = CurrentFile; if (file == null || file.IsDirectory) break; UIEditFile(file); return true; } break; case KeyCode.F5: if (key.Is()) { if (NeedDefaultCopy()) return false; UICopyMove(false); return true; } if (key.IsShift()) //???? if (RealNames) ? { //! return true even if the file is dots UIClone(); return true; } break; case KeyCode.F6: if (key.Is()) { if (NeedDefaultCopy()) return false; UICopyMove(true); return true; } if (key.IsShift()) //???? if (RealNames) ? { //! return true even if the file is dots UIRename(); return true; } break; case KeyCode.F7: if (key.Is()) { if (RealNames && RealNamesMakeDirectory) break; UICreate(); return true; } break; case KeyCode.Delete: if (Far.Api.CommandLine.Length > 0) break; goto case KeyCode.F8; case KeyCode.F8: if (key.Is() || key.IsShift()) { if (RealNames && RealNamesDeleteFiles) break; UIDelete(key.IsShift()); return true; } break; case KeyCode.PageDown: if (key.Is()) { int currentIndex; FarFile currentFile; if (PageLimit > 0 && (currentIndex = CurrentIndex) >= ShownList.Count - 1 && null != (currentFile = CurrentFile) && currentFile.Name != "..") { int topIndex = TopIndex; PageOffset += PageLimit; NeedsNewFiles = true; Update(false); Redraw(currentIndex, topIndex); return true; } } break; case KeyCode.PageUp: if (key.Is()) { if (PageLimit > 0 && CurrentIndex == 0) { PageOffset -= PageLimit; if (PageOffset < 0) PageOffset = 0; NeedsNewFiles = true; Update(false); Redraw(0, 0); return true; } } break; } return false; }
public virtual bool UIKeyPressed(KeyInfo key) { if (key == null) { throw new ArgumentNullException("key"); } switch (key.VirtualKeyCode) { case KeyCode.Enter: if (key.Is()) { if (RealNames) { break; } var file = CurrentFile; if (file == null || file.IsDirectory) { break; } UIOpenFile(file); return(true); } break; case KeyCode.F3: if (key.Is()) { if (RealNames) { break; } var file = CurrentFile; if (file == null || file.IsDirectory) { break; } UIViewFile(file); return(true); } break; case KeyCode.F4: if (key.Is()) { if (RealNames) { break; } var file = CurrentFile; if (file == null || file.IsDirectory) { break; } UIEditFile(file); return(true); } break; case KeyCode.F5: if (key.Is()) { if (NeedDefaultCopy()) { return(false); } UICopyMove(false); return(true); } if (key.IsShift()) //???? if (RealNames) ? { //! return true even if the file is dots UIClone(); return(true); } break; case KeyCode.F6: if (key.Is()) { if (NeedDefaultCopy()) { return(false); } UICopyMove(true); return(true); } if (key.IsShift()) //???? if (RealNames) ? { //! return true even if the file is dots UIRename(); return(true); } break; case KeyCode.F7: if (key.Is()) { if (RealNames && RealNamesMakeDirectory) { break; } UICreate(); return(true); } break; case KeyCode.Delete: if (Far.Api.CommandLine.Length > 0) { break; } goto case KeyCode.F8; case KeyCode.F8: if (key.Is() || key.IsShift()) { if (RealNames && RealNamesDeleteFiles) { break; } UIDelete(key.IsShift()); return(true); } break; case KeyCode.PageDown: if (key.Is()) { int currentIndex; FarFile currentFile; if (PageLimit > 0 && (currentIndex = CurrentIndex) >= ShownList.Count - 1 && null != (currentFile = CurrentFile) && currentFile.Name != "..") { int topIndex = TopIndex; PageOffset += PageLimit; NeedsNewFiles = true; Update(false); Redraw(currentIndex, topIndex); return(true); } } break; case KeyCode.PageUp: if (key.Is()) { if (PageLimit > 0 && CurrentIndex == 0) { PageOffset -= PageLimit; if (PageOffset < 0) { PageOffset = 0; } NeedsNewFiles = true; Update(false); Redraw(0, 0); return(true); } } break; } return(false); }
public override bool UIKeyPressed(KeyInfo key) { if (key == null) throw new ArgumentNullException("key"); UserWants = UserAction.None; try { switch (key.VirtualKeyCode) { case KeyCode.Enter: if (key.Is()) { FarFile file = CurrentFile; if (file == null) break; UserWants = UserAction.Enter; if (file.IsDirectory && !IgnoreDirectoryFlag) break; UIOpenFile(file); return true; } if (key.IsShift()) { UIAttributes(); return true; } break; case KeyCode.F1: if (key.Is()) { UIHelp(); return true; } break; case KeyCode.F3: if (key.Is()) { if (CurrentFile == null) { UIViewAll(); return true; } break; } if (key.IsShift()) { ShowMenu(); return true; } break; case KeyCode.PageDown: if (key.IsCtrl()) { UIOpenFileMembers(); return true; } break; case KeyCode.A: if (key.IsCtrl()) { UIAttributes(); return true; } break; case KeyCode.G: if (key.IsCtrl()) { UIApply(); return true; } break; case KeyCode.M: if (key.IsCtrlShift()) { UIMode(); return true; } break; case KeyCode.S: //! Mantis#2635 Ignore if auto-completion menu is opened if (key.IsCtrl() && Far.Api.Window.Kind != WindowKind.Menu) { SaveData(); return true; } break; } // base return base.UIKeyPressed(key); } finally { UserWants = UserAction.None; } }
/// <inheritdoc/> public override bool UIKeyPressed(KeyInfo key) { if (key == null) throw new ArgumentNullException("key"); switch (key.VirtualKeyCode) { case KeyCode.Delete: case KeyCode.F8: if (key.IsShift()) { UISetNulls(); return true; } break; } // base return base.UIKeyPressed(key); }