main.dart 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import 'dart:io';
  2. import 'dart:ui';
  3. import 'package:dart_json_mapper/dart_json_mapper.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:get/get.dart';
  6. import 'package:window_manager/window_manager.dart';
  7. import 'app/routes/app_pages.dart';
  8. import 'main.mapper.g.dart' show initializeJsonMapper;
  9. void main() async {
  10. const width = 375.0;
  11. const height = 736.0;
  12. initializeJsonMapper();
  13. JsonMapper().useAdapter(JsonMapperAdapter(valueDecorators: {
  14. typeOf<Map<String, String>>(): (value) {
  15. return Map.castFrom<dynamic, dynamic, String, String>(value);
  16. },
  17. }));
  18. if(Platform.isWindows || Platform.isMacOS){
  19. WidgetsFlutterBinding.ensureInitialized();
  20. await windowManager.ensureInitialized();
  21. WindowOptions windowOptions = const WindowOptions(
  22. minimumSize: Size(width, height),
  23. maximumSize: Size(width, height - kToolbarHeight),
  24. size: Size(width, height),
  25. center: true,
  26. backgroundColor: Colors.transparent,
  27. skipTaskbar: false,
  28. titleBarStyle: TitleBarStyle.hidden,
  29. );
  30. await windowManager.waitUntilReadyToShow(windowOptions, () async {
  31. await windowManager.show();
  32. await windowManager.focus();
  33. });
  34. }
  35. const Set<PointerDeviceKind> kTouchLikeDeviceTypes = <PointerDeviceKind>{
  36. PointerDeviceKind.touch,
  37. PointerDeviceKind.mouse,
  38. PointerDeviceKind.stylus,
  39. PointerDeviceKind.invertedStylus,
  40. PointerDeviceKind.unknown
  41. };
  42. runApp(
  43. GetMaterialApp(
  44. scrollBehavior: const MaterialScrollBehavior().copyWith(
  45. scrollbars: true,
  46. dragDevices: kTouchLikeDeviceTypes
  47. ),
  48. title: "Application",
  49. initialRoute: AppPages.INITIAL,
  50. getPages: AppPages.routes,
  51. ),
  52. );
  53. }