37 lines
		
	
	
		
			1021 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1021 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
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");
 | 
						|
 | 
						|
  /// Change the theme of the system window
 | 
						|
  Future<void> 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<void> terminate() {
 | 
						|
    assert(Platform.isMacOS);
 | 
						|
    return _osxMethodChannel.invokeMethod("terminate");
 | 
						|
  }
 | 
						|
}
 |