buildKeyText function

Widget buildKeyText(
  1. TappyKeyboardKeyType key,
  2. TappyKeyboardController ctl, {
  3. required bool isEnabled,
})

Implementation

Widget buildKeyText(
  TappyKeyboardKeyType key,
  TappyKeyboardController ctl, {
  required bool isEnabled,
}) {
  late final String text;
  String? shiftText;
  switch (key.keyAction) {
    case TappyKeyAction.shift:
      return Icon(
        Icons.arrow_upward,
        color: isEnabled ? Colors.white : Colors.black,
      );
    case TappyKeyAction.ctl:
      text = "Ctl";
      break;
    case TappyKeyAction.alt:
      text = "Alt";
      break;
    case TappyKeyAction.backspace:
      return Icon(
        Icons.backspace,
        color: isEnabled ? Colors.white : Colors.black,
      );
    case TappyKeyAction.space:
      return Icon(
        Icons.space_bar,
        color: isEnabled ? Colors.white : Colors.black,
      );
    case TappyKeyAction.enter:
      return Icon(
        Icons.keyboard_return,
        color: isEnabled ? Colors.white : Colors.black,
      );
    case TappyKeyAction.number:
      text = key.text!;
      break;
    case TappyKeyAction.letter:
      text = ctl.shiftKeyEnabled ? key.shiftText! : key.text!;
      break;
    case TappyKeyAction.symbol:
      if (ctl.shiftKeyEnabled && key.shiftText != null) {
        text = key.shiftText!;
        shiftText = key.text!;
      } else {
        text = key.text!;
        shiftText = key.shiftText;
      }
      break;
    case TappyKeyAction.func:
      text = '&123';
      break;
    case TappyKeyAction.tab:
      return Icon(
        Icons.keyboard_tab,
        color: isEnabled ? Colors.white : Colors.black,
      );
    case TappyKeyAction.exit:
      text = "Exc";
      break;
    case TappyKeyAction.left:
      return Icon(
        Icons.arrow_back,
        color: isEnabled ? Colors.white : Colors.black,
      );
    case TappyKeyAction.right:
      return Icon(
        Icons.arrow_forward,
        color: isEnabled ? Colors.white : Colors.black,
      );
  }

  if (key.keyAction == TappyKeyAction.symbol &&
      (key.shiftText?.isNotEmpty ?? false)) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        if (shiftText != null)
          AutoSizeText(
            shiftText,
            style: TextStyle(
              fontSize: 12,
              color: isEnabled ? Colors.white : Colors.grey,
            ),
          ),
        AutoSizeText(
          text,
          style: TextStyle(
            fontSize: 20,
            color: isEnabled ? Colors.white : Colors.black,
          ),
        ),
      ],
    );
  }

  return AutoSizeText(
    text,
    style: TextStyle(
      fontSize: 20,
      color: isEnabled ? Colors.white : Colors.black,
    ),
  );
}