Aller au contenu principal

Classe : MenuItem

Classe : MenuItem

Ajoute des éléments aux menus et menus contextuels natifs de l’application.

Processus : Main

Voir Menu pour des exemples.

new MenuItem(options)

  • Objet options
    • Function (facultatif) click - Sera appelée avec click(menuItem, browserWindow, event) lorsque l'élément de menu est cliqué.
      • menuItem MenuItem
      • browserWindow BrowserWindow | undefined - Cela ne sera pas défini si aucune fenêtre n'est ouverte.
      • event KeyboardEvent
    • role string (optional) - Can be undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, showSubstitutions, toggleSmartQuotes, toggleSmartDashes, toggleTextReplacement, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow or windowMenu - Define the action of the menu item, when specified the click property will be ignored. Voir Rôles.
    • type string (facultatif) - Peut prendre une des valeurs suivantes: normal, separator, submenu, checkbox ou encore radio.
    • label string (facultatif)
    • sublabel string (facultatif)
    • toolTip string (facultatif) macOS - Texte s'affichant au survol de cet item de menu.
    • accélérateur Accelerator (facultatif)
    • icon (NativeImage | string) (facultatif)
    • enabled boolean (facultatif) - Si définit à false, l'élément de menu sera grisé et non cliquable.
    • acceleratorWorksWhenHidden booléen (facultatif) macOS - la valeur par défaut est true, et la valeur false empêche l’accélérateur de déclencher l’élément si celui-ci n’est pas visible.
    • visible boolean (facultatif) - Si false, l'élément de menu sera entièrement masqué.
    • checked boolean (facultatif) - Ne doit être spécifié que pour les éléments de menu de type checkbox ou radio .
    • registerAccelerator boolean (facultatif) Linux Windows - Si false, l'accélérateur ne sera pas enregistré par le système, mais il sera toujours affiché. La valeur par défaut est true.
    • sharingItem SharingItem (facultatif) macOS - L'élément à partager lorsque le role est à shareMenu.
    • submenu (MenuItemConstructorOptions[] | Menu) (facultatif) - Doit être spécifié pour les items de menu de type submenu. Si sous-menu est spécifié, le type: 'submenu' peut être omis. Si la valeur n'est pas un Menu alors elle sera automatiquement convertie en un Menu en utilisant Menu.buildFromTemplate.
    • id string (facultatif) - Unique dans chaque menu. Si il est défini, il pourra être utilisé comme référence pour cet élément à l'ai de de l'attribut position.
    • before string[] (optional) - Inserts this item before the item with the specified id. Si l'élément référencé n'existe pas, l'élément sera inséré à la fin du menu. Implique également que l'élément de menu en question doit être placé dans le même « groupe ».
    • after string[] (optional) - Inserts this item after the item with the specified id. Si l'élément référencé n'existe pas, l'élément sera inséré à la fin du menu.
    • beforeGroupContaining string[] (optional) - Provides a means for a single context menu to declare the placement of their containing group before the containing group of the item with the specified id.
    • afterGroupContaining string[] (optional) - Provides a means for a single context menu to declare the placement of their containing group after the containing group of the item with the specified id.

Remarque : acceleratorWorksWhenHidden est spécifié comme étant uniquement pour macOs puisque que les accélérateurs fonctionnent déja dans tous les cas où des éléments sont cachés sous Windows et Linux. L'option est rendue disponible pour donner la possibilité aux utilisateurs de la désactiver, cela étant possible dans le développement natif avec macOS.

Rôles

Les rôles permettent à des éléments du menu d'avoir des comportements prédéfinis.

Il est préférable de spécifier role pour tout élément de menu qui correspond à un rôle standard, plutôt que d'essayer d'implémenter manuellement le comportement dans une fonction click. Le comportement intégré de role produira un rendu plus "natif".

Les valeurs label et accelerator sont optionnelles lorsque vous utilisez un role et par défaut des valeurs appropriées pour chaque plateforme.

Chaque lien de menu doit avoir un role ou un label, ou bien encore un type dans le cas d'un séparateur .

La propriété role peut avoir les valeurs suivantes :

  • undo
  • about - Déclenche un panneau "about" natif (boîte de message personnalisée sous Windows, qui ne fournit pas le sien).
  • redo
  • cut
  • copy
  • paste
  • pasteAndMatchStyle
  • selectAll
  • delete
  • minimize - Minimise la fenêtre courante.
  • close - Ferme la fenêtre courante.
  • quit - Quitter l'application.
  • reload - Recharge la fenêtre courante.
  • forceReload - Recharge la fenêtre courante ignorant le cache.
  • toggleDevTools - Active/désactive l'affichage des devTools dans la fenêtre actuelle.
  • togglefullscreen -Active/désactive le mode plein écran dans la fenêtre actuelle.
  • resetZoom - Réinitialise le niveau de zoom de la page ciblée à la taille d'origine.
  • zoomIn - Zoom sur la page ciblée par 10%.
  • zoomOut - Zoom arrière de la page ciblée de 10%.
  • toggleSpellChecker - Active/désactive le vérificateur d'orthographe intégré.
  • fileMenu - Menu "File" complet par défaut (Close/Exit)
  • editMenu - Menu "Edit" complet par défaut (Undo, Copy, etc.).
  • viewMenu - Menu "View" complet par défaut (Reload, Toggle Developer Tools, etc.)
  • windowMenu - Menu "Windows" complet par défaut (Minimize, Zoom, etc.).

Les rôles supplémentaires suivants sont disponibles sur macOS:

  • appMenu - Tout le menu "App" par défaut (About, Services, etc.)
  • hide - Correspond à l'action hide.
  • hideOthers - Correspond à l'action hideOtherApplications.
  • unhide - Correspond à l'action unhideAllApplications.
  • showSubstitutions - Correspond à l'action orderFrontSubstitutionsPanel.
  • toggleSmartQuotes - Correspond à l'action toggleAutomaticQuoteSubstitution.
  • toggleSmartDashes - Correspond à l'action toggleAutomaticDashSubstitution.
  • toggleTextReplacement - Correspond à l'action toggleAutomaticTextReplacement.
  • startSpeaking - Correspond à l'action startSpeaking.
  • stopSpeaking - Correspond à l'action stopSpeaking.
  • front - Correspond à l'action arrangeInFront.
  • zoom - Correspond à l'action performZoom.
  • toggleTabBar - Correspond à l'action toggleTabBar.
  • selectNextTab - Correspond à l'action selectNextTab.
  • selectPreviousTab - Correspond à l'action selectPreviousTab.
  • showAllTabs - Map to the showAllTabs action.
  • mergeAllWindows - Correspond à l'action mergeAllWindows.
  • moveTabToNewWindow - Correspond à l'action moveTabToNewWindow.
  • window - Le sous-menu est un menu "Windows".
  • help - Le sous-menu est un menu "Help".
  • services - Le sous-menu est un menu "Services". Uniquement destinée au menu de l'Application et n’est pas identique au sous-menu "Services" utilisé dans les menus contextuels des applications macOS, qui n’est pas implémenté dans Electron.
  • recentDocuments - Le sous-menu est un menu "Ouvrir Récents".
  • clearRecentDocuments - Correspond à l'action clearRecentDocuments.
  • shareMenu - Le sous-menu est le share menu. La propriété sharingItem doit également être définie pour indiquer l'élément à partager.

Lorsque vous spécifiez un role sur macOS, label et accelerator sont les seules options qui affecteront l'élément de menu. Toutes les autres options seront ignorées. Les roles en minuscules comme par exemple toggledevtools, sont toujours supportés.

Nota Bene: Les propriétés enabled et visibility ne sont pas disponibles pour les éléments du menu de plus haut niveau sur MacOS.

Propriétés d'instance

Les propriétés suivantes sont disponibles pour les instances de MenuItem :

string indique l'identifiant unique de l'élément, cette propriété peut être modifiée dynamiquement .

string indique le label visible de l'item.

Function qui est activée lorsque l'élément MenuItem reçoit un événement de click. Elle peut être appelée par menuItem.click(event, focusedWindow, focusedWebContents).

Un Menu (facultatif) contenant le sous-menu de l'élément de menu s'il est présent.

string indique le type de l'item. Peut prendre une des valeurs suivantes: normal, separator, submenu, checkbox ou radio.

string (facultatif) indiquant, si défini, le rôle de l'item. Can be undo, redo, cut, copy, paste, pasteAndMatchStyle, delete, selectAll, reload, forceReload, toggleDevTools, resetZoom, zoomIn, zoomOut, toggleSpellChecker, togglefullscreen, window, minimize, close, help, about, services, hide, hideOthers, unhide, quit, startSpeaking, stopSpeaking, zoom, front, appMenu, fileMenu, editMenu, viewMenu, shareMenu, recentDocuments, toggleTabBar, selectNextTab, selectPreviousTab, showAllTabs, mergeAllWindows, clearRecentDocuments, moveTabToNewWindow or windowMenu

Un Accelerator (facultatif) qui indique , si défini, l'accélérateur de l'item.

Accelerator | null indiquant l'accélérateur assigné par l'utilisateur de l'élément du menu.

Note: Cette propriété n'est initialisée qu'après l'ajout du MenuItem à un Menu. Et ceci via Menu.buildFromTemplate ou Menu.append()/insert(). L'accès avant l'initialisation ne fera que renvoyer null.

Un NativeImage | string (facultatif) indiquant si défini l'icône de l'élément .

Un string indiquant le sulabel de l'item.

Une string indique le texte au survol de l'élément.

boolean indique si l'élément est activé, cette propriété peut être modifiée dynamiquement.

boolean indique si l'élément est visible, cette propriété peut être modifiée dynamiquement.

boolean indique si l'élément est coché, cette propriété peut être modifiée dynamiquement.

Une case à cocher lien de menu activera et éteindra la propriété cochée lorsque sera sélectionné.

Un lien de menu radio activera sa propriété cochée une fois cliqué, et désactivera cette propriété pour tous les éléments adjacents du même menu.

Vous pouvez ajouter une fonction clic pour un comportement supplémentaire.

Booléen indiquant si l'accélérateur doit être enregistré dans le système ou uniquement affiché.

Cette propriété peut être modifiée dynamiquement.

SharingItem indiquant l'élément à partager lorsque le role est shareMenu.

Cette propriété peut être modifiée dynamiquement.

number indiquant l'identifiant séquentiel unique d'un élément.

Un Menu dont l'item fait partie.