Ejemplo n.º 1
0
 public KeyboardManager(D3DEngine engine)
 {
     _engine   = engine;
     IsRunning = false;
     KeyBuffer = new CharKey[255];
     for (int i = 0; i < KeyBuffer.Length; i++)
     {
         KeyBuffer[i] = new CharKey();
     }
 }
Ejemplo n.º 2
0
        private void AddCharacterToDisplay(CharKey Key)
        {
            //handle not char keys
            if (Key.isChar == false)
            {
                _showCaret = true;

                switch (Key.Key)
                {
                case Keys.Left:
                    if (_carretPositionInString > 0)
                    {
                        _carretPositionInString--;
                    }
                    break;

                case Keys.Right:
                    if (_carretPositionInString < _stringBuilder.Length)
                    {
                        _carretPositionInString++;
                    }
                    break;

                case Keys.Delete:
                    if (_stringBuilder.Length > 0 && (_carretPositionInString < _stringBuilder.Length))
                    {
                        _stringBuilder.Remove(_carretPositionInString, 1);
                    }
                    break;

                case Keys.Home:
                    _carretPositionInString = 0;
                    break;

                case Keys.End:
                    _carretPositionInString = _stringBuilder.Length;
                    break;

                default:
                    break;
                }
            }
            else
            {
                switch (Key.Char)
                {
                case (char)Keys.Back:

                    if (_stringBuilder.Length > 0)
                    {
                        _stringBuilder.Remove(_carretPositionInString - 1, 1);
                        _carretPositionInString--;
                        _showCaret = true;
                    }
                    return;

                default:
                    if (IsMultiline == false && (Key.Char == '\n' || Key.Char == '\r'))
                    {
                        return;
                    }
                    //Pure char character !
                    if (_carretPositionInString == _stringBuilder.Length)
                    {
                        _stringBuilder.Append(Key.Char);
                    }
                    else
                    {
                        _stringBuilder.Insert(_carretPositionInString, Key.Char);
                    }
                    _carretPositionInString++;
                    break;
                }
            }
        }