Aller au contenu principal

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 MenuItems to take effect, you have to call setContextMenu 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 :

Émis lorsque l’utilisateur clique sur l’icône.

Événement : 'right-click' macOS Windows

Retourne :

Émis lorsque l’utilisateur fait un clique droit sur l’icône.

Événement : 'double-click' macOS Windows

Retourne :

É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 Event
  • files 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 Event
  • text 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 :

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 :

Emitted when the mouse clicks the tray icon.

Événement : 'mouse-enter' macOS

Retourne :

Émis lorsque la souris entre dans la zone de l’icône.

Événement : 'mouse-leave' macOS

Retourne :

Émis lorsque la souris sort de la zone de l’icône.

Event: 'mouse-move' macOS Windows

Retourne :

É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)

Définit l’image associée à l'icône.

tray.setPressedImage(image) macOS

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
  • options Object (facultatif)
    • fontType string (optional) - The font family variant to display, can be monospaced or monospacedDigit. monospaced is available in macOS 10.15+ and monospacedDigit is available in macOS 10.11+. When left blank, the title uses the default system font.

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 when iconType is custom.
    • iconType string (optional) - Can be none, info, warning, error or custom. custom par défaut.
    • title string
    • content string
    • largeIcon boolean (optional) - The large version of the icon should be used. La valeur par défaut est vraie. Maps to NIIF_LARGE_ICON.
    • noSound boolean (optional) - Do not play the associated sound. Par défaut la valeur est false. Maps to NIIF_NOSOUND.
    • respectQuietTime boolean (optional) - Do not display the balloon notification if the current user is in "quiet time". Par défaut la valeur est false. Maps to NIIF_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.