| 
									
										
										
										
											2023-02-02 13:57:20 +08:00
										 |  |  | import 'dart:io'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import 'package:flutter/foundation.dart'; | 
					
						
							|  |  |  | import 'package:flutter/services.dart'; | 
					
						
							|  |  |  | import 'package:flutter_hbb/main.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum SystemWindowTheme { light, dark } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-02 14:03:50 +08:00
										 |  |  | /// The platform channel for RustDesk.
 | 
					
						
							| 
									
										
										
										
											2023-02-02 13:57:20 +08:00
										 |  |  | 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}); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-02-03 17:08:40 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   /// Terminate .app manually.
 | 
					
						
							|  |  |  |   Future<void> terminate() { | 
					
						
							|  |  |  |     assert(Platform.isMacOS); | 
					
						
							|  |  |  |     return _osxMethodChannel.invokeMethod("terminate"); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-02-02 13:57:20 +08:00
										 |  |  | } |