queueKey method

void queueKey(
  1. KeyEventType type, [
  2. String? char
])

Queue key events by type.

Implementation

void queueKey(KeyEventType type, [String? char]) {
  switch (type) {
    case KeyEventType.enter:
      queueByte(13);
      break;
    case KeyEventType.esc:
      queueByte(27);
      break;
    case KeyEventType.ctrlC:
      queueByte(3);
      break;
    case KeyEventType.ctrlR:
      queueByte(18);
      break;
    case KeyEventType.ctrlD:
      queueByte(4);
      break;
    case KeyEventType.ctrlE:
      queueByte(5);
      break;
    case KeyEventType.tab:
      queueByte(9);
      break;
    case KeyEventType.arrowUp:
      queueBytes([27, 91, 65]);
      break;
    case KeyEventType.arrowDown:
      queueBytes([27, 91, 66]);
      break;
    case KeyEventType.arrowRight:
      queueBytes([27, 91, 67]);
      break;
    case KeyEventType.arrowLeft:
      queueBytes([27, 91, 68]);
      break;
    case KeyEventType.backspace:
      queueByte(127);
      break;
    case KeyEventType.space:
      queueByte(32);
      break;
    case KeyEventType.slash:
      queueByte(47);
      break;
    case KeyEventType.char:
      if (char != null && char.isNotEmpty) {
        queueByte(char.codeUnitAt(0));
      }
      break;
    case KeyEventType.ctrlGeneric:
      if (char != null && char.isNotEmpty) {
        final code = char.toLowerCase().codeUnitAt(0) - 96;
        queueByte(code);
      }
      break;
    case KeyEventType.unknown:
      queueByte(0);
      break;
  }
}