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.
É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.
Évènement: 'mouse-up' macOS
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Émis lorsque la souris est relachée de l'icône de la zone de notification.
Note: Suite à des contraintes de macOS, iIl ne sera pas émis si vous avez défini un menu contextuel pour votre Tray en utilisant tray.setContextMenu
, .
Événement : 'mouse-move' macOS
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Émis lors d'un click de souris sur l'icône de la zone de notification.
Event: 'mouse-enter' macOS Windows
Retourne :
event
KeyboardEventposition
Point - la position de l’événement.
Émis lorsque la souris entre dans la zone de l’icône.
Event: 'mouse-leave' macOS Windows
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
Définit l'option pour ignorer les événements double click. Ignorer ces événements vous permet de détecter chaque clic de l'icône de la barre de notification.
Cette valeur est définie à false 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) (facultatif) - Icône à utiliser lorsqueiconType
vautcustom
.iconType
string (facultatif) - Peut prendre une des valeursnone
,info
,warning
,error
oucustom
. La valeur par défaut estcustom
.title
stringcontent
stringlargeIcon
boolean (facultatif) - Indique si la grande version de l'icône doit être utilisée. La valeur par défaut esttrue
. Correspond àNIIF_LARGE_ICON
.noSound
boolean (optionelle) - Ne pas jouer le son associé. Par défaut la valeur estfalse
. Correspond àNIIF_NOSOUND
.respectQuietTime
boolean (facultatif) - Ne pas afficher la bulle si l'utilisateur actuel est en "temps silencieux". Par défaut la valeur estfalse
. Correspond àNIIF_RESPECT_QUIET_TIME
.
Affiche une bulle dans la barre d'État.
tray.removeBalloon()
Windows
Supprime une bulle dans la barre d'État.
tray.focus()
Windows
Redonne le focus à la zone de notification de la barre des tâches. Les icônes de la zone de notification doivent utiliser ce message quand elles ont terminé leur opération d'interface utilisateur. Par exemple, si l'icône affiche un menu de raccourci, mais que l'utilisateur appuie sur ESC pour l'annuler, vous devez utiliser tray.focus()
pour redonner le focus à la zone de notification.
tray.popUpContextMenu([menu, position])
macOS Windows
menu
Menu (facultatif)position
Point (facultatif) - Position du menu.
Fait apparaître le menu contextuel de l'icône de la barre de notification. Quand menu
est transmis, le menu
va être affiché au lieu de la barre d'icônes.
La position
n’est disponible que sur Windows, et c’est (0, 0) par défaut.
tray.closeContextMenu()
macOS Windows
Ferme un menu contextuel ouvert, tel que défini par 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.