Example #1
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;
            }
        }