protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            if (_keyCommands.Count == 0)
            {
                var selector = new ObjCRuntime.Selector(KeySelector);

                for (var i = 0; i < 10; i++)
                {
                    _keyCommands.Add(UIKeyCommand.Create((NSString)i.ToString(), 0, selector));
                    _keyCommands.Add(UIKeyCommand.Create((NSString)i.ToString(), UIKeyModifierFlags.NumericPad, selector));
                }

                for (var i = 0; i < 26; i++)
                {
                    var key = (char)('a' + i);
                    _keyCommands.Add(UIKeyCommand.Create((NSString)key.ToString(), 0, selector));
                }

                // Viewable on iPad (>= iOS 9) when holding down ⌘
                _keyCommands.Add(UIKeyCommand.Create(new NSString("x"), UIKeyModifierFlags.Command, selector, new NSString("Cut")));
                _keyCommands.Add(UIKeyCommand.Create(new NSString("c"), UIKeyModifierFlags.Command, selector, new NSString("Copy")));
                _keyCommands.Add(UIKeyCommand.Create(new NSString("v"), UIKeyModifierFlags.Command, selector, new NSString("Paste")));

                foreach (var kc in _keyCommands)
                {
                    AddKeyCommand(kc);
                }
            }
        }
Exemplo n.º 2
0
        static UIKeyCommand UIKeyCommandFrom(NSString nsInput, HardwareKeyModifierKeys modifier, string descriptiveText)
        {
            var flags = UIKeyModifierFlagsFrom(modifier);

            return(string.IsNullOrWhiteSpace(descriptiveText)
                ? UIKeyCommand.Create(nsInput, flags, _onKeyPressSelector)
                : UIKeyCommand.Create(nsInput, flags, _onKeyPressSelector, new NSString(descriptiveText)));
        }
Exemplo n.º 3
0
 public CEditorController()
 {
     AddKeyCommand(UIKeyCommand.Create(new NSString("]"), UIKeyModifierFlags.Command, new ObjCRuntime.Selector("indent:"), new NSString("Indent".Localize())));
     AddKeyCommand(UIKeyCommand.Create(new NSString("["), UIKeyModifierFlags.Command, new ObjCRuntime.Selector("outdent:"), new NSString("Outdent".Localize())));
     AddKeyCommand(UIKeyCommand.Create(new NSString("/"), UIKeyModifierFlags.Command, new ObjCRuntime.Selector("toggleComment:"), new NSString("Toggle Comment".Localize())));
     AddKeyCommand(UIKeyCommand.Create(new NSString("="), UIKeyModifierFlags.Command, new ObjCRuntime.Selector("increaseFontSize:"), new NSString("Increase Font Size".Localize())));
     AddKeyCommand(UIKeyCommand.Create(new NSString("-"), UIKeyModifierFlags.Command, new ObjCRuntime.Selector("decreaseFontSize:"), new NSString("Decrease Font Size".Localize())));
     AddKeyCommand(UIKeyCommand.Create(new NSString("0"), UIKeyModifierFlags.Command, new ObjCRuntime.Selector("restoreFontSize:"), new NSString("Restore Font Size".Localize())));
 }
Exemplo n.º 4
0
        private void KeyCommand(UIKeyCommand keyCommand)
        {
            if (keyCommand == null)
            {
                return;
            }

            if (_keyCommands.Contains(keyCommand))
            {
                if (keyCommand.ModifierFlags == UIKeyModifierFlags.Command)
                {
                    switch (keyCommand.Input.ToString())
                    {
                    case HardwareInput.CopyCharacter:
                        Page?.OnKeyCommand(Controls.KeyCommand.Copy);
                        break;

                    case HardwareInput.PasteCharacter:
                        Page?.OnKeyCommand(Controls.KeyCommand.Paste);
                        break;

                    case HardwareInput.RootCharacter:
                        Page?.OnKeyCommand(Controls.KeyCommand.RootOperator);
                        break;
                    }
                }
                else if (keyCommand.Input == _enterKey ||
                         keyCommand.Input == HardwareInput.ResultOperator)
                {
                    Page?.OnKeyCommand(Controls.KeyCommand.Calculate);
                }
                else if (keyCommand.Input == _backspaceKey)
                {
                    Page?.OnKeyCommand(Controls.KeyCommand.Delete);
                }
                else if (char.TryParse(keyCommand.Input, out var keyCharacter))
                {
                    var handled = false;
                    var keyCharacterAsString = keyCharacter.ToString();

                    if (char.IsDigit(keyCharacter))
                    {
                        handled = true;
                    }
                    else if (HardwareInput.ParenthesesDecimalSeparatorsAndOperators.Contains(keyCharacterAsString))
                    {
                        handled = true;
                    }

                    if (handled)
                    {
                        Page?.OnKeyUp(keyCharacter);
                    }
                }
            }
        }
Exemplo n.º 5
0
        void IKeyPressReceiver.ProcessKey(UIKeyCommand cmd)
        {
            var keyCombination = new KeyCombination(cmd);

            if (_actions.ContainsKey(keyCombination))
            {
                foreach (var action in _actions[keyCombination].ToArray())
                {
                    action();
                }
            }
        }
        public override void DidPressArrowKey(UIKeyCommand sender)
        {
            base.DidPressArrowKey(sender);

            var keyCommand = (UIKeyCommand)sender;

            if (keyCommand.Input == UIKeyCommand.UpArrow && TextView.Text.Length == 0)
            {
                var lastMessage = messages [0];
                EditText(lastMessage.Text);

                var indexPath = NSIndexPath.FromRowSection(0, 0);
                TableView.ScrollToRow(indexPath, UITableViewScrollPosition.Bottom, true);
            }
        }
        public void KeyRecv(UIKeyCommand cmd)
        {
            if (cmd == null)
            {
                return;
            }
            var inputValue = cmd.Input;

            if (inputValue == "\n" || inputValue == "\r")
            {
                SetKeyboardValue(_RecvValue);
                _RecvValue = string.Empty;
            }
            else
            {
                _RecvValue += inputValue;
            }
        }
Exemplo n.º 8
0
        public void RegisterHandler(KeyCombination combination, Action action)
        {
            if (_actions.ContainsKey(combination))
            {
                _actions[combination].Add(action);
            }
            else
            {
                var command = UIKeyCommand.Create(combination.KeyCommand, combination.ModifierFlags, new Selector(KeyCommandMethodName));

                _activeCommands.Add(command);
                _controller.AddKeyCommand(command);

                _actions.Add(combination, new List <Action>()
                {
                    action
                });
            }
        }
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            string key      = string.Empty;
            var    selector = new Selector("KeyRecv:");

            for (int i = 0; i <= 127; i++)
            {
                key = ((char)i).ToString();
                UIKeyCommand accelerator1 = UIKeyCommand.Create((NSString)key, 0, selector);
                AddKeyCommand(accelerator1);
                UIKeyCommand acceleratorShift = UIKeyCommand.Create((NSString)key, UIKeyModifierFlags.Shift, selector);
                AddKeyCommand(acceleratorShift);
            }
            UIKeyCommand accelerator2 = UIKeyCommand.Create((NSString)"\n", 0, selector);

            AddKeyCommand(accelerator2);
            UIKeyCommand accelerator3 = UIKeyCommand.Create((NSString)"\r", 0, selector);

            AddKeyCommand(accelerator3);
        }
Exemplo n.º 10
0
        protected override void OnElementChanged(VisualElementChangedEventArgs args)
        {
            base.OnElementChanged(args);

            if (!_keyCommands.Any())
            {
                var selector = new ObjCRuntime.Selector(_keySelector);

                // Add support for special commands (viewable on iPad (>= iOS 9) when holding down ⌘)
                _keyCommands.Add(UIKeyCommand.Create(new NSString(HardwareInput.CopyCharacter), UIKeyModifierFlags.Command, selector, new NSString(LocalizedStrings.Copy)));
                _keyCommands.Add(UIKeyCommand.Create(new NSString(HardwareInput.PasteCharacter), UIKeyModifierFlags.Command, selector, new NSString(LocalizedStrings.Paste)));
                _keyCommands.Add(UIKeyCommand.Create(new NSString(HardwareInput.RootCharacter), UIKeyModifierFlags.Command, selector, new NSString(LocalizedStrings.RootOperator)));

                // Add support for enter and equals key
                _keyCommands.Add(UIKeyCommand.Create((NSString)_enterKey, 0, selector));
                _keyCommands.Add(UIKeyCommand.Create((NSString)HardwareInput.ResultOperator, 0, selector));

                // Add support for backspace key
                _keyCommands.Add(UIKeyCommand.Create((NSString)_backspaceKey, 0, selector));

                // Add support for numbers
                for (var i = 0; i < 10; i++)
                {
                    _keyCommands.Add(UIKeyCommand.Create((NSString)i.ToString(), 0, selector));
                }

                // Add support for parentheses, decimal separators and operators
                foreach (var symbol in HardwareInput.ParenthesesDecimalSeparatorsAndOperators)
                {
                    _keyCommands.Add(UIKeyCommand.Create((NSString)symbol, 0, selector));
                }

                foreach (var kc in _keyCommands)
                {
                    AddKeyCommand(kc);
                }
            }
        }
Exemplo n.º 11
0
        private void KeyCommand(UIKeyCommand keyCmd)
        {
            if (keyCmd == null)
            {
                return;
            }

            if (_keyCommands.Contains(keyCmd))
            {
                if (keyCmd.ModifierFlags == UIKeyModifierFlags.Command)
                {
                    switch (keyCmd.Input.ToString())
                    {
                    case "x":
                        _page?.OnKeyCommand(Controls.KeyCommand.Cut);
                        break;

                    case "c":
                        _page?.OnKeyCommand(Controls.KeyCommand.Copy);
                        break;

                    case "v":
                        _page?.OnKeyCommand(Controls.KeyCommand.Paste);
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    var desc = $"{_page?.Name ?? string.Empty} : {nameof(KeyCommand)} : {keyCmd.Input}";
                    System.Diagnostics.Debug.WriteLine(desc);
                    _page?.OnKeyUp(keyCmd.Input, desc);
                }
            }
        }
Exemplo n.º 12
0
 private void KeyCommand(UIKeyCommand cmd)
 {
     _keyboard.CastTo <IKeyPressReceiver>().ProcessKey(cmd);
 }
Exemplo n.º 13
0
        internal static void ProcessKeyPress(UIKeyCommand cmd)
        {
            if (cmd == _lastKeyCommand)
            {
                return;
            }
            _lastKeyCommand = cmd;
            var element = HardwareKeyPage.FocusedElement ?? HardwareKeyPage.DefaultFocusedElement;

            if (element == null)
            {
                return;
            }

            //System.Diagnostics.Debug.WriteLine("Forms9Patch.PageRenderer: cmd.Input=[" + cmd.Input + "] cmd.ModifierFlags[" + cmd.ModifierFlags + "] ");

            //var isFirstResponder = CanBecomeFirstResponder;
            //var directBinding = (bool)this.GetPropertyValue("IsDirectBinding");

            string keyInput = cmd.Input.ToString().ToUpper();
            bool   useShift = true;

            if (cmd.Input == UIKeyCommand.DownArrow)
            {
                keyInput = HardwareKey.DownArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.UpArrow)
            {
                keyInput = HardwareKey.UpArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.LeftArrow)
            {
                keyInput = HardwareKey.LeftArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.RightArrow)
            {
                keyInput = HardwareKey.RightArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.Escape)
            {
                keyInput = HardwareKey.EscapeKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_BackspaceDeleteKeyInput)
            {
                keyInput = HardwareKey.BackspaceDeleteKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_ForwardDeleteKeyInput)
            {
                keyInput = HardwareKey.ForwardDeleteKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_TabKeyInput)
            {
                keyInput = HardwareKey.TabKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_EnterReturnKeyInput)
            {
                keyInput = HardwareKey.EnterReturnKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_PageUpKeyInput)
            {
                keyInput = HardwareKey.PageUpKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_PageDownKeyInput)
            {
                keyInput = HardwareKey.PageDownKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_HomeKeyInput)
            {
                keyInput = HardwareKey.HomeKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_EndKeyInput)
            {
                keyInput = HardwareKey.EndKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_InsertKeyInput)
            {
                keyInput = HardwareKey.InsertKeyInput;
            }
            else if (cmd.Input == UIKeyCommand_InputDeleteKeyInput)
            {
                keyInput = HardwareKey.ForwardDeleteKeyInput;
            }
            else
            {
                useShift = keyInput.Length > 0 && char.IsLetter(keyInput[0]);
            }

            var modifiers = GetModifierKeys(cmd.ModifierFlags, useShift);

            var listeners = element.GetHardwareKeyListeners();

            for (int i = 0; i < listeners.Count; i++)
            {
                var listener = listeners[i];
                if (string.IsNullOrEmpty(listener?.HardwareKey?.KeyInput))
                {
                    continue;
                }
                if (listener.HardwareKey.KeyInput == keyInput.ToUpper() && (listener.HardwareKey.ModifierKeys == modifiers || listener.HardwareKey.ModifierKeys.HasFlag(HardwareKeyModifierKeys.Any)))
                {
                    if (listener.Command != null && listener.Command.CanExecute(listener.CommandParameter))
                    {
                        listener.Command.Execute(listener.CommandParameter);
                    }
                    var observedHardwareKey = new HardwareKey(keyInput.ToUpper(), modifiers);
                    listener.Pressed?.Invoke(element, new HardwareKeyEventArgs(observedHardwareKey, element));
                    //System.Diagnostics.Debug.WriteLine("SUCCESS!!!");
                    return;
                }
            }
        }
Exemplo n.º 14
0
 void TabBackward(UIKeyCommand cmd) => FocusSearch(forwardDirection: false);
Exemplo n.º 15
0
 void OnKeyPress(UIKeyCommand cmd) => ProcessKeyPress(cmd);
Exemplo n.º 16
0
 private void keyPressed(UIKeyCommand cmd) => HandleKeyCommand?.Invoke(cmd);
Exemplo n.º 17
0
 public void Create()
 {
     using (var key = new NSString("a")) {
         Assert.NotNull(UIKeyCommand.Create(key, UIKeyModifierFlags.Command, new Selector("foo")), "Create");
     }
 }
        void OnKeyPress(UIKeyCommand cmd)
        {
            var element = HardwareKeyPage.FocusedElement ?? HardwareKeyPage.DefaultFocusedElement;

            if (element == null)
            {
                return;
            }

            //System.Diagnostics.Debug.WriteLine("Forms9Patch.PageRenderer: cmd.Input=[" + cmd.Input + "] cmd.ModifierFlags[" + cmd.ModifierFlags + "] ");

            //var isFirstResponder = CanBecomeFirstResponder;
            //var directBinding = (bool)this.GetPropertyValue("IsDirectBinding");

            string keyInput = cmd.Input.ToString().ToUpper();
            bool   useShift = true;

            if (cmd.Input == UIKeyCommand.DownArrow)
            {
                keyInput = HardwareKey.DownArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.UpArrow)
            {
                keyInput = HardwareKey.UpArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.LeftArrow)
            {
                keyInput = HardwareKey.LeftArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.RightArrow)
            {
                keyInput = HardwareKey.RightArrowKeyInput;
            }
            else if (cmd.Input == UIKeyCommand.Escape)
            {
                keyInput = HardwareKey.EscapeKeyInput;
            }
            else if (cmd.Input == "\b")
            {
                keyInput = HardwareKey.BackspaceDeleteKeyInput;
            }
            else if (cmd.Input == "\0x7F")
            {
                keyInput = HardwareKey.ForwardDeleteKeyInput;
            }
            else if (cmd.Input == "\t")
            {
                keyInput = HardwareKey.TabKeyInput;
            }
            else if (cmd.Input == "\r")
            {
                keyInput = HardwareKey.EnterReturnKeyInput;
            }
            else if (cmd.Input == "UIKeyInputPageUp")
            {
                keyInput = HardwareKey.PageUpKeyInput;
            }
            else if (cmd.Input == "UIKeyInputPageDown")
            {
                keyInput = HardwareKey.PageDownKeyInput;
            }
            else if (cmd.Input == "UIKeyInputHome")
            {
                keyInput = HardwareKey.HomeKeyInput;
            }
            else if (cmd.Input == "UIKeyInputEnd")
            {
                keyInput = HardwareKey.EndKeyInput;
            }
            else if (cmd.Input == "UIKeyInputInsert")
            {
                keyInput = HardwareKey.InsertKeyInput;
            }
            else if (cmd.Input == "UIKeyInputDelete")
            {
                keyInput = HardwareKey.ForwardDeleteKeyInput;
            }
            else
            {
                useShift = keyInput.Length > 0 && char.IsLetter(keyInput[0]);
            }

            /*
             * else if (cmd.Input == "\\^P")
             *  input = HardwareKey.F1Label;
             * else if (cmd.Input == "UIKeyInputF2")
             *  input = HardwareKey.F2KeyInput;
             * else if (cmd.Input == "UIKeyInputF3")
             *  input = HardwareKey.F3KeyInput;
             * else if (cmd.Input == "UIKeyInputF4")
             *  input = HardwareKey.F4KeyInput;
             * else if (cmd.Input == "UIKeyInputF5")
             *  input = HardwareKey.F5KeyInput;
             * else if (cmd.Input == "UIKeyInputF6")
             *  input = HardwareKey.F6KeyInput;
             * else if (cmd.Input == "UIKeyInputF7")
             *  input = HardwareKey.F7KeyInput;
             * else if (cmd.Input == "UIKeyInputF8")
             *  input = HardwareKey.F8KeyInput;
             * else if (cmd.Input == "UIKeyInputF9")
             *  input = HardwareKey.F9KeyInput;
             * else if (cmd.Input == "UIKeyInputF10")
             *  input = HardwareKey.F10KeyInput;
             * else if (cmd.Input == "UIKeyInputF11")
             *  input = HardwareKey.F11KeyInput;
             * else if (cmd.Input == "UIKeyInputF12")
             *  input = HardwareKey.F12KeyInput;
             */

            /*
             * var modifiers = HardwareKeyModifierKeys.None;
             * if ((cmd.ModifierFlags & UIKeyModifierFlags.AlphaShift) > 0)
             *  modifiers |= HardwareKeyModifierKeys.CapsLock;
             * if ((cmd.ModifierFlags & UIKeyModifierFlags.Alternate) > 0)
             *  modifiers |= HardwareKeyModifierKeys.Alternate;
             * if ((cmd.ModifierFlags & UIKeyModifierFlags.Control) > 0)
             *  modifiers |= HardwareKeyModifierKeys.Control;
             * if ((cmd.ModifierFlags & UIKeyModifierFlags.NumericPad) > 0)
             *  modifiers |= HardwareKeyModifierKeys.NumericPadKey;
             * if ((cmd.ModifierFlags & UIKeyModifierFlags.Command) > 0)
             *  modifiers |= HardwareKeyModifierKeys.PlatformKey;
             * if (keyInput.Length > 0 && char.IsLetter(keyInput[0]) && (cmd.ModifierFlags & UIKeyModifierFlags.Shift) > 0)
             *  modifiers |= HardwareKeyModifierKeys.Shift;
             */

            var modifiers = GetModifierKeys(cmd.ModifierFlags, useShift);

            /*
             * if (!modifiers.HasFlag(HardwareKeyModifierKeys.NumericPadKey))
             * {
             *  switch (Forms9Patch.KeyboardService.LanguageRegion)
             *  {
             *      case "fr-FR":
             *          {
             *              switch (cmd.Input)
             *              {
             *                  case "1":
             *                      keyInput = "&";
             *                      break;
             *                  case "2":
             *                      keyInput = "é";
             *                      break;
             *                  case "3":
             *                      keyInput = "\"";
             *                      break;
             *                  case "4":
             *                      keyInput = "'";
             *                      break;
             *                  case "5":
             *                      keyInput = "(";
             *                      System.Diagnostics.Debug.WriteLine("fr-FR [ ( ]");
             *                      break;
             *                  case "6":
             *                      keyInput = "-";
             *                      break;
             *                  case "7":
             *                      keyInput = "è";
             *                      break;
             *                  case "8":
             *                      keyInput = "_";
             *                      break;
             *                  case "9":
             *                      keyInput = "ç";
             *                      break;
             *                  case "0":
             *                      keyInput = "à";
             *                      break;
             *                  case "-":
             *                      keyInput = ")";
             *                      break;
             *              }
             *          }
             *          break;
             *  }
             * }
             */

            var listeners = element.GetHardwareKeyListeners();

            for (int i = 0; i < listeners.Count; i++)
            {
                var listener = listeners[i];
                if (string.IsNullOrEmpty(listener?.HardwareKey?.KeyInput))
                {
                    continue;
                }
                if (listener.HardwareKey.KeyInput == keyInput.ToUpper() && (listener.HardwareKey.ModifierKeys == modifiers || listener.HardwareKey.ModifierKeys.HasFlag(HardwareKeyModifierKeys.Any)))
                {
                    if (listener.Command != null && listener.Command.CanExecute(listener.CommandParameter))
                    {
                        listener.Command.Execute(listener.CommandParameter);
                    }
                    var observedHardwareKey = new HardwareKey(keyInput.ToUpper(), modifiers);
                    listener.Pressed?.Invoke(element, new HardwareKeyEventArgs(observedHardwareKey, element));
                    //System.Diagnostics.Debug.WriteLine("SUCCESS!!!");
                    return;
                }
            }
        }
Exemplo n.º 19
0
 public KeyCombination(UIKeyCommand keyModifier)
 {
     _key          = new Key(keyModifier.Input);
     ModifierFlags = keyModifier.ModifierFlags;
 }
Exemplo n.º 20
0
 void TabForward(UIKeyCommand cmd) => FocusSearch(forwardDirection: true);
Exemplo n.º 21
0
 void OnKeyPress(UIKeyCommand cmd) => HardwareKeyPageRenderer.ProcessKeyPress(cmd);
        private void handleKeyCommand(UIKeyCommand cmd)
        {
            Key? key;
            bool upper = false;

            // UIKeyCommand constants are not actually constants, so we can't use a switch
            if (cmd.Input == UIKeyCommand.LeftArrow)
            {
                key = Key.Left;
            }
            else if (cmd.Input == UIKeyCommand.RightArrow)
            {
                key = Key.Right;
            }
            else if (cmd.Input == UIKeyCommand.UpArrow)
            {
                key = Key.Up;
            }
            else if (cmd.Input == UIKeyCommand.DownArrow)
            {
                key = Key.Down;
            }
            else
            {
                key = keyForString(cmd.Input, out upper);
            }

            if (!key.HasValue)
            {
                return;
            }

            bool shiftHeld  = (cmd.ModifierFlags & UIKeyModifierFlags.Shift) > 0 || upper;
            bool superHeld  = (cmd.ModifierFlags & UIKeyModifierFlags.Command) > 0;
            bool ctrlHeld   = (cmd.ModifierFlags & UIKeyModifierFlags.Control) > 0;
            bool optionHeld = (cmd.ModifierFlags & UIKeyModifierFlags.Alternate) > 0;

            if (shiftHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LShift, true));
            }
            if (superHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LWin, true));
            }
            if (ctrlHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LControl, true));
            }
            if (optionHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LAlt, true));
            }

            PendingInputs.Enqueue(new KeyboardKeyInput(key.Value, true));
            PendingInputs.Enqueue(new KeyboardKeyInput(key.Value, false));

            if (optionHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LAlt, false));
            }
            if (ctrlHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LControl, false));
            }
            if (superHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LWin, false));
            }
            if (shiftHeld)
            {
                PendingInputs.Enqueue(new KeyboardKeyInput(Key.LShift, false));
            }
        }
Exemplo n.º 23
0
		public override void DidPressArrowKey (UIKeyCommand sender)
		{
			base.DidPressArrowKey (sender);
			
			var keyCommand = (UIKeyCommand)sender;
			if (keyCommand.Input == UIKeyCommand.UpArrow && TextView.Text.Length == 0) {
				var lastMessage = messages [0];
				EditText (lastMessage.Text);

				var indexPath = NSIndexPath.FromRowSection (0, 0);
				TableView.ScrollToRow (indexPath, UITableViewScrollPosition.Bottom, true);
			}
		}