Skip to content
Snippets Groups Projects
Select Git revision
  • 4b2b34a42a691220937409b00e96d3d4f6e343a2
  • master default
2 results

command_parsing_test.cc

Blame
  • Forked from sce213ta / mysh-1
    Source project has a limited visibility.
    main.dart 2.00 KiB
    import 'package:english_words/english_words.dart';
    import 'package:flutter/material.dart';
    import 'package:provider/provider.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return ChangeNotifierProvider(
          create: (context) => MyAppState(),
          child: MaterialApp(
            title: 'Namer App',
            theme: ThemeData(
              useMaterial3: true,
              colorScheme: ColorScheme.fromSeed(seedColor: Colors.yellow),
            ),
            home: MyHomePage(),
          ),
        );
      }
    }
    
    class MyAppState extends ChangeNotifier {
      var current = WordPair.random();
       // ↓ Add this.
      void getNext() {
        current = WordPair.random();
        notifyListeners();
      }
    }
    
    class MyHomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        var appState = context.watch<MyAppState>();
        var pair = appState.current;
    
        return Scaffold(
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                BigCard(pair: pair),
                SizedBox(height: 10),
                ElevatedButton(
                  onPressed: () {
                    appState.getNext();
                  },
                  child: Text('Next'),
                ),
            
              ],
            ),
          ),
        );
      }
    }
    
    class BigCard extends StatelessWidget {
      const BigCard({
        super.key,
        required this.pair,
      });
    
      final WordPair pair;
    
       @override
      Widget build(BuildContext context) {
        final theme = Theme.of(context);
        // ↓ Add this.
        final style = theme.textTheme.displayMedium!.copyWith(
          color: theme.colorScheme.onPrimary,
        );
    
        return Card(
          color: theme.colorScheme.primary,
          child: Padding(
            padding: const EdgeInsets.all(20),
            // ↓ Change this line.
            child: Text(
              pair.asLowerCase,
              style: style,
              semanticsLabel: "${pair.first} ${pair.second}",
            ),
          ),
        );
      }
    }