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)
})
Considérations relatives à la plate-forme
Linux
- L'icône de la barre d'état utilise StatusNotifierItem par défaut, lorsqu'il n'est pas disponible dans l'environnement de bureau de l'utilisateur, le
GtkStatusIcon
sera utilisé à la place. - L'évènement
click
est émis lorsque l'icône de la barre de tache est activée par l'utilisateur, cependant, la fonctionnalité StatusNotifierItem ne spécifie pas quelle action l'active. Pour certains environnemments de bureau, un click droit l'active, mais pour d'autres, cela peut être un double click droit. - Afin que les modifications apportées à
MenuItem
s prennent effet, vous devez appelersetContextMenu
à nouveau. 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' }
])
// Changement apporté au menu contextuel
contextMenu.items[1].checked = false
//Il faut effectuer un second appel pour Linux suite à la modification du menu contextuel
appIcon.setContextMenu(contextMenu)
})
MacOS
- Icons passed to the Tray constructor should be Template Images.
- Pour vous assurer que votre icône n'apparaitra pas avec un grain trop grossier sur les moniteurs de type retina, assurez-vous que votre image
@2x
est de 144dpi. - Si vous regroupez votre application (par exemple, avec webpack pour le développement), assurez-vous que les noms de fichiers ne sont pas mutilés ou hachés. Le nom du fichier doit se terminer par Template, et l'image
@2x
doit avoir le même nom de fichier que l'image standard, sinon MacOS ne pourra pas comme par magie inverser les couleurs de votre image ou utilisera l'image haute densité. - 16x16 (72dpi) et 32x32@2x (144dpi) fonctionne correctement pour la plupart des icônes.
Windows
- Pour obtenir les meilleurs effets visuels, il est recommandé d'utiliser des icônes du type
ICO
.
new Tray(image, [guid])
image
(NativeImage | string)guid
string (facultatif) Windows - Assigne un GUID à l'icône du tray. Si l'exécutable est signé et que la signature contient une organisation dans la ligne objet, alors le GUID est associé de façon permanente à cette signature. Les paramètres au niveau de l'OS comme la position de l'icône de la barre d'état dans la barre d'état système persisteront même si le chemin d'accès à l'exécutable change. Si l'exécutable n'est pas signé, alors le GUID est associé de façon permanente au chemin vers l'exécutable. Toute modification du chemin de l'éxécutable casse la création de l'icône de la zone de notification et un nouveau GUID doit être utilisé. Cependant, il est fortement recommandé d'utiliser le paramètre GUID uniquement en conjonction avec les exécutables dont le code est signé. Si une application définit plusieurs icônes dans la zone de notification, chaque icône doit utiliser un GUID distinct.
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.
Notez que sous Linux, cet événement est émis lorsque l'icône de la barre d'état reçoit une activation et que celle ci n'est pas nécessairement un click sur le bouton gauche de la souris.
É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.
Event: 'middle-click' Windows
Retourne :
event
KeyboardEventbounds
Rectangle - Les limites de l'icône.
Emitted when the tray icon is middle clicked.
É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.