Example #1
0
        /// <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);
        }
Example #2
0
 /// <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);
Example #3
0
 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));
 }
Example #4
0
 /// <param name="key">Key data.</param>
 public KeyEventArgs(KeyInfo key)
 {
     _key = key;
 }
Example #5
0
 /// <param name="key">Key data.</param>
 public KeyEventArgs(KeyInfo key)
 {
     _key = key;
 }
Example #6
0
        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;
        }
Example #7
0
        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);
        }
Example #8
0
        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;
            }
        }
Example #9
0
        /// <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);
        }
Example #10
0
 /// <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);