| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import 'package:flutter/material.dart';
- import 'package:xterm/flutter.dart';
- import 'package:xterm/xterm.dart';
- void main() {
- runApp(MyApp());
- }
- class MyApp extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'xterm.dart demo',
- theme: ThemeData(
- primarySwatch: Colors.blue,
- visualDensity: VisualDensity.adaptivePlatformDensity,
- ),
- home: MyHomePage(),
- );
- }
- }
- class MyHomePage extends StatefulWidget {
- MyHomePage({Key key}) : super(key: key);
- @override
- _MyHomePageState createState() => _MyHomePageState();
- }
- class _MyHomePageState extends State<MyHomePage> {
- Terminal terminal;
- @override
- void initState() {
- super.initState();
- terminal = Terminal(
- onInput: onInput,
- maxLines: 10000,
- );
- terminal.write('xterm.dart demo');
- terminal.write('\r\n');
- terminal.write('\$ ');
- }
- void onInput(String input) {
- if (input == '\r') {
- terminal.write('\r\n');
- terminal.write('\$ ');
- } else if (input.codeUnitAt(0) == 127) {
- terminal.buffer.eraseCharacters(1);
- terminal.buffer.backspace();
- terminal.refresh();
- return;
- } else {
- terminal.write(input);
- }
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- body: SafeArea(
- child: TerminalView(terminal: terminal),
- ),
- );
- }
- }
|