main.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import 'package:flutter/material.dart';
  2. import 'package:xterm/flutter.dart';
  3. import 'package:xterm/xterm.dart';
  4. void main() {
  5. runApp(MyApp());
  6. }
  7. class MyApp extends StatelessWidget {
  8. @override
  9. Widget build(BuildContext context) {
  10. return MaterialApp(
  11. title: 'xterm.dart demo',
  12. theme: ThemeData(
  13. primarySwatch: Colors.blue,
  14. visualDensity: VisualDensity.adaptivePlatformDensity,
  15. ),
  16. home: MyHomePage(),
  17. );
  18. }
  19. }
  20. class MyHomePage extends StatefulWidget {
  21. MyHomePage({Key key}) : super(key: key);
  22. @override
  23. _MyHomePageState createState() => _MyHomePageState();
  24. }
  25. class _MyHomePageState extends State<MyHomePage> {
  26. Terminal terminal;
  27. @override
  28. void initState() {
  29. super.initState();
  30. terminal = Terminal(onInput: onInput);
  31. terminal.write('xterm.dart demo');
  32. terminal.write('\r\n');
  33. terminal.write('\$ ');
  34. }
  35. void onInput(String input) {
  36. if (input == '\r') {
  37. terminal.write('\r\n');
  38. terminal.write('\$ ');
  39. } else {
  40. terminal.write(input);
  41. }
  42. }
  43. @override
  44. Widget build(BuildContext context) {
  45. return Scaffold(
  46. body: SafeArea(
  47. child: TerminalView(terminal: terminal),
  48. ),
  49. );
  50. }
  51. }