Tray
Classe : Tray
Ajoute des icônes et des menus contextuels à la zone de notification du système.
Processus : Main
Tray
est un EventEmitter.
const { app, Menu, Tray } = require('electron')
let tray = null
app.whenReady().then(() => {
tray = 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' }
])
tray.setToolTip('This is my application.')
tray.setContextMenu(contextMenu)
})
Limitations selon les plateformes :
- Sur Linux, l'indicateur d'application sera utilisé s'il est pris en charge, sinon
GtkStatusIcon
sera utilisé à la place. - Sur les distributions Linux qui ont seulement le support de l'indicateur d'application, vous devrez installer
libappindicator1
pour faire fonctionner l'icône. - L'indicateur d'application sera affiché seulement lorsqu'il a un menu contextuel.
- Lorsque l'indicateur d'application est utilisé sur Linux, l'événement
click
est ignoré. - On Linux in order for changes made to individual
MenuItem
s to take effect, you have to callsetContextMenu
again. Par exemple :
const { app, Menu, Tray } = require('electron')
let appIcon = null
app.whenReady().then(() => {
appIcon = new Tray('/path/to/my/icon')
const contextMenu = Menu.buildFromTemplate([
{ label: 'Item1', type: 'radio' },
{ label: 'Item2', type: 'radio' }
])
// Make a change to the context menu
contextMenu.items[1].checked = false
// Call this again for Linux because we modified the context menu
appIcon.setContextMenu(contextMenu)
})
- Sur Windows, il est recommandé d'utiliser des icônes du type
ICO
pour obtenir les meilleurs effets visuels.
Si vous souhaitez conserver les mêmes comportements sur toutes les plateformes, vous ne devriez pas vous appuyez sur l'événement click
et toujours fixer un menu contextuel sur l'icône.
new Tray(image, [guid])
image
(NativeImage | string)guid
string (optional) Windows - Assigns a GUID to the tray icon. If the executable is signed and the signature contains an organization in the subject line then the GUID is permanently associated with that signature. OS level settings like the position of the tray icon in the system tray will persist even if the path to the executable changes. If the executable is not code-signed then the GUID is permanently associated with the path to the executable. Changing the path to the executable will break the creation of the tray icon and a new GUID must be used. However, it is highly recommended to use the GUID parameter only in conjunction with code-signed executable. If an App defines multiple tray icons then each icon must use a separate GUID.
Créer une nouvelle icône dans la barre de notification avec l'image
.
Événements d’instance
Le module Tray
émet les événements suivants :
Événement : 'click'
Retourne :
event
KeyboardEventbounds
Rectangle - Les limites de l'icône.position
Point - la position de l’événement.
Émis lorsque l’utilisateur clique sur l’icône.
Événement : 'right-click' macOS Windows
Retourne :
event
KeyboardEventbounds
Rectangle - Les limites de l'icône.
Émis lorsque l’utilisateur fait un clique droit sur l’icône.
Événement : 'double-click' macOS Windows
Retourne :
event
KeyboardEventbounds
Rectangle - Les limites de l'icône.
Émis lorsque l’utilisateur double clique sur l’icône.
Événement : 'balloon-show' Windows
Émis lorsque le ballon de la barre d’État s’affiche.
Événement : 'balloon-click' Windows
Émis lorsque l’utilisateur clique sur le ballon de la barre d'État.
Événement : 'balloon-closed' Windows
Émis lorsque le ballon de la barre d’État est fermé en raison du délai d’attente dépassé ou de l’utilisateur le ferme manuellement.
Événement : 'drop' macOS
Émis lorsque un ou des éléments sont glissés et déposés sur l’icône.
Événement : 'drop-files' macOS
Retourne :
event
Eventfiles
string[] - les chemins d’accès des fichiers déposés.
Émis lorsque des fichiers sont glissés et déposés sur l’icône.
Événement : 'drop-text' macOS
Retourne :
event
Eventtext
string - le texte déposé.
Émis lorsqu'un texte est déposé sur l’icône.
Événement : 'drag-enter' macOS
Émis lorsqu’une opération glisser entre dans la zone de l’icône.
Événement : 'drag-leave' macOS
Émis lorsqu’une opération glisser sort de la zone de l’icône.
Événement : 'drag-end' macOS
Émis lorsqu’une opération glisser se termine sur l'icône ou à un autre emplacement.
Event: 'mouse-up' macOS
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Emitted when the mouse is released from clicking the tray icon.
Note: This will not be emitted if you have set a context menu for your Tray using tray.setContextMenu
, as a result of macOS-level constraints.
Event: 'mouse-down' macOS
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Emitted when the mouse clicks the tray icon.
Événement : 'mouse-enter' macOS
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Émis lorsque la souris entre dans la zone de l’icône.
Événement : 'mouse-leave' macOS
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Émis lorsque la souris sort de la zone de l’icône.
Event: 'mouse-move' macOS Windows
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Émis lorsque la souris bouge dans la zone de l’icône.
Méthodes d’instance
La classe Tray
dispose des méthodes suivantes :
tray.destroy()
Détruit l’icône immédiatement.
tray.setImage(image)
image
(NativeImage | string)
Définit l’image
associée à l'icône.
tray.setPressedImage(image)
macOS
image
(NativeImage | string)
Définit l’image
associée à l'icône quand elle est pressée sur macOS.
tray.setToolTip(toolTip)
toolTip
string
Définit le texte au survol pour l'icône.
tray.setTitle(title[, options])
macOS
title
string
Définit le titre affiché à côté de l'icône de la barre d'état dans la barre d'état (couleurs support ANSI).
tray.getTitle()
macOS
Retourne string
- le titre affiché à côté de l'icône de la barre d'état
tray.setIgnoreDoubleClickEvents(ignore)
macOS
ignore
boolean
Sets the option to ignore double click events. Ignoring these events allows you to detect every individual click of the tray icon.
Cette valeur est définie à <0>false</0> par défaut.
tray.getIgnoreDoubleClickEvents()
macOS
Retourne un boolean
- Si oui ou non les événènements de double clic seront ignorés.
tray.displayBalloon(options)
Windows
- Objet
options
icon
(NativeImage | string) (optional) - Icon to use wheniconType
iscustom
.iconType
string (optional) - Can benone
,info
,warning
,error
orcustom
.custom
par défaut.title
stringcontent
stringlargeIcon
boolean (optional) - The large version of the icon should be used. La valeur par défaut estvraie
. Maps toNIIF_LARGE_ICON
.noSound
boolean (optional) - Do not play the associated sound. Par défaut la valeur estfalse
. Maps toNIIF_NOSOUND
.respectQuietTime
boolean (optional) - Do not display the balloon notification if the current user is in "quiet time". Par défaut la valeur estfalse
. Maps toNIIF_RESPECT_QUIET_TIME
.
Affiche une bulle dans la barre d'État.
tray.removeBalloon()
Windows
Removes a tray balloon.
tray.focus()
Windows
Returns focus to the taskbar notification area. Notification area icons should use this message when they have completed their UI operation. For example, if the icon displays a shortcut menu, but the user presses ESC to cancel it, use tray.focus()
to return focus to the notification area.
tray.popUpContextMenu([menu, position])
macOS Windows
menu
Menu (facultatif)position
Point (facultatif) - Position du menu.
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.
La position
n’est disponible que sur Windows, et c’est (0, 0) par défaut.
tray.closeContextMenu()
macOS Windows
Closes an open context menu, as set by tray.setContextMenu()
.
tray.setContextMenu(menu)
menu
Menu | null
Définit le menu contextuel de l'icône.
tray.getBounds()
macOS Windows
Retourne Rectangle
Les limites
de l'icône de la barre d’État en tant qu'Objet
.
tray.isDestroyed()
Retourne boolean
- si l’icône est détruite.