| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import 'package:flutter/services.dart';
- import 'package:flutter/widgets.dart';
- import 'package:xterm/frontend/input_behavior_default.dart';
- import 'package:xterm/input/keys.dart';
- import 'package:xterm/xterm.dart';
- class InputBehaviorMobile extends InputBehaviorDefault {
- const InputBehaviorMobile();
- static const _placeholder = ' ';
- bool get acceptKeyStroke => false;
- TextEditingValue onTextEdit(TextEditingValue value, Terminal terminal) {
- if (value.text.length > _placeholder.length) {
- terminal.onInput(value.text.substring(1, value.text.length - 1));
- } else if (value.text.length < _placeholder.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 TextEditingValue(
- text: _placeholder,
- selection: TextSelection.collapsed(offset: 1),
- );
- }
- void onAction(TextInputAction action, Terminal terminal) {
- print('action $action');
- switch (action) {
- case TextInputAction.done:
- terminal.keyInput(TerminalKey.enter);
- break;
- default:
- print('unknown action $action');
- }
- }
- }
|