methods.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. 'use strict';
  2. const electron = require('electron');
  3. const core = require('../core');
  4. const config = require('../config/config');
  5. const menu = require('../components/menu');
  6. const tray = require('../components/tray');
  7. const localfs = require('../lib/localfs');
  8. const bittorrent = require('../lib/bittorrent');
  9. const shell = electron.shell;
  10. const ipcMain = electron.ipcMain;
  11. ipcMain.on('render-sync-get-runtime-environment', (event) => {
  12. if (!process || !process.versions) {
  13. return null;
  14. }
  15. var versions = process.versions;
  16. event.returnValue = [
  17. {
  18. name: 'Electron',
  19. value: versions.electron
  20. },
  21. {
  22. name: 'Node.js',
  23. value: versions.node
  24. },
  25. {
  26. name: 'Chrome',
  27. value: versions.chrome
  28. },
  29. {
  30. name: 'V8',
  31. value: versions.v8
  32. }
  33. ];
  34. });
  35. ipcMain.on('render-sync-get-global-setting', (event, key) => {
  36. event.returnValue = global.settings[key];
  37. });
  38. ipcMain.handle('render-get-native-window-maximized', (event) => {
  39. return core.mainWindow.isMaximized();
  40. });
  41. ipcMain.on('render-minimize-native-window', (event) => {
  42. core.mainWindow.minimize();
  43. });
  44. ipcMain.on('render-maximize-or-restore-native-window', (event) => {
  45. if (!core.mainWindow.isMaximized()) {
  46. core.mainWindow.maximize();
  47. } else {
  48. core.mainWindow.unmaximize();
  49. }
  50. });
  51. ipcMain.on('render-reload-native-window', (event) => {
  52. core.mainWindow.reload();
  53. });
  54. ipcMain.on('render-exit-native-app', (event) => {
  55. core.mainWindow.close();
  56. });
  57. ipcMain.on('render-update-app-menu-label', (event, labels) => {
  58. menu.setApplicationMenu({
  59. labels: labels
  60. });
  61. });
  62. ipcMain.on('render-update-tray-menu-label', (event, labels) => {
  63. tray.setContextMenu({
  64. labels: labels
  65. });
  66. });
  67. ipcMain.on('render-update-tray-tip', (event, tooltip) => {
  68. tray.setToolTip(tooltip);
  69. });
  70. ipcMain.on('render-sync-get-native-config', (event) => {
  71. event.returnValue = {
  72. defaultPosition: config.defaultPosition,
  73. minimizedToTray: config.minimizedToTray
  74. };
  75. });
  76. ipcMain.on('render-set-native-config-default-position', (event, value) => {
  77. config.defaultPosition = value;
  78. config.save('defaultPosition');
  79. });
  80. ipcMain.on('render-set-native-config-minimized-to-tray', (event, value) => {
  81. config.minimizedToTray = !!value;
  82. config.save('minimizedToTray');
  83. });
  84. ipcMain.on('render-open-external-url', (event, url) => {
  85. shell.openExternal(url);
  86. });
  87. ipcMain.on('render-sync-get-package-file-content', (event, path) => {
  88. event.returnValue = localfs.readPackageFile(path);
  89. });
  90. ipcMain.handle('render-get-localfs-exists', (event, fullpath) => {
  91. return localfs.isExists(fullpath);
  92. });
  93. ipcMain.on('render-open-local-directory', (event, dir, filename) => {
  94. let fullpath = localfs.getFullPath(dir, filename);
  95. if (localfs.isExists(fullpath)) {
  96. shell.showItemInFolder(fullpath);
  97. } else {
  98. shell.openItem(dir);
  99. }
  100. });
  101. ipcMain.on('render-sync-parse-bittorrent-info', (event, data) => {
  102. event.returnValue = bittorrent.parseBittorrentInfo(data);
  103. });