예제 #1
0
        private KeyData ProcessKey(KeyData keyData)
        {
            if (keyData.Data.IsAlphaNumeric())
            {
                _activeWord.AddAlphaNumeric(keyData);
            }
            else if (keyData.Data.IsWhitespace())
            {
                _activeWord.AddWhitespace(keyData);
            }
            else if (keyData.Data.IsSymbol())
            {
                _activeWord.AddSymbol(keyData);
            }
            else if (keyData.Data.IsPunctuation())
            {
                _activeWord.AddPunctuation(keyData);
            }
            else if (keyData.Key == Keys.Back || keyData.Key == Keys.Delete)
            {
                _activeWord.AddDeletion(keyData);
            }

            return(keyData);
        }
예제 #2
0
 public WordTypedEventArgs(KeyData keyData, string completedWord) : base(keyData)
 {
     CompletedWord = completedWord;
 }
예제 #3
0
 public KeyDataEventArgs(KeyData keyData)
 {
     KeyData = keyData;
 }
예제 #4
0
 public void AddDeletion(KeyData data)
 {
     _stateMachine.Fire(_deletionTrigger, data);
 }
예제 #5
0
 public void AddPunctuation(KeyData data)
 {
     _stateMachine.Fire(_punctuationTrigger, data);
 }
예제 #6
0
 public void AddWhitespace(KeyData data)
 {
     _stateMachine.Fire(_whitespaceTrigger, data);
 }
예제 #7
0
 public void AddSymbol(KeyData data)
 {
     _stateMachine.Fire(_symbolTrigger, data);
 }
예제 #8
0
 public void AddAlphaNumeric(KeyData data)
 {
     _stateMachine.Fire(_alphaNumericTrigger, data);
 }
예제 #9
0
 private void OnWordCompleted(KeyData data)
 {
     IsComplete = true;
 }
예제 #10
0
 private void OnDeletionTyped(KeyData data)
 {
     CurrentData = string.Empty;
     IsComplete  = false;
 }
예제 #11
0
 private void OnSymbolTyped(KeyData data)
 {
     CurrentData += data.Data;
     IsComplete   = false;
 }
예제 #12
0
 private void OnAlphanumericTyped(KeyData data)
 {
     CurrentData += data.Data;
     IsComplete   = false;
 }
예제 #13
0
 private IEnumerable <CompletedWord> ProcessWord(KeyData keyData)
 {
     return(_activeWord.IsComplete ?
            Enumerable.Repeat(new CompletedWord(_activeWord.CurrentData, keyData.Window, DateTime.UtcNow), 1) :
            Enumerable.Empty <CompletedWord>());
 }
예제 #14
0
 public async Task Feed(KeyData keyData) => await _incomingKeyPresses.SendAsync(keyData);