electron/docs/api/tray.md

222 lines
5.2 KiB
Markdown
Raw Normal View History

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