2015-08-29 05:46:39 +00:00
|
|
|
# Tray
|
2014-06-02 03:47:22 +00:00
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
A `Tray` represents an icon in an operating system's notification area, it is
|
2014-06-02 03:47:22 +00:00
|
|
|
usually attached with a context menu.
|
|
|
|
|
|
|
|
```javascript
|
2014-06-17 16:06:15 +00:00
|
|
|
var app = require('app');
|
2014-06-02 03:47:22 +00:00
|
|
|
var Menu = require('menu');
|
|
|
|
var Tray = require('tray');
|
|
|
|
|
2014-06-17 16:06:15 +00: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 11:28:01 +00:00
|
|
|
{ label: 'Item3', type: 'radio', checked: true },
|
2015-06-09 16:11:40 +00:00
|
|
|
{ label: 'Item4', type: 'radio' }
|
2014-06-17 16:06:15 +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
|
2014-06-02 15:18:14 +00:00
|
|
|
`GtkStatusIcon` will be used instead.
|
2015-07-21 03:27:24 +00:00
|
|
|
* 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 `clicked` event is ignored.
|
2014-06-02 15:18:14 +00:00
|
|
|
|
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 `clicked` 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.
|
|
|
|
|
2014-06-02 03:47:22 +00:00
|
|
|
### Event: 'clicked'
|
|
|
|
|
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-05-01 09:54:22 +00:00
|
|
|
* `x` Integer
|
|
|
|
* `y` Integer
|
2015-05-04 03:23:09 +00:00
|
|
|
* `width` Integer
|
|
|
|
* `height` Integer
|
2015-05-01 09:54:22 +00:00
|
|
|
|
2014-06-02 03:47:22 +00:00
|
|
|
Emitted when the tray icon is clicked.
|
|
|
|
|
2015-08-10 05:00:15 +00:00
|
|
|
__Note:__ The `bounds` payload is only implemented on OS X and Windows.
|
2015-05-04 03:23:09 +00:00
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### Event: 'right-clicked' _OS X_ _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.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### Event: 'double-clicked' _OS X_ _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
|
2015-07-26 04:16:15 +00:00
|
|
|
* `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_
|
2014-11-28 11:47:21 +00:00
|
|
|
|
|
|
|
Emitted when the tray balloon shows.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### Event: 'balloon-clicked' _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_
|
2014-11-28 11:47:21 +00:00
|
|
|
|
|
|
|
Emitted when the tray balloon is closed because of timeout or user manually
|
|
|
|
closes it.
|
|
|
|
|
2015-11-10 16:14:55 +00:00
|
|
|
### Event: 'drop' _OS X_
|
|
|
|
|
|
|
|
Emitted when any dragged items are dropped on the tray icon.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### Event: 'drop-files' _OS X_
|
2015-07-19 04:12:28 +00:00
|
|
|
|
|
|
|
* `event`
|
|
|
|
* `files` Array - the file path of dropped files.
|
|
|
|
|
|
|
|
Emitted when dragged files are dropped in the tray icon.
|
|
|
|
|
2015-11-10 15:27:39 +00:00
|
|
|
### Event: 'drag-enter' _OS X_
|
2015-11-06 00:49:34 +00:00
|
|
|
|
|
|
|
Emitted when a drag operation enters the tray icon.
|
|
|
|
|
2015-11-10 15:27:39 +00:00
|
|
|
### Event: 'drag-leave' _OS X_
|
2015-11-06 00:49:34 +00:00
|
|
|
|
|
|
|
Emitted when a drag operation exits the tray icon.
|
|
|
|
|
2015-11-10 16:14:55 +00:00
|
|
|
### Event: 'drag-end' _OS X_
|
|
|
|
|
|
|
|
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-07-19 04:12:28 +00:00
|
|
|
|
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.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### `Tray.setPressedImage(image)` _OS X_
|
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
|
|
|
|
2015-06-17 01:17:51 +00:00
|
|
|
Sets the `image` associated with this tray icon when pressed on OS X.
|
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.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### `Tray.setTitle(title)` _OS X_
|
2014-09-09 11:50:50 +00:00
|
|
|
|
|
|
|
* `title` String
|
|
|
|
|
|
|
|
Sets the title displayed aside of the tray icon in the status bar.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### `Tray.setHighlightMode(highlight)` _OS X_
|
2014-09-09 11:50:50 +00:00
|
|
|
|
2014-09-09 13:04:00 +00:00
|
|
|
* `highlight` Boolean
|
2014-09-09 11:50:50 +00:00
|
|
|
|
|
|
|
Sets whether the tray icon is highlighted when it is clicked.
|
|
|
|
|
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
|
|
|
|
|
2015-05-04 03:23:09 +00:00
|
|
|
Displays a tray balloon.
|
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
### `Tray.popUpContextMenu([position])` _OS X_ _Windows_
|
2015-05-04 03:23:09 +00:00
|
|
|
|
2015-08-29 05:46:39 +00:00
|
|
|
* `position` Object (optional)- The pop up position.
|
2015-07-16 03:53:13 +00:00
|
|
|
* `x` Integer
|
|
|
|
* `y` Integer
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2015-05-04 03:23:09 +00:00
|
|
|
Sets the context menu for this icon.
|
2014-09-09 11:50:50 +00:00
|
|
|
|
2014-06-02 03:47:22 +00:00
|
|
|
[event-emitter]: http://nodejs.org/api/events.html#events_class_events_eventemitter
|