| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import 'package:flutter/services.dart';
- import 'package:xterm/frontend/input_behavior_default.dart';
- import 'package:xterm/input/keys.dart';
- import 'package:xterm/xterm.dart';
- class InputBehaviorMobile extends InputBehaviorDefault {
- InputBehaviorMobile();
- final acceptKeyStroke = false;
- final initEditingState = const TextEditingValue(
- text: ' ',
- selection: TextSelection.collapsed(offset: 1),
- );
- TextEditingValue onTextEdit(
- TextEditingValue value, TerminalUiInteraction terminal) {
- if (value.text.length > initEditingState.text.length) {
- terminal.raiseOnInput(value.text.substring(1, value.text.length - 1));
- } else if (value.text.length < initEditingState.text.length) {
- terminal.keyInput(TerminalKey.backspace);
- } else {
- if (value.selection.baseOffset < 1) {
- terminal.keyInput(TerminalKey.arrowLeft);
- } else if (value.selection.baseOffset > 1) {
- terminal.keyInput(TerminalKey.arrowRight);
- }
- }
- return initEditingState;
- }
- void onAction(TextInputAction action, TerminalUiInteraction terminal) {
- print('action $action');
- switch (action) {
- case TextInputAction.done:
- terminal.keyInput(TerminalKey.enter);
- break;
- default:
- print('unknown action $action');
- }
- }
- }
|