main.dart 1.1 KB

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