cncjs

Форк
0
/
menu-template.darwin.js 
115 строк · 2.6 Кб
1
import { app, shell } from 'electron';
2
import trimStart from 'lodash/trimStart';
3

4
// https://github.com/electron/electron/blob/master/docs/api/menu/
5
export default (options) => {
6
  // mountPoints = [
7
  //   {
8
  //     route: '/widget',
9
  //     target: '~+/widget'
10
  //   }
11
  // ]
12
  const { address, port, mountPoints = [] } = { ...options };
13
  let menuItems = [];
14

15
  if (mountPoints.length > 0) {
16
    menuItems = [
17
      { type: 'separator' },
18
      { label: 'Mount Points', enabled: false },
19
    ].concat(
20
      mountPoints.map(mountPoint => ({
21
        label: `  ${mountPoint.route}`,
22
        click: () => {
23
          const routePath = trimStart(mountPoint.route, '/');
24
          const url = `http://${address}:${port}/${routePath}`;
25
          shell.openExternal(url);
26
        }
27
      }))
28
    );
29
  }
30

31
  const template = [
32
    {
33
      label: app.getName(),
34
      submenu: [
35
        { role: 'about' },
36
        { type: 'separator' },
37
        { role: 'services', submenu: [] },
38
        { type: 'separator' },
39
        { role: 'hide' },
40
        { role: 'hideothers' },
41
        { role: 'unhide' },
42
        { type: 'separator' },
43
        { role: 'quit' }
44
      ]
45
    },
46
    {
47
      label: 'Edit',
48
      submenu: [
49
        { role: 'undo' },
50
        { role: 'redo' },
51
        { type: 'separator' },
52
        { role: 'cut' },
53
        { role: 'copy' },
54
        { role: 'paste' },
55
        { role: 'pasteandmatchstyle' },
56
        { role: 'delete' },
57
        { role: 'selectall' },
58
        { type: 'separator' },
59
        {
60
          label: 'Speech',
61
          submenu: [
62
            { role: 'startspeaking' },
63
            { role: 'stopspeaking' }
64
          ]
65
        }
66
      ]
67
    },
68
    {
69
      label: 'View',
70
      submenu: [
71
        { role: 'reload' },
72
        { role: 'forcereload' },
73
        { role: 'toggledevtools' },
74
        { type: 'separator' },
75
        { role: 'resetzoom' },
76
        { role: 'zoomin' },
77
        { role: 'zoomout' },
78
        { type: 'separator' },
79
        { role: 'togglefullscreen' },
80
        { type: 'separator' },
81
        {
82
          label: 'View In Browser',
83
          click: () => {
84
            const url = `http://${address}:${port}`;
85
            shell.openExternal(url);
86
          }
87
        },
88
        ...menuItems
89
      ]
90
    },
91
    {
92
      role: 'window',
93
      submenu: [
94
        { role: 'close' },
95
        { role: 'minimize' },
96
        { role: 'zoom' },
97
        { type: 'separator' },
98
        { role: 'front' }
99
      ]
100
    },
101
    {
102
      role: 'help',
103
      submenu: [
104
        {
105
          label: 'Learn More',
106
          click: () => {
107
            shell.openExternal('https://github.com/cncjs/cncjs/wiki');
108
          }
109
        }
110
      ]
111
    }
112
  ];
113

114
  return template;
115
};
116

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.