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 parclick(menuItem, window, event)
lorsque l'élément de menu est cliqué.menuItem
MenuItemwindow
BaseWindow | indéfini - Sera non défini si aucune fenêtre n'est ouverte.event
KeyboardEvent
role
String (facultatif) - Peut prendre une des valeurs suivantes: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
,mergeAllWindows
,clearRecentDocuments
,moveTabToNewWindow
ouwindowMenu
- Définit l'action de l'élément de menu, la propriétéclick
sera ignorée lorsque un rôle est spécifié. Voir Rôles.type
string (facultatif) - Peut prendre une des valeurs suivantes:normal
,separator
,submenu
,checkbox
ou encoreradio
.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 esttrue
, et la valeurfalse
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 typecheckbox
ouradio
.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 lerole
est àshareMenu
.submenu
(MenuItemConstructorOptions[] | Menu) (facultatif) - Doit être spécifié pour les items de menu de typesubmenu
. Sisous-menu
est spécifié, letype: 'submenu'
peut être omis. Si la valeur n'est pas unMenu
alors elle sera automatiquement convertie en un Menu en utilisantMenu.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.
- Function (facultatif)
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'actionhide
.hideOthers
- Correspond à l'actionhideOtherApplications
.unhide
- Correspond à l'actionunhideAllApplications
.showSubstitutions
- Correspond à l'actionorderFrontSubstitutionsPanel
.toggleSmartQuotes
- Correspond à l'actiontoggleAutomaticQuoteSubstitution
.toggleSmartDashes
- Correspond à l'actiontoggleAutomaticDashSubstitution
.toggleTextReplacement
- Correspond à l'actiontoggleAutomaticTextReplacement
.startSpeaking
- Correspond à l'actionstartSpeaking
.stopSpeaking
- Correspond à l'actionstopSpeaking
.front
- Correspond à l'actionarrangeInFront
.zoom
- Correspond à l'actionperformZoom
.toggleTabBar
- Correspond à l'actiontoggleTabBar
.selectNextTab
- Correspond à l'actionselectNextTab
.selectPreviousTab
- Correspond à l'actionselectPreviousTab
.showAllTabs
- Correspond à l'actionshowAllTabs
.mergeAllWindows
- Correspond à l'actionmergeAllWindows
.moveTabToNewWindow
- Correspond à l'actionmoveTabToNewWindow
.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'actionclearRecentDocuments
.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 role
s 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
:
menuItem.id
string
indique l'identifiant unique de l'élément, cette propriété peut être modifiée dynamiquement .
menuItem.label
string
indique le label visible de l'item.
menuItem.click
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)
.
event
KeyboardEventfocusedWindow
BaseWindowfocusedWebContents
WebContents
menuItem.submenu
Un Menu
(facultatif) contenant le sous-menu de l'élément de menu s'il est présent.
menuItem.type
string
indique le type de l'item. Peut prendre une des valeurs suivantes: normal
, separator
, submenu
, checkbox
ou radio
.
menuItem.role
string
(facultatif) indiquant, si défini, le rôle de l'item. Peut prendre une des valeurs suivantes: 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
, mergeAllWindows
, clearRecentDocuments
, moveTabToNewWindow
ou windowMenu
menuItem.accelerator
Un Accelerator
(facultatif) qui indique , si défini, l'accélérateur de l'item.
menuItem.userAccelerator
Readonly macOS
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
.
menuItem.icon
Un NativeImage | string
(facultatif) indiquant si défini l'icône de l'élément .
menuItem.sublabel
Un string
indiquant le sulabel de l'item.
menuItem.toolTip
macOS
Une string
indique le texte au survol de l'élément.
menuItem.enabled
boolean
indique si l'élément est activé, cette propriété peut être modifiée dynamiquement.
menuItem.visible
boolean
indique si l'élément est visible, cette propriété peut être modifiée dynamiquement.
menuItem.checked
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.
menuItem.registerAccelerator
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.
menuItem.sharingItem
macOS
SharingItem
indiquant l'élément à partager lorsque le role
est shareMenu
.
Cette propriété peut être modifiée dynamiquement.
menuItem.commandId
number
indiquant l'identifiant séquentiel unique d'un élément.
menuItem.menu
Un Menu
dont l'item fait partie.