application-menu.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. const {Menu, shell} = require('electron');
  2. const func = require('./function/menu');
  3. const dialog = require('./function/dialog');
  4. const demo = require('./function/demo-application-menu');
  5. let template = [
  6. {
  7. label: 'Fichier',
  8. submenu: [
  9. {
  10. label: 'Nouveau',
  11. accelerator: 'CmdOrCtrl+N',
  12. click: func.new
  13. },
  14. {
  15. label: 'Importer',
  16. accelerator: 'CmdOrCtrl+I',
  17. click: func.import
  18. },
  19. {
  20. type: 'separator'
  21. },
  22. {
  23. label: 'Reset',
  24. accelerator: 'CmdOrCtrl+R',
  25. click: () => {
  26. mainWindow.webContents.send('reset-app');
  27. }
  28. }
  29. ]
  30. },
  31. {
  32. label: 'Démo',
  33. submenu: [
  34. {
  35. label: 'Calcul nombre premier',
  36. click: () => {
  37. console.log('prime-number');
  38. }
  39. },
  40. {
  41. label: 'Reduire l\'application',
  42. click: () => {
  43. console.log('tray+notif');
  44. }
  45. }
  46. ]
  47. },
  48. {
  49. label: 'Fenêtre',
  50. submenu: [
  51. {
  52. label: 'Pleine écran',
  53. accelerator: (() => {
  54. if (process.platform === 'darwin') {
  55. return 'Ctrl+Command+F'
  56. } else {
  57. return 'F11'
  58. }
  59. })(),
  60. click: (item, focusedWindow) => {
  61. if (focusedWindow) {
  62. focusedWindow.setFullScreen(!focusedWindow.isFullScreen())
  63. }
  64. }
  65. },
  66. {
  67. label: 'Minimiser',
  68. accelerator: 'CmdOrCtrl+M',
  69. role: 'minimize'
  70. },
  71. {
  72. label: 'Fermer',
  73. accelerator: 'CmdOrCtrl+W',
  74. role: 'close'
  75. },
  76. {
  77. type: 'separator'
  78. },
  79. {
  80. label: 'Outils Developpeur',
  81. accelerator: (() => {
  82. if (process.platform === 'darwin') {
  83. return 'Alt+Command+I'
  84. } else {
  85. return 'Ctrl+Shift+I'
  86. }
  87. })(),
  88. click: func.devTool
  89. }
  90. ]
  91. },
  92. {
  93. label: 'À propos',
  94. submenu: [
  95. {
  96. label: 'Electron',
  97. click: () => {
  98. shell.openExternal('https://www.electronjs.org');
  99. }
  100. },
  101. {
  102. label: 'Electronotes',
  103. click: () => {
  104. shell.openExternal('https://gitlab.univ-artois.fr/arthur_brandao/conf-electron');
  105. }
  106. },
  107. {
  108. label: 'Versions',
  109. click: () => {
  110. dialog.message(
  111. 'Versions',
  112. `Electron : ${process.versions.electron}\nChrome : ${process.versions.chrome}\nNode : ${process.versions.node}`,
  113. 'info',
  114. ['Fermer']
  115. );
  116. }
  117. }
  118. ]
  119. }
  120. ];
  121. const menu = Menu.buildFromTemplate(template);
  122. Menu.setApplicationMenu(menu);