tray.js 983 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. 'use strict';
  2. const {app, Tray, Menu} = require('electron');
  3. const path = require('path');
  4. const pkg = require('../package.json');
  5. module.exports = () => {
  6. MAIN_WINDOW.on('close', (event) => {
  7. if (!CAN_QUIT) {
  8. MAIN_WINDOW.hide();
  9. MAIN_WINDOW.setSkipTaskbar(true);
  10. event.preventDefault();
  11. }
  12. });
  13. MAIN_WINDOW.show();
  14. let trayMenuTemplate = [{
  15. label: '退出',
  16. click: function () {
  17. MAIN_WINDOW.destroy();
  18. app.quit()
  19. }
  20. }]
  21. let iconPath = path.join(app.getAppPath(), '/app/public/images/tray_logo.png');
  22. APP_TRAY = new Tray(iconPath);
  23. const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);
  24. APP_TRAY.setToolTip(pkg.softName);
  25. APP_TRAY.setContextMenu(contextMenu);
  26. APP_TRAY.on('click', function(){
  27. if (MAIN_WINDOW.isVisible()) {
  28. MAIN_WINDOW.hide();
  29. MAIN_WINDOW.setSkipTaskbar(false);
  30. } else {
  31. MAIN_WINDOW.show();
  32. MAIN_WINDOW.setSkipTaskbar(true);
  33. }
  34. });
  35. return APP_TRAY;
  36. }