public static void UpdateTextBox(DragDropTextbox textbox, InputHandler inputHandler) { #region If there is a textbox if (textbox != null) { var keys = inputHandler.KeysJustPressed(); #region Detect Normal Keys foreach (var key in keys) { char keyLetter = (char)key; if ((keyLetter >= 'A' && keyLetter <= 'Z') || (keyLetter >= '0' && keyLetter <= '9')) { if (!inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) { keyLetter = Char.ToLower(keyLetter); } else { switch (keyLetter) { case '0': keyLetter = ')'; break; case '1': keyLetter = '!'; break; case '2': keyLetter = '@'; break; case '3': keyLetter = '#'; break; case '4': keyLetter = '$'; break; case '5': keyLetter = '%'; break; case '6': keyLetter = '^'; break; case '7': keyLetter = '&'; break; case '8': keyLetter = '*'; break; case '9': keyLetter = '('; break; } } (textbox).AddLetter(keyLetter); } } #endregion #region Other Keys if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.Back)) { (textbox).RemoveLetter(); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemMinus)) { if (inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter('_'); else (textbox).AddLetter('-'); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemPlus)) { if (inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter('+'); else (textbox).AddLetter('='); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.Left)) { (textbox).PositionDecrease(); scrollTextbox = 1; } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.Enter)) { (textbox).Enter(); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.Space)) { (textbox).AddLetter(' '); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemComma)) { if (!inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter(','); else (textbox).AddLetter('<'); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemPipe)) { if (!inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter('\\'); else (textbox).AddLetter('|'); } if(inputHandler.CheckJustPressedKey(Keys.OemTilde)) { if (!inputHandler.CheckPressedKey(Keys.LeftShift)) (textbox).AddLetter('`'); else (textbox).AddLetter('~'); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemPeriod)) { if (!inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter('.'); else (textbox).AddLetter('>'); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemQuestion)) { if (inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter('?'); else (textbox).AddLetter('/'); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.OemQuotes)) { if (inputHandler.CheckPressedKey(Microsoft.Xna.Framework.Input.Keys.LeftShift)) (textbox).AddLetter('\"'); else (textbox).AddLetter('\''); } if (inputHandler.CheckJustPressedKey(Microsoft.Xna.Framework.Input.Keys.Right)) { (textbox).PositionIncrease(); scrollTextbox = 1; } #endregion #region Arrow Keys if (inputHandler.CheckPressedKey(Keys.Left)) { scrollTextbox = (byte)((scrollTextbox < 5) ? (scrollTextbox + 1) : 0); if (scrollTextbox == 0) { (textbox).PositionDecrease(); } } else if (inputHandler.CheckPressedKey(Keys.Right)) { scrollTextbox = (byte)(scrollTextbox < 5 ? (scrollTextbox + 1) : 0); if (scrollTextbox == 0) { (textbox).PositionIncrease(); } } else if (inputHandler.CheckPressedKey(Keys.Back)) { scrollTextbox = (byte)(scrollTextbox < 12 ? (scrollTextbox + 1) : 0); if (scrollTextbox == 0) { (textbox).RemoveLetter(); } } else { scrollTextbox = 1; } #endregion #endregion } }