Made build portable

This commit is contained in:
Alessandro Autiero
2022-10-07 17:23:30 +02:00
parent 000a2a53ed
commit 55467152c9
128 changed files with 54402 additions and 7 deletions

View File

@@ -0,0 +1,43 @@
import 'package:bitsdojo_window_platform_interface/bitsdojo_window_platform_interface.dart';
import 'package:bitsdojo_window_platform_interface/method_channel_bitsdojo_window.dart';
import 'package:bitsdojo_window_windows/bitsdojo_window_windows.dart';
import 'package:bitsdojo_window_macos/bitsdojo_window_macos.dart';
import 'package:bitsdojo_window_linux/bitsdojo_window_linux.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'dart:io' show Platform;
bool _platformInstanceNeedsInit = true;
void initPlatformInstance() {
if (!kIsWeb) {
if (BitsdojoWindowPlatform.instance is MethodChannelBitsdojoWindow) {
if (Platform.isWindows) {
BitsdojoWindowPlatform.instance = BitsdojoWindowWindows();
} else if (Platform.isMacOS) {
BitsdojoWindowPlatform.instance = BitsdojoWindowMacOS();
} else if (Platform.isLinux) {
BitsdojoWindowPlatform.instance = BitsdojoWindowLinux();
}
}
} else {
BitsdojoWindowPlatform.instance = BitsdojoWindowPlatformNotImplemented();
}
}
BitsdojoWindowPlatform get _platform {
var needsInit = _platformInstanceNeedsInit;
if (needsInit) {
initPlatformInstance();
_platformInstanceNeedsInit = false;
}
return BitsdojoWindowPlatform.instance;
}
void doWhenWindowReady(VoidCallback callback) {
_platform.doWhenWindowReady(callback);
}
DesktopWindow get appWindow {
return _platform.appWindow;
}