| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | # Tray
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | A `Tray` represents an icon in an operating system's notification area, it is | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | usually attached with a context menu. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```javascript | 
					
						
							| 
									
										
										
										
											2015-11-12 21:20:09 +08:00
										 |  |  | const electron = require('electron'); | 
					
						
							|  |  |  | const app = electron.app; | 
					
						
							|  |  |  | const Menu = electron.Menu; | 
					
						
							|  |  |  | const Tray = electron.Tray; | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-17 18:06:15 +02:00
										 |  |  | var appIcon = null; | 
					
						
							|  |  |  | app.on('ready', function(){ | 
					
						
							|  |  |  |   appIcon = new Tray('/path/to/my/icon'); | 
					
						
							|  |  |  |   var contextMenu = Menu.buildFromTemplate([ | 
					
						
							|  |  |  |     { label: 'Item1', type: 'radio' }, | 
					
						
							|  |  |  |     { label: 'Item2', type: 'radio' }, | 
					
						
							| 
									
										
										
										
											2014-12-11 12:28:01 +01:00
										 |  |  |     { label: 'Item3', type: 'radio', checked: true }, | 
					
						
							| 
									
										
										
										
											2015-06-09 18:11:40 +02:00
										 |  |  |     { label: 'Item4', type: 'radio' } | 
					
						
							| 
									
										
										
										
											2014-06-17 18:06:15 +02:00
										 |  |  |   ]); | 
					
						
							|  |  |  |   appIcon.setToolTip('This is my application.'); | 
					
						
							|  |  |  |   appIcon.setContextMenu(contextMenu); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __Platform limitations:__ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | * On Linux the app indicator will be used if it is supported, otherwise | 
					
						
							| 
									
										
										
										
											2014-06-02 23:18:14 +08:00
										 |  |  |   `GtkStatusIcon` will be used instead. | 
					
						
							| 
									
										
										
										
											2015-07-21 11:27:24 +08:00
										 |  |  | * On Linux distributions that only have app indicator support, you have to | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  |   install `libappindicator1` to make the tray icon work. | 
					
						
							|  |  |  | * App indicator will only be shown when it has a context menu. | 
					
						
							| 
									
										
										
										
											2015-11-13 16:41:33 +08:00
										 |  |  | * When app indicator is used on Linux, the `click` event is ignored. | 
					
						
							| 
									
										
										
										
											2016-02-16 23:10:05 +08:00
										 |  |  | * On Linux in order for changes made to individual `MenuItem`s to take effect, | 
					
						
							|  |  |  |   you have to call `setContextMenu` again. For example: | 
					
						
							| 
									
										
										
										
											2016-02-16 16:24:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```javascript | 
					
						
							| 
									
										
										
										
											2016-02-16 23:10:05 +08:00
										 |  |  | contextMenu.items[2].checked = false; | 
					
						
							|  |  |  | appIcon.setContextMenu(contextMenu); | 
					
						
							| 
									
										
										
										
											2016-02-16 16:24:05 +02:00
										 |  |  | ``` | 
					
						
							| 
									
										
										
										
											2014-06-02 23:18:14 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | If you want to keep exact same behaviors on all platforms, you should not | 
					
						
							| 
									
										
										
										
											2015-11-13 16:41:33 +08:00
										 |  |  | rely on the `click` event and always attach a context menu to the tray icon. | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Class: Tray
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-20 10:53:20 +08:00
										 |  |  | `Tray` is an [EventEmitter][event-emitter]. | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `new Tray(image)`
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-12 13:52:28 +08:00
										 |  |  | * `image` [NativeImage](native-image.md) | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Creates a new tray icon associated with the `image`. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ## Events
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The `Tray` module emits the following events: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | **Note:** Some events are only available on specific operating systems and are | 
					
						
							|  |  |  | labeled as such. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-13 16:41:33 +08:00
										 |  |  | ### Event: 'click'
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-29 14:27:32 +08:00
										 |  |  | * `event` Event | 
					
						
							|  |  |  |   * `altKey` Boolean | 
					
						
							|  |  |  |   * `shiftKey` Boolean | 
					
						
							|  |  |  |   * `ctrlKey` Boolean | 
					
						
							| 
									
										
										
										
											2015-07-29 14:44:08 +08:00
										 |  |  |   * `metaKey` Boolean | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | * `bounds` Object - the bounds of tray icon. | 
					
						
							| 
									
										
										
										
											2015-05-01 15:24:22 +05:30
										 |  |  |   * `x` Integer | 
					
						
							|  |  |  |   * `y` Integer | 
					
						
							| 
									
										
										
										
											2015-05-04 11:23:09 +08:00
										 |  |  |   * `width` Integer | 
					
						
							|  |  |  |   * `height` Integer | 
					
						
							| 
									
										
										
										
											2015-05-01 15:24:22 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | Emitted when the tray icon is clicked. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-10 13:00:15 +08:00
										 |  |  | __Note:__ The `bounds` payload is only implemented on OS X and Windows. | 
					
						
							| 
									
										
										
										
											2015-05-04 11:23:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-13 16:41:33 +08:00
										 |  |  | ### Event: 'right-click' _OS X_ _Windows_
 | 
					
						
							| 
									
										
										
										
											2015-07-15 20:13:59 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-29 14:27:32 +08:00
										 |  |  | * `event` Event | 
					
						
							|  |  |  |   * `altKey` Boolean | 
					
						
							|  |  |  |   * `shiftKey` Boolean | 
					
						
							|  |  |  |   * `ctrlKey` Boolean | 
					
						
							| 
									
										
										
										
											2015-07-29 14:44:08 +08:00
										 |  |  |   * `metaKey` Boolean | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | * `bounds` Object - the bounds of tray icon. | 
					
						
							| 
									
										
										
										
											2015-07-15 20:13:59 +08:00
										 |  |  |   * `x` Integer | 
					
						
							|  |  |  |   * `y` Integer | 
					
						
							|  |  |  |   * `width` Integer | 
					
						
							|  |  |  |   * `height` Integer | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Emitted when the tray icon is right clicked. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-13 16:41:33 +08:00
										 |  |  | ### Event: 'double-click' _OS X_ _Windows_
 | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-29 14:27:32 +08:00
										 |  |  | * `event` Event | 
					
						
							|  |  |  |   * `altKey` Boolean | 
					
						
							|  |  |  |   * `shiftKey` Boolean | 
					
						
							|  |  |  |   * `ctrlKey` Boolean | 
					
						
							| 
									
										
										
										
											2015-07-29 14:44:08 +08:00
										 |  |  |   * `metaKey` Boolean | 
					
						
							| 
									
										
										
										
											2015-07-25 21:16:15 -07:00
										 |  |  | * `bounds` Object - the bounds of tray icon | 
					
						
							|  |  |  |   * `x` Integer | 
					
						
							|  |  |  |   * `y` Integer | 
					
						
							|  |  |  |   * `width` Integer | 
					
						
							|  |  |  |   * `height` Integer | 
					
						
							| 
									
										
										
										
											2015-07-29 11:28:20 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the tray icon is double clicked. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### Event: 'balloon-show' _Windows_
 | 
					
						
							| 
									
										
										
										
											2014-11-28 19:47:21 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the tray balloon shows. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-13 16:41:33 +08:00
										 |  |  | ### Event: 'balloon-click' _Windows_
 | 
					
						
							| 
									
										
										
										
											2014-11-28 19:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the tray balloon is clicked. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### Event: 'balloon-closed' _Windows_
 | 
					
						
							| 
									
										
										
										
											2014-11-28 19:47:21 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when the tray balloon is closed because of timeout or user manually | 
					
						
							|  |  |  | closes it. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 10:14:55 -06:00
										 |  |  | ### Event: 'drop' _OS X_
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Emitted when any dragged items are dropped on the tray icon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### Event: 'drop-files' _OS X_
 | 
					
						
							| 
									
										
										
										
											2015-07-19 12:12:28 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | * `event` | 
					
						
							|  |  |  | * `files` Array - the file path of dropped files. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Emitted when dragged files are dropped in the tray icon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 09:27:39 -06:00
										 |  |  | ### Event: 'drag-enter' _OS X_
 | 
					
						
							| 
									
										
										
										
											2015-11-05 18:49:34 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when a drag operation enters the tray icon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 09:27:39 -06:00
										 |  |  | ### Event: 'drag-leave' _OS X_
 | 
					
						
							| 
									
										
										
										
											2015-11-05 18:49:34 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | Emitted when a drag operation exits the tray icon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 10:14:55 -06:00
										 |  |  | ### Event: 'drag-end' _OS X_
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Emitted when a drag operation ends on the tray or ends at another location. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ## Methods
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The `Tray` module has the following methods: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-09 14:09:14 -07:00
										 |  |  | **Note:** Some methods are only available on specific operating systems and are | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | labeled as such. | 
					
						
							| 
									
										
										
										
											2015-07-19 12:12:28 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.destroy()`
 | 
					
						
							| 
									
										
										
										
											2014-11-28 18:06:51 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Destroys the tray icon immediately. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.setImage(image)`
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-12 13:52:28 +08:00
										 |  |  | * `image` [NativeImage](native-image.md) | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Sets the `image` associated with this tray icon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.setPressedImage(image)` _OS X_
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-12 13:52:28 +08:00
										 |  |  | * `image` [NativeImage](native-image.md) | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-16 18:17:51 -07:00
										 |  |  | Sets the `image` associated with this tray icon when pressed on OS X. | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.setToolTip(toolTip)`
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | * `toolTip` String | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | Sets the hover text for this tray icon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.setTitle(title)` _OS X_
 | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | * `title` String | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Sets the title displayed aside of the tray icon in the status bar. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.setHighlightMode(highlight)` _OS X_
 | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-09 15:04:00 +02:00
										 |  |  | * `highlight` Boolean | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-17 13:43:55 -08:00
										 |  |  | Sets whether the tray icon's background becomes highlighted (in blue) | 
					
						
							|  |  |  | when the tray icon is clicked. Defaults to true. | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.displayBalloon(options)` _Windows_
 | 
					
						
							| 
									
										
										
										
											2014-11-28 19:23:13 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | * `options` Object | 
					
						
							| 
									
										
										
										
											2015-02-12 13:52:28 +08:00
										 |  |  |   * `icon` [NativeImage](native-image.md) | 
					
						
							| 
									
										
										
										
											2014-11-28 19:23:13 +08:00
										 |  |  |   * `title` String | 
					
						
							|  |  |  |   * `content` String | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-04 11:23:09 +08:00
										 |  |  | Displays a tray balloon. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-02 18:43:11 +08:00
										 |  |  | ### `Tray.popUpContextMenu([menu, position])` _OS X_ _Windows_
 | 
					
						
							| 
									
										
										
										
											2015-05-04 11:23:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-02 18:43:11 +08:00
										 |  |  | * `menu` Menu (optional) | 
					
						
							|  |  |  | * `position` Object (optional) - The pop up position. | 
					
						
							| 
									
										
										
										
											2015-07-16 11:53:13 +08:00
										 |  |  |   * `x` Integer | 
					
						
							|  |  |  |   * `y` Integer | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-02 18:43:11 +08:00
										 |  |  | Popups the context menu of tray icon. When `menu` is passed, the `menu` will | 
					
						
							|  |  |  | showed instead of the tray's context menu. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-16 11:53:13 +08:00
										 |  |  | The `position` is only available on Windows, and it is (0, 0) by default. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-28 22:46:39 -07:00
										 |  |  | ### `Tray.setContextMenu(menu)`
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | * `menu` Menu | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-04 11:23:09 +08:00
										 |  |  | Sets the context menu for this icon. | 
					
						
							| 
									
										
										
										
											2014-09-09 19:50:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-02 11:47:22 +08:00
										 |  |  | [event-emitter]: http://nodejs.org/api/events.html#events_class_events_eventemitter |