Example #1
0
        private Task <bool> OnSearchTextEnteredAsync(ConsoleImproved prompt, ConsoleKeyEx key)
        {
            return(Task.Run(() =>
            {
                if (key.Key.Value == ConsoleKey.UpArrow || key.Key.Value == ConsoleKey.DownArrow)
                {
                    return false;
                }

                var text = ci.UserEnteredText.ToString();

                var primaryResults = shell.History.Where(x => x.CmdLine.Contains(text));
                var secondaryResults = shell.History.Where(x => x.CmdLine.Contains(text.Trim()));

                var search = new SearchHistory()
                {
                    SearchResults = primaryResults.Union(secondaryResults).Select(x => x.CmdLine).Distinct().ToList(),
                    SelectedItem = 0,
                    Term = text
                };
                RenderSearchChanges(search);
                ci.Tag = search;

                return false;
            }));
        }
Example #2
0
        private Task <bool> OnChangeSearchEntryAsync(ConsoleImproved prompt, ConsoleKeyEx key)
        {
            return(Task.Run(() =>
            {
                if (ci.Tag is SearchHistory results)
                {
                    if (key.Key == ConsoleKey.DownArrow)
                    {
                        if (results.SelectedItem < results.SearchResults.Count - 1)
                        {
                            results.SelectedItem++;
                        }
                    }
                    else
                    {
                        if (results.SelectedItem > 0)
                        {
                            results.SelectedItem--;
                        }
                    }

                    RenderSearchChanges(results);
                    ci.Tag = results;
                }

                return false;
            }));
        }
Example #3
0
 public KeyMapping(uint aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, ConsoleKeyEx aKey)
 {
     Scancode = aScanCode;
     Value = norm;
     Shift = shift;
     Num = num;
     Caps = caps;
     ShiftCaps = shiftcaps;
     ShiftNum = shiftnum;
     Key = aKey;
     NumLockKey = aKey;
 }
Example #4
0
        /// <summary>
        /// Check if scan code matches key.
        /// </summary>
        /// <param name="ScanCode">Scan code.</param>
        /// <param name="Key">Key.</param>
        /// <returns>bool value.</returns>
        public bool ScanCodeMatchesKey(byte ScanCode, ConsoleKeyEx Key)
        {
            for (int i = 0; i < _keys.Count; i++)
            {
                if (_keys[i].Scancode == ScanCode && _keys[i].Key == Key)
                {
                    return(true);
                }
            }

            return(false);
        }
Example #5
0
 public KeyMapping(uint aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, ConsoleKeyEx aKey)
 {
     Scancode   = aScanCode;
     Value      = norm;
     Shift      = shift;
     Num        = num;
     Caps       = caps;
     ShiftCaps  = shiftcaps;
     ShiftNum   = shiftnum;
     Key        = aKey;
     NumLockKey = aKey;
 }
Example #6
0
        public void handleKeyUp(ConsoleKeyEx e)
        {
            byte b = GetKeyBit(e);

            if ((b & PAD_MASK) == PAD_MASK)
            {
                pad = (byte)(pad | (b & 0xF));
            }
            else if ((b & BUTTON_MASK) == BUTTON_MASK)
            {
                buttons = (byte)(buttons | (b & 0xF));
            }
        }
Example #7
0
        private async Task <bool> OnSearchHistoryAsync(ConsoleImproved prompt, ConsoleKeyEx key)
        {
            int oldPos = implementation.CursorTop;

            implementation.CursorLeft = 0;
            implementation.CursorTop  = implementation.WindowHeight - 2;

            // create fake shell object with a custom prompt
            var fakeShell = new Dotnet.Shell.API.Shell();

            fakeShell.History.AddRange(shell.History);
            fakeShell.Prompt = () =>
            {
                RenderSearchChanges();

                // Search) user search text
                // [1/3]: matched entry
                return("Search) ");
            };

            ci = new ConsoleImproved(implementation, fakeShell);

            ci.KeyOverrides.Where(x => x.Key.Key == ConsoleKey.UpArrow).ToList().ForEach(x => ci.KeyOverrides.Remove(x));
            ci.KeyOverrides.Where(x => x.Key.Key == ConsoleKey.DownArrow).ToList().ForEach(x => ci.KeyOverrides.Remove(x));

            ci.AddKeyOverride(ConsoleKeyEx.Any, OnSearchTextEnteredAsync);
            ci.AddKeyOverride(new ConsoleKeyEx(ConsoleKey.UpArrow), OnChangeSearchEntryAsync);
            ci.AddKeyOverride(new ConsoleKeyEx(ConsoleKey.DownArrow), OnChangeSearchEntryAsync);
            ci.AddKeyOverride(new ConsoleKeyEx(ConsoleKey.Enter), OnSelectSearchEntryAsync);

            ci.DisplayPrompt();

            // When the prompt returns, instead of executing the command we just set that
            // as what to show on screen
            var command = await ci.GetCommandAsync();

            implementation.CursorTop = implementation.WindowHeight - 2;
            implementation.Write(new string(' ', implementation.WindowWidth));
            implementation.CursorTop = implementation.WindowHeight - 1;
            implementation.Write(new string(' ', implementation.WindowWidth));

            implementation.CursorTop = oldPos;
            implementation.Write(new string(' ', implementation.WindowWidth));

            prompt.DisplayPrompt(command);

            return(false);
        }
Example #8
0
        private Task <bool> OnSelectSearchEntryAsync(ConsoleImproved prompt, ConsoleKeyEx key)
        {
            return(Task.Run(() =>
            {
                if (ci.Tag is SearchHistory search)
                {
                    if (search.SearchResults.Any())
                    {
                        ci.UserEnteredText.Clear();
                        ci.UserEnteredText.Append(search.SearchResults[search.SelectedItem]);
                    }
                }

                return false;
            }));
        }
Example #9
0
 public KeyMapping(byte aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, char altgr, char shiftaltgr, char ctrl, char shiftctrl, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
 {
     Scancode        = aScanCode;
     Value           = norm;
     Shift           = shift;
     Num             = num;
     Caps            = caps;
     ShiftCaps       = shiftcaps;
     ShiftNum        = shiftnum;
     Key             = aKey;
     NumLockKey      = aKey;
     ControlAlt      = altgr;
     Control         = ctrl;
     ControlAltShift = shiftaltgr;
     ControlShift    = shiftctrl;
     NumLockKey      = numKey;
 }
Example #10
0
 public KeyMapping(byte aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, char altgr, char shiftaltgr, char ctrl, char shiftctrl, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
 {
     Scancode = aScanCode;
     Value = norm;
     Shift = shift;
     Num = num;
     Caps = caps;
     ShiftCaps = shiftcaps;
     ShiftNum = shiftnum;
     Key = aKey;
     NumLockKey = aKey;
     ControlAlt = altgr;
     Control = ctrl;
     ControlAltShift = shiftaltgr;
     ControlShift = shiftctrl;
     NumLockKey = numKey;
 }
Example #11
0
 public KeyEvent(char keyChar, ConsoleKeyEx key, bool shift, bool alt, bool control, KeyEventType type)
 {
     this.KeyChar = keyChar;
     this.Key = key;
     this.Modifiers = (ConsoleModifiers)0;
     if (shift)
     {
         this.Modifiers |= ConsoleModifiers.Shift;
     }
     if (alt)
     {
         this.Modifiers |= ConsoleModifiers.Alt;
     }
     if (control)
     {
         this.Modifiers |= ConsoleModifiers.Control;
     }
     this.Type = type;
 }
Example #12
0
 public KeyEvent(char keyChar, ConsoleKeyEx key, bool shift, bool alt, bool control, KeyEventType type)
 {
     this.KeyChar   = keyChar;
     this.Key       = key;
     this.Modifiers = (ConsoleModifiers)0;
     if (shift)
     {
         this.Modifiers |= ConsoleModifiers.Shift;
     }
     if (alt)
     {
         this.Modifiers |= ConsoleModifiers.Alt;
     }
     if (control)
     {
         this.Modifiers |= ConsoleModifiers.Control;
     }
     this.Type = type;
 }
Example #13
0
        private byte GetKeyBit(ConsoleKeyEx e)
        {
            switch (e)
            {
            case ConsoleKeyEx.D:
            case ConsoleKeyEx.RightArrow:
                return(0x11);

            case ConsoleKeyEx.A:
            case ConsoleKeyEx.LeftArrow:
                return(0x12);

            case ConsoleKeyEx.W:
            case ConsoleKeyEx.UpArrow:
                return(0x14);

            case ConsoleKeyEx.S:
            case ConsoleKeyEx.DownArrow:
                return(0x18);

            case ConsoleKeyEx.J:
            case ConsoleKeyEx.Z:
                return(0x21);

            case ConsoleKeyEx.K:
            case ConsoleKeyEx.X:
                return(0x22);

            case ConsoleKeyEx.Spacebar:
            case ConsoleKeyEx.C:
                return(0x24);

            case ConsoleKeyEx.Enter:
            case ConsoleKeyEx.V:
                return(0x28);
            }
            return(0);
        }
Example #14
0
 public KeyMapping(byte aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, char altgr, char shiftaltgr, char ctrl, char shiftctrl, ConsoleKeyEx aKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, altgr, shiftaltgr, ctrl, shiftctrl, aKey, aKey)
 {
 }
Example #15
0
        private async Task <bool> OnSearchHistoryAltModeAsync(ConsoleImproved prompt, ConsoleKeyEx key)
        {
            await console.SaveAsync();

            var command = await this.RunInterfaceAsync(prompt.Shell.History);

            await console.RestoreAsync();

            prompt.DisplayPrompt(command);

            return(false);
        }
Example #16
0
 public KeyMapping(uint aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, aKey)
 {
     NumLockKey = numKey;
 }
Example #17
0
 public KeyMapping(uint aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, aKey)
 {
     NumLockKey = numKey;
 }
Example #18
0
 public KeyMapping(byte aScanCode, ConsoleKeyEx aKey)
     : this(aScanCode, '\0', '\0', '\0', '\0', '\0', '\0', aKey)
 {
 }
Example #19
0
 public KeyMapping(byte aScanCode, char num, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
     : this(aScanCode, '\0', '\0', num, '\0', '\0', '\0', aKey, numKey)
 {
 }
Example #20
0
 public KeyMapping(byte aScanCode, ConsoleKeyEx aKey)
     : this(aScanCode, '\0', '\0', '\0', '\0', '\0', '\0', aKey)
 {
 }
Example #21
0
        public static ConsoleKey ToConsoleKey(this ConsoleKeyEx keyEx)
        {
            switch (keyEx)
            {
            case ConsoleKeyEx.NoName:
                return(ConsoleKey.NoName);

            case ConsoleKeyEx.Escape:
                return(ConsoleKey.Escape);

            case ConsoleKeyEx.F1:
                return(ConsoleKey.F1);

            case ConsoleKeyEx.F2:
                return(ConsoleKey.F2);

            case ConsoleKeyEx.F3:
                return(ConsoleKey.F3);

            case ConsoleKeyEx.F4:
                return(ConsoleKey.F4);

            case ConsoleKeyEx.F5:
                return(ConsoleKey.F5);

            case ConsoleKeyEx.F6:
                return(ConsoleKey.F6);

            case ConsoleKeyEx.F7:
                return(ConsoleKey.F7);

            case ConsoleKeyEx.F8:
                return(ConsoleKey.F8);

            case ConsoleKeyEx.F9:
                return(ConsoleKey.F9);

            case ConsoleKeyEx.F10:
                return(ConsoleKey.F10);

            case ConsoleKeyEx.F11:
                return(ConsoleKey.F11);

            case ConsoleKeyEx.F12:
                return(ConsoleKey.F12);

            case ConsoleKeyEx.PrintScreen:
                return(ConsoleKey.PrintScreen);

            case ConsoleKeyEx.D1:
                return(ConsoleKey.D1);

            case ConsoleKeyEx.D2:
                return(ConsoleKey.D2);

            case ConsoleKeyEx.D3:
                return(ConsoleKey.D3);

            case ConsoleKeyEx.D4:
                return(ConsoleKey.D4);

            case ConsoleKeyEx.D5:
                return(ConsoleKey.D5);

            case ConsoleKeyEx.D6:
                return(ConsoleKey.D6);

            case ConsoleKeyEx.D7:
                return(ConsoleKey.D7);

            case ConsoleKeyEx.D8:
                return(ConsoleKey.D8);

            case ConsoleKeyEx.D9:
                return(ConsoleKey.D9);

            case ConsoleKeyEx.D0:
                return(ConsoleKey.D0);

            case ConsoleKeyEx.Backspace:
                return(ConsoleKey.Backspace);

            case ConsoleKeyEx.Tab:
                return(ConsoleKey.Tab);

            case ConsoleKeyEx.Q:
                return(ConsoleKey.Q);

            case ConsoleKeyEx.W:
                return(ConsoleKey.W);

            case ConsoleKeyEx.E:
                return(ConsoleKey.E);

            case ConsoleKeyEx.R:
                return(ConsoleKey.R);

            case ConsoleKeyEx.T:
                return(ConsoleKey.T);

            case ConsoleKeyEx.Y:
                return(ConsoleKey.Y);

            case ConsoleKeyEx.U:
                return(ConsoleKey.U);

            case ConsoleKeyEx.I:
                return(ConsoleKey.I);

            case ConsoleKeyEx.O:
                return(ConsoleKey.O);

            case ConsoleKeyEx.P:
                return(ConsoleKey.P);

            case ConsoleKeyEx.Enter:
                return(ConsoleKey.Enter);

            case ConsoleKeyEx.A:
                return(ConsoleKey.A);

            case ConsoleKeyEx.S:
                return(ConsoleKey.S);

            case ConsoleKeyEx.D:
                return(ConsoleKey.D);

            case ConsoleKeyEx.F:
                return(ConsoleKey.F);

            case ConsoleKeyEx.G:
                return(ConsoleKey.G);

            case ConsoleKeyEx.H:
                return(ConsoleKey.H);

            case ConsoleKeyEx.J:
                return(ConsoleKey.J);

            case ConsoleKeyEx.K:
                return(ConsoleKey.K);

            case ConsoleKeyEx.L:
                return(ConsoleKey.L);

            case ConsoleKeyEx.Z:
                return(ConsoleKey.Z);

            case ConsoleKeyEx.X:
                return(ConsoleKey.X);

            case ConsoleKeyEx.C:
                return(ConsoleKey.C);

            case ConsoleKeyEx.V:
                return(ConsoleKey.V);

            case ConsoleKeyEx.B:
                return(ConsoleKey.B);

            case ConsoleKeyEx.N:
                return(ConsoleKey.N);

            case ConsoleKeyEx.M:
                return(ConsoleKey.M);

            case ConsoleKeyEx.Spacebar:
                return(ConsoleKey.Spacebar);

            case ConsoleKeyEx.Insert:
                return(ConsoleKey.Insert);

            case ConsoleKeyEx.Home:
                return(ConsoleKey.Home);

            case ConsoleKeyEx.PageUp:
                return(ConsoleKey.PageUp);

            case ConsoleKeyEx.Delete:
                return(ConsoleKey.Delete);

            case ConsoleKeyEx.End:
                return(ConsoleKey.End);

            case ConsoleKeyEx.PageDown:
                return(ConsoleKey.PageDown);

            case ConsoleKeyEx.UpArrow:
                return(ConsoleKey.UpArrow);

            case ConsoleKeyEx.DownArrow:
                return(ConsoleKey.DownArrow);

            case ConsoleKeyEx.LeftArrow:
                return(ConsoleKey.LeftArrow);

            case ConsoleKeyEx.RightArrow:
                return(ConsoleKey.RightArrow);

            case ConsoleKeyEx.Sleep:
                return(ConsoleKey.Sleep);

            default:
                throw new Exception("KeyEx not implemented!");
            }
        }
Example #22
0
 public KeyMapping(byte aScanCode, char num, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
     : this(aScanCode, '\0', '\0', num, '\0', '\0', '\0', aKey, numKey)
 {
 }
Example #23
0
 public KeyMapping(byte aScanCode, int norm, int shift, int num, int caps, int shiftcaps, int shiftnum, ConsoleKeyEx aKey)
     : this(aScanCode, (char)norm, (char)shift, (char)num, (char)caps, (char)shiftcaps, (char)shiftnum, aKey)
 {
 }
Example #24
0
 public KeyMapping(byte aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, '\0', aKey, numKey)
 {
 }
Example #25
0
 public KeyMapping(byte aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, char altgr, char shiftaltgr, char ctrl, char shiftctrl, ConsoleKeyEx aKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, altgr, shiftaltgr, ctrl, shiftctrl, aKey, aKey)
 {
 }
Example #26
0
 public KeyMapping(byte aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, ConsoleKeyEx aKey, ConsoleKeyEx numKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, '\0', aKey, numKey)
 {
 }
Example #27
0
 public KeyMapping(byte aScanCode, int norm, int shift, int num, int caps, int shiftcaps, int shiftnum, ConsoleKeyEx aKey)
     : this(aScanCode, (char)norm, (char)shift, (char)num, (char)caps, (char)shiftcaps, (char)shiftnum, aKey)
 {
 }
Example #28
0
 public KeyMapping(uint aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, char altgr, ConsoleKeyEx aKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, altgr, '\0', '\0', '\0', aKey)
 {
 }
Example #29
0
 public KeyMapping(byte aScanCode, char n, ConsoleKeyEx aKey)
     : this(aScanCode, n, n, n, n, n, n, aKey)
 {
 }
Example #30
0
        public static ConsoleKey ToConsoleKey(this ConsoleKeyEx keyEx)
        {
            switch (keyEx)
            {
            case ConsoleKeyEx.NoName:
                return(ConsoleKey.NoName);

            case ConsoleKeyEx.Escape:
                return(ConsoleKey.Escape);

            case ConsoleKeyEx.F1:
                return(ConsoleKey.F1);

            case ConsoleKeyEx.F2:
                return(ConsoleKey.F2);

            case ConsoleKeyEx.F3:
                return(ConsoleKey.F3);

            case ConsoleKeyEx.F4:
                return(ConsoleKey.F4);

            case ConsoleKeyEx.F5:
                return(ConsoleKey.F5);

            case ConsoleKeyEx.F6:
                return(ConsoleKey.F6);

            case ConsoleKeyEx.F7:
                return(ConsoleKey.F7);

            case ConsoleKeyEx.F8:
                return(ConsoleKey.F8);

            case ConsoleKeyEx.F9:
                return(ConsoleKey.F9);

            case ConsoleKeyEx.F10:
                return(ConsoleKey.F10);

            case ConsoleKeyEx.F11:
                return(ConsoleKey.F11);

            case ConsoleKeyEx.F12:
                return(ConsoleKey.F12);

            case ConsoleKeyEx.PrintScreen:
                return(ConsoleKey.PrintScreen);

            case ConsoleKeyEx.D1:
                return(ConsoleKey.D1);

            case ConsoleKeyEx.D2:
                return(ConsoleKey.D2);

            case ConsoleKeyEx.D3:
                return(ConsoleKey.D3);

            case ConsoleKeyEx.D4:
                return(ConsoleKey.D4);

            case ConsoleKeyEx.D5:
                return(ConsoleKey.D5);

            case ConsoleKeyEx.D6:
                return(ConsoleKey.D6);

            case ConsoleKeyEx.D7:
                return(ConsoleKey.D7);

            case ConsoleKeyEx.D8:
                return(ConsoleKey.D8);

            case ConsoleKeyEx.D9:
                return(ConsoleKey.D9);

            case ConsoleKeyEx.D0:
                return(ConsoleKey.D0);

            case ConsoleKeyEx.Backspace:
                return(ConsoleKey.Backspace);

            case ConsoleKeyEx.Tab:
                return(ConsoleKey.Tab);

            case ConsoleKeyEx.Q:
                return(ConsoleKey.Q);

            case ConsoleKeyEx.W:
                return(ConsoleKey.W);

            case ConsoleKeyEx.E:
                return(ConsoleKey.E);

            case ConsoleKeyEx.R:
                return(ConsoleKey.R);

            case ConsoleKeyEx.T:
                return(ConsoleKey.T);

            case ConsoleKeyEx.Y:
                return(ConsoleKey.Y);

            case ConsoleKeyEx.U:
                return(ConsoleKey.U);

            case ConsoleKeyEx.I:
                return(ConsoleKey.I);

            case ConsoleKeyEx.O:
                return(ConsoleKey.O);

            case ConsoleKeyEx.P:
                return(ConsoleKey.P);

            case ConsoleKeyEx.Enter:
                return(ConsoleKey.Enter);

            case ConsoleKeyEx.A:
                return(ConsoleKey.A);

            case ConsoleKeyEx.S:
                return(ConsoleKey.S);

            case ConsoleKeyEx.D:
                return(ConsoleKey.D);

            case ConsoleKeyEx.F:
                return(ConsoleKey.F);

            case ConsoleKeyEx.G:
                return(ConsoleKey.G);

            case ConsoleKeyEx.H:
                return(ConsoleKey.H);

            case ConsoleKeyEx.J:
                return(ConsoleKey.J);

            case ConsoleKeyEx.K:
                return(ConsoleKey.K);

            case ConsoleKeyEx.L:
                return(ConsoleKey.L);

            case ConsoleKeyEx.Z:
                return(ConsoleKey.Z);

            case ConsoleKeyEx.X:
                return(ConsoleKey.X);

            case ConsoleKeyEx.C:
                return(ConsoleKey.C);

            case ConsoleKeyEx.V:
                return(ConsoleKey.V);

            case ConsoleKeyEx.B:
                return(ConsoleKey.B);

            case ConsoleKeyEx.N:
                return(ConsoleKey.N);

            case ConsoleKeyEx.M:
                return(ConsoleKey.M);

            case ConsoleKeyEx.Spacebar:
                return(ConsoleKey.Spacebar);

            case ConsoleKeyEx.Insert:
                return(ConsoleKey.Insert);

            case ConsoleKeyEx.Home:
                return(ConsoleKey.Home);

            case ConsoleKeyEx.PageUp:
                return(ConsoleKey.PageUp);

            case ConsoleKeyEx.Delete:
                return(ConsoleKey.Delete);

            case ConsoleKeyEx.End:
                return(ConsoleKey.End);

            case ConsoleKeyEx.PageDown:
                return(ConsoleKey.PageDown);

            case ConsoleKeyEx.UpArrow:
                return(ConsoleKey.UpArrow);

            case ConsoleKeyEx.DownArrow:
                return(ConsoleKey.DownArrow);

            case ConsoleKeyEx.LeftArrow:
                return(ConsoleKey.LeftArrow);

            case ConsoleKeyEx.RightArrow:
                return(ConsoleKey.RightArrow);

            case ConsoleKeyEx.Sleep:
                return(ConsoleKey.Sleep);

            case ConsoleKeyEx.BiggerThan:
            case ConsoleKeyEx.Period:
                return(ConsoleKey.OemPeriod);

            case ConsoleKeyEx.LowerThan:
            case ConsoleKeyEx.Comma:
                return(ConsoleKey.OemComma);

            case ConsoleKeyEx.NumPeriod:
                return(ConsoleKey.Decimal);

            case ConsoleKeyEx.NumPlus:
                return(ConsoleKey.Add);

            case ConsoleKeyEx.NumEnter:
                return(ConsoleKey.Enter);

            case ConsoleKeyEx.Backslash:
                return(ConsoleKey.Oem5);

            case ConsoleKeyEx.LBracket:
                return(ConsoleKey.Oem4);

            case ConsoleKeyEx.RBracket:
                return(ConsoleKey.Oem6);

            case ConsoleKeyEx.Minus:
                return(ConsoleKey.OemMinus);

            case ConsoleKeyEx.Apostrophe:
                return(ConsoleKey.Oem7);

            case ConsoleKeyEx.Slash:
                return(ConsoleKey.Oem2);

            case ConsoleKeyEx.Equal:
                return(ConsoleKey.OemPlus);

            case ConsoleKeyEx.Backquote:
                return(ConsoleKey.Oem3);

            case ConsoleKeyEx.Semicolon:
            case ConsoleKeyEx.Colon:
                return(ConsoleKey.Oem1);

            case ConsoleKeyEx.OEM102:
                return(ConsoleKey.Oem102);

            default:
                throw new Exception("KeyEx not implemented!");
            }
        }
Example #31
0
        public bool ScanCodeMatchesKey(byte ScanCode, ConsoleKeyEx Key)
        {
            for (int i = 0; i < _keys.Count; i++)
            {
                if (_keys[i].Scancode == ScanCode && _keys[i].Key == Key)
                {
                    return true;
                }
            }

            return false;
        }
Example #32
0
        private static async Task <bool> OnSearchHistoryTmuxModeAsync(ConsoleImproved prompt, ConsoleKeyEx key)
        {
            ProcessEx tmuxPopup = null;

            var result = HistoryAPI.ListenForSearchResultAsync((port, token) => {
                var cssCommand  = string.Format(Settings.Default.HistoryPopupCommand, API.Shell.AssemblyLocation, port, token);
                var tmuxCommand = string.Format(Settings.Default.PopupCommand, cssCommand);

                // start tmux prompt
                tmuxPopup = OS.Exec(tmuxCommand);
            });

            await tmuxPopup.WaitForExitAsync();

            tmuxPopup.Dispose();

            await Task.WhenAny(result, Task.Delay(1000));

            if (result.IsCompletedSuccessfully)
            {
                prompt.DisplayPrompt(await result);
            }
            else
            {
                prompt.DisplayPrompt("Error");
            }

            return(false);
        }
Example #33
0
 public KeyMapping(byte aScanCode, char n, ConsoleKeyEx aKey)
     : this(aScanCode, n, n, n, n, n, n, aKey)
 {
 }
Example #34
0
 public KeyMapping(uint aScanCode, char norm, char shift, char num, char caps, char shiftcaps, char shiftnum, char altgr, ConsoleKeyEx aKey)
     : this(aScanCode, norm, shift, num, caps, shiftcaps, shiftnum, altgr, '\0', '\0', '\0', aKey)
 {
 }