import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_chinese_chees/routes.dart'; import 'package:flutter_chinese_chees/utils/game_manager.dart'; import 'package:window_manager/window_manager.dart'; /// Description: enter point /// Time : 04/28/2023 Friday /// Author : liuyuqi.gov@msn.cn void main() async { WidgetsFlutterBinding.ensureInitialized(); if (!kIsWeb && (Platform.isMacOS || Platform.isWindows || Platform.isLinux)) { await windowManager.ensureInitialized(); } const windowOptions = WindowOptions( size: Size(1024, 720), center: true, backgroundColor: Colors.transparent, skipTaskbar: false, titleBarStyle: TitleBarStyle.normal); windowManager.waitUntilReadyToShow(windowOptions, () async { await windowManager.show(); await windowManager.focus(); }); windowManager.addListener(MainWindowListener()); runApp(const MyApp()); if (Platform.isAndroid) { SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(statusBarColor: Colors.transparent); SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle); } } class MainWindowListener extends WindowListener { @override void onWindowClose() { super.onWindowClose(); GameManager.instance.engine?.dispose(); } } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: '中国象棋', debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, ), onGenerateRoute: Routes.onGenerateRoute, initialRoute: Routes.home, ); } }