import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hbb/main.dart'; enum SystemWindowTheme { light, dark } /// The platform channel for RustDesk. class RdPlatformChannel { RdPlatformChannel._(); static final RdPlatformChannel _windowUtil = RdPlatformChannel._(); static RdPlatformChannel get instance => _windowUtil; final MethodChannel _osxMethodChannel = MethodChannel("org.rustdesk.rustdesk/macos"); final MethodChannel _winMethodChannel = MethodChannel("org.rustdesk.rustdesk/windows"); final MethodChannel _linuxMethodChannel = MethodChannel("org.rustdesk.rustdesk/linux"); /// Change the theme of the system window Future changeSystemWindowTheme(SystemWindowTheme theme) { assert(Platform.isMacOS); if (kDebugMode) { print( "[Window ${kWindowId ?? 'Main'}] change system window theme to ${theme.name}"); } return _osxMethodChannel .invokeMethod("setWindowTheme", {"themeName": theme.name}); } /// Terminate .app manually. Future terminate() { assert(Platform.isMacOS); return _osxMethodChannel.invokeMethod("terminate"); } }