public void TextInput(char c, Keys key) { TextInputIsExecuting = true; lastInputColorSelector = new Color(255, 0, 0, 99); if (RecordTypedCharacters) { if (c == '\t') { sbTotalMsg.Append(" "); } else { if (key == Keys.Back) { if (sbTotalMsg.Length > 0) { sbTotalMsg.Length -= 1; } } else { sbTotalMsg.Append(c); } } } //k0_Rect = UsKeyStruct.GetRectangle(Keys.None, visualGraphicPosition); //k1_Rect = UsKeyStruct.GetRectangle(Keys.None, visualGraphicPosition); k0_Rect = UsKeyStruct.GetRectangle(key, visualGraphicPosition); }
// control keys have firing priority. public void CntrKeyInput(Keys key0, Keys key1, Keys key2) { ControlKeyInputIsExecuting = false; TextInputIsExecuting = false; ControlKeyInputIsExecuting = true; lastInputColorSelector = new Color(0, 0, 255, 99); k0_Rect = UsKeyStruct.GetRectangle(key0, visualGraphicPosition); k1_Rect = UsKeyStruct.GetRectangle(key1, visualGraphicPosition); k2_Rect = UsKeyStruct.GetRectangle(key2, visualGraphicPosition); // control z clear the input recording buffer. if (IsCommandActive(key0, key1, key2, Keys.LeftControl, Keys.Delete)) { sbTotalMsg.Clear(); } }
public void Draw(SpriteBatch spriteBatch, SpriteFont currentFont, Texture2D keyboardTexture, Texture2D dot, Vector2 position, GameTime gameTime) { keyPressInfoPosition = position + KeyPressInfoOffset; visualGraphicPosition = position + VisualGraphicPositionOffset; textPosition = position + TextPositionOffset; var offsetTxtInputmsg = keyPressInfoPosition + new Vector2(0, 120); var offsetCntrlInputmsg = keyPressInfoPosition + new Vector2(0, 140); var offsetClearTextmsg = keyPressInfoPosition + new Vector2(0, 160); Color solid = lastInputColorSelector; solid.A = 255; if (KeysAndTextInput.Caps) { k_caps_Rect = UsKeyStruct.GetRectangle(Keys.CapsLock, visualGraphicPosition); } else { k_caps_Rect = UsKeyStruct.GetRectangle(Keys.None, visualGraphicPosition); } // display the visual keyboard. spriteBatch.Draw(keyboardTexture, visualGraphicPosition, Color.Wheat); if (TextInputIsExecuting || ControlKeyInputIsExecuting) { spriteBatch.Draw(dot, k0_Rect, lastInputColorSelector); } if (ControlKeyInputIsExecuting) { spriteBatch.Draw(dot, k1_Rect, lastInputColorSelector); spriteBatch.Draw(dot, k2_Rect, lastInputColorSelector); } spriteBatch.Draw(dot, k_caps_Rect, new Color(0, 120, 220, 79)); if (DisplayKeypressText) { // watch the actual key presses. spriteBatch.DrawString(currentFont, KeysAndTextInput.KeyPressInformationMessage, keyPressInfoPosition, Color.Wheat); // display which are firing. if (TextInputIsExecuting) { spriteBatch.DrawString(currentFont, textInputMsg, offsetTxtInputmsg, Color.Red); } if (ControlKeyInputIsExecuting) { spriteBatch.DrawString(currentFont, controlKeyInputMsg, offsetCntrlInputmsg, Color.Blue); } // clear instructions. spriteBatch.DrawString(currentFont, userClearTextInstructionMsg, offsetClearTextmsg, Color.White); } // display key presses as a continuous string. if (DisplayRecordedTypedCharacters) { spriteBatch.DrawString(currentFont, sbTotalMsg, textPosition, Color.DarkGreen); } if (KeysAndTextInput.IsKeyPressOccuring == false) { // Clear out the visual keys k0_Rect = UsKeyStruct.GetRectangle(Keys.None, visualGraphicPosition); k1_Rect = UsKeyStruct.GetRectangle(Keys.None, visualGraphicPosition); k2_Rect = UsKeyStruct.GetRectangle(Keys.None, visualGraphicPosition); } }