| 
									
										
										
										
											2022-06-02 16:23:20 +08:00
										 |  |  | import 'dart:io'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import 'package:tray_manager/tray_manager.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 17:53:51 +08:00
										 |  |  | import '../common.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-02 10:22:41 +08:00
										 |  |  | const kTrayItemShowKey = "show"; | 
					
						
							|  |  |  | const kTrayItemQuitKey = "quit"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-02 16:23:20 +08:00
										 |  |  | Future<void> initTray({List<MenuItem>? extra_item}) async { | 
					
						
							|  |  |  |   List<MenuItem> items = [ | 
					
						
							| 
									
										
										
										
											2022-11-02 10:22:41 +08:00
										 |  |  |     MenuItem(key: kTrayItemShowKey, label: translate("Show RustDesk")), | 
					
						
							| 
									
										
										
										
											2022-06-02 16:23:20 +08:00
										 |  |  |     MenuItem.separator(), | 
					
						
							| 
									
										
										
										
											2022-11-02 10:22:41 +08:00
										 |  |  |     MenuItem(key: kTrayItemQuitKey, label: translate("Quit")), | 
					
						
							| 
									
										
										
										
											2022-06-02 16:23:20 +08:00
										 |  |  |   ]; | 
					
						
							|  |  |  |   if (extra_item != null) { | 
					
						
							|  |  |  |     items.insertAll(0, extra_item); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2022-11-02 10:22:41 +08:00
										 |  |  |   if (Platform.isMacOS || Platform.isWindows) { | 
					
						
							|  |  |  |     await trayManager.setToolTip("rustdesk"); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2022-11-02 11:10:28 +08:00
										 |  |  |   if (Platform.isMacOS || Platform.isLinux) { | 
					
						
							|  |  |  |     await trayManager.setTitle("rustdesk"); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   await trayManager | 
					
						
							|  |  |  |       .setIcon(Platform.isWindows ? "assets/logo.ico" : "assets/logo.png"); | 
					
						
							|  |  |  |   await trayManager.setContextMenu(Menu(items: items)); | 
					
						
							| 
									
										
										
										
											2022-11-02 10:22:41 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Future<void> destoryTray() async { | 
					
						
							|  |  |  |   return trayManager.destroy(); | 
					
						
							| 
									
										
										
										
											2022-06-02 16:23:20 +08:00
										 |  |  | } |