private void GenerateKeyboard(KeyboardContext context) { // Build grid this.keysGrid.Children.Clear(); this.keysGrid.RowDefinitions.Clear(); this.keysGrid.ColumnDefinitions.Clear(); for (int row = 0; row < context.Rows; row++) { this.keysGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); StackPanel insideGrid = new StackPanel { HorizontalAlignment = HorizontalAlignment.Center, Orientation = Orientation.Horizontal }; Grid.SetRow(insideGrid, row); keysGrid.Children.Add(insideGrid); List <KeyMapping> keyMappings = context.KeyboardMapping.GetKeyMappingsByRow(row); foreach (KeyMapping keyMapping in keyMappings) { KeyboardButton keyboardButton = new KeyboardButton { Content = keyMapping.Symbol }; keyboardButton.Click += this.OnKeyButtonClicked; insideGrid.Children.Add(keyboardButton); } } }
public override void OnApplyTemplate() { base.OnApplyTemplate(); this.keysGrid = this.GetTemplateChild("PART_KeysGrid") as Grid; this.shiftButton = this.GetTemplateChild("PART_ShiftButton") as Button; this.symbolButton = this.GetTemplateChild("PART_SymbolButton") as Button; this.spaceButton = this.GetTemplateChild("PART_SpaceButton") as Button; this.backspaceButton = this.GetTemplateChild("PART_BackspaceButton") as Button; this.enterButton = this.GetTemplateChild("PART_EnterButton") as Button; if (keysGrid == null) { throw new InvalidOperationException("Cannot find PART_KeysGrid."); } if (shiftButton == null) { throw new InvalidOperationException("Cannot find PART_ShiftButton."); } if (symbolButton == null) { throw new InvalidOperationException("Cannot find PART_SymbolButton."); } if (spaceButton == null) { throw new InvalidOperationException("Cannot find PART_SpaceButton."); } if (backspaceButton == null) { throw new InvalidOperationException("Cannot find PART_BackspaceButton."); } if (enterButton == null) { throw new InvalidOperationException("Cannot find PART_EnterButton."); } this.shiftButton.Click += OnShiftButtonClick; this.symbolButton.Click += OnSymbolButtonClick; this.spaceButton.Click += OnSpaceButtonClick; this.backspaceButton.Click += OnBackspaceButtonClick; this.enterButton.Click += OnEnterButtonClick; this.keyboardContext = this.GenerateKeyboardContext(); this.secondaryKeybordContext = this.GenerateSecondaryKeyboardContext(); this.GenerateKeyboard(this.keyboardContext); }
protected override KeyboardContext GenerateKeyboardContext() { KeyboardContext keyboardContext = new KeyboardContext(); keyboardContext.Rows = 3; keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ქ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "წ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ე")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "რ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ტ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ყ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "უ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ი")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ო")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "პ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ა")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ს")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "დ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ფ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "გ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ჰ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ჯ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "კ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ლ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ზ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ხ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ც")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ვ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ბ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ნ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "მ")); ToUpperReplacement = new Dictionary <string, string>(); ToUpperReplacement.Add("წ", "ჭ"); ToUpperReplacement.Add("რ", "ღ"); ToUpperReplacement.Add("ტ", "თ"); ToUpperReplacement.Add("ს", "შ"); ToUpperReplacement.Add("ჯ", "ჟ"); ToUpperReplacement.Add("ზ", "ძ"); ToUpperReplacement.Add("ც", "ჩ"); ToUpperReplacement.Add("ნ", "N"); return(keyboardContext); }
object NameFromContext(KeyboardContext context) { switch (context) { case KeyboardContext.FirstLetterUppercase: return(_inputScopeName); case KeyboardContext.Number: return(_inputScopeNumber); case KeyboardContext.Uppercase: return(_inputScopeName); case KeyboardContext.Email: return(_inputScopeEmail); } return(_inputScopeText); }
protected override KeyboardContext GenerateKeyboardContext() { KeyboardContext keyboardContext = new KeyboardContext(); keyboardContext.Rows = 3; keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "я")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "в")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "е")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "р")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "т")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "ъ")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "у")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "и")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "о")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "п")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "а")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "с")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "д")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ф")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "г")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "х")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "й")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "к")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "л")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "ю")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ч")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "з")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ь")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ц")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ж")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "б")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "н")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "м")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "ш")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "щ")); return(keyboardContext); }
protected override KeyboardContext GenerateKeyboardContext() { KeyboardContext keyboardContext = new KeyboardContext(); keyboardContext.Rows = 3; keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "q")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "w")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "e")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "r")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "t")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "y")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "u")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "i")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "o")); keyboardContext.KeyboardMapping.Add(new KeyMapping(0, "p")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "a")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "s")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "d")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "f")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "g")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "h")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "j")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "k")); keyboardContext.KeyboardMapping.Add(new KeyMapping(1, "l")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "z")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "x")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "c")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "v")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "b")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "n")); keyboardContext.KeyboardMapping.Add(new KeyMapping(2, "m")); return(keyboardContext); }
public KeyboardController(KeyboardContext context) { _context = context; }
public TextInput(Rectangle position, KeyboardContext keyboardContext, string text, int textSize, Align contentAlign, ITextEdit controller) { Deployment.Current.Dispatcher.BeginInvoke(() => { if (CurrentFocus != null) { CurrentFocus.UnfocusInternal(); } _controller = controller; CurrentFocus = this; float dipFactor = DisplayProperties.LogicalDpi / 96.0f; if (keyboardContext == KeyboardContext.Password) { _password = true; Canvas.SetLeft(_passwordField, (position.X + 1) / dipFactor); Canvas.SetTop(_passwordField, (position.Y + 2) / dipFactor); _passwordField.Width = (position.Width - 2) / dipFactor; _passwordField.Height = (position.Height - 4) / dipFactor; SetText(text); _passwordField.PasswordChanged += HandleEditingChangedPassword; _passwordField.LostFocus += HandleEditingDidEnd; _passwordField.KeyUp += HandleKeyUp; Deployment.Current.Dispatcher.BeginInvoke(() => { _passwordField.Visibility = Visibility.Visible; _passwordField.Focus(); RootFrame.RenderTransform = new CompositeTransform(); }); } else { Canvas.SetLeft(_textField, (position.X + 1) / dipFactor); Canvas.SetTop(_textField, (position.Y + 2) / dipFactor); _textField.Width = (position.Width - 2) / dipFactor; _textField.Height = (position.Height - 4) / dipFactor; switch (contentAlign & Align.Horz) { case Align.Left: _textField.TextAlignment = TextAlignment.Left; break; case Align.Right: _textField.TextAlignment = TextAlignment.Right; break; case Align.Center: _textField.TextAlignment = TextAlignment.Center; break; } _inputScope.Names.Clear(); _inputScope.Names.Add(NameFromContext(keyboardContext)); _uppercase = keyboardContext == KeyboardContext.Uppercase; if (keyboardContext == KeyboardContext.MultilineText) { _textField.VerticalContentAlignment = VerticalAlignment.Top; _textField.AcceptsReturn = true; _textField.TextWrapping = TextWrapping.Wrap; _multiline = true; } else { _textField.VerticalContentAlignment = VerticalAlignment.Center; _textField.AcceptsReturn = false; _textField.TextWrapping = TextWrapping.NoWrap; _multiline = false; } SetText(text); _textField.TextChanged += HandleEditingChanged; _textField.LostFocus += HandleEditingDidEnd; _textField.KeyUp += HandleKeyUp; Deployment.Current.Dispatcher.BeginInvoke(() => { _textField.Visibility = Visibility.Visible; _textField.Focus(); RootFrame.RenderTransform = new CompositeTransform(); }); } }); }
public UIContext(Gui gui) { _instance = this; _keyboard = Create<KeyboardContext>(); _mouse = Add(new MouseContext(gui)); //Create<GamePadContext>(); var handler = Add(new ComponentHandler()); handler.Handle<IToolUI>(AddToolUI, ui => _toolUis.Remove(ui)); handler.Handle<IGameUI>(AddGameUI, ui => _gameUis.Remove(ui)); ToolMode = new ToggleComponent(SetToolMode, SetGameMode); }
protected override void HandleInput(GameTime gameTime) { IInputContext input = Engine.InputContext; MouseContext mouse = input.Mouse; KeyboardContext key = input.Keyboard; if (mouse.WheelDelta != 0) { _h += -mouse.WheelDelta * gameTime.ElapsedGameTime.TotalSeconds * _h * 0.0843f; } if (mouse.WasLeftButtonPressed) { // start drag previousPoint = mouse.Location; } if (mouse.IsLeftButtonDown && !mouse.IsRightButtonDown) { // dragging float diffX = mouse.Location.X - previousPoint.X; float diffY = mouse.Location.Y - previousPoint.Y; Longitude -= diffX * 0.016f * HeightAboveGround * 2f; if (Longitude > 180) { Longitude = -180 + (Longitude - 180); } if (Longitude < -180) { Longitude = 180 + (Longitude - -180); } Latitude += diffY * 0.016f * HeightAboveGround * 2f; if (Latitude > 85) { Latitude = 85; } if (Latitude < -85) { Latitude = -85; } previousPoint = mouse.Location; } else if (!mouse.IsRightButtonDown) { previousPoint = Vector2.Zero; } if (mouse.WasRightButtonPressed) { previousPoint = mouse.Location; } if (mouse.IsRightButtonDown && !mouse.IsLeftButtonDown) { // dragging float diffX = mouse.Location.X - previousPoint.X; float diffY = mouse.Location.Y - previousPoint.Y; Rotate(diffX, diffY); previousPoint = mouse.Location; } else if (!mouse.IsLeftButtonDown) { previousPoint = Vector2.Zero; } }
public KeyboardController(KeyboardContext context, ILogger <KeyboardController> logger) { _context = context; _logger = logger; }