custom-electron-titlebar 3.2.5 → 3.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +49 -0
- package/.vscode/tasks.json +34 -0
- package/README.md +15 -24
- package/_config.yml +1 -0
- package/{lib → build}/browser/browser.d.ts +0 -0
- package/{lib → build}/browser/browser.js +1 -0
- package/build/browser/browser.js.map +1 -0
- package/{lib → build}/browser/event.d.ts +0 -0
- package/{lib → build}/browser/event.js +3 -1
- package/build/browser/event.js.map +1 -0
- package/{lib → build}/browser/iframe.d.ts +0 -0
- package/{lib/base → build}/browser/iframe.js +1 -0
- package/build/browser/iframe.js.map +1 -0
- package/{lib → build}/browser/keyboardEvent.d.ts +0 -0
- package/{lib → build}/browser/keyboardEvent.js +1 -0
- package/build/browser/keyboardEvent.js.map +1 -0
- package/{lib → build}/browser/mouseEvent.d.ts +0 -0
- package/{lib → build}/browser/mouseEvent.js +1 -0
- package/build/browser/mouseEvent.js.map +1 -0
- package/{lib → build}/common/arrays.d.ts +0 -0
- package/{lib → build}/common/arrays.js +1 -0
- package/build/common/arrays.js.map +1 -0
- package/{lib → build}/common/async.d.ts +0 -0
- package/{lib → build}/common/async.js +1 -0
- package/build/common/async.js.map +1 -0
- package/{lib → build}/common/charCode.d.ts +0 -0
- package/{lib/base → build}/common/charCode.js +1 -0
- package/build/common/charCode.js.map +1 -0
- package/{lib → build}/common/color.d.ts +0 -0
- package/{lib → build}/common/color.js +1 -0
- package/build/common/color.js.map +1 -0
- package/{lib → build}/common/dom.d.ts +0 -0
- package/{lib → build}/common/dom.js +17 -14
- package/build/common/dom.js.map +1 -0
- package/{lib → build}/common/event.d.ts +0 -0
- package/{lib → build}/common/event.js +2 -1
- package/build/common/event.js.map +1 -0
- package/{lib → build}/common/iterator.d.ts +0 -0
- package/{lib → build}/common/iterator.js +1 -0
- package/build/common/iterator.js.map +1 -0
- package/{lib → build}/common/keyCodes.d.ts +0 -0
- package/{lib → build}/common/keyCodes.js +1 -0
- package/build/common/keyCodes.js.map +1 -0
- package/{lib → build}/common/lifecycle.d.ts +0 -0
- package/{lib → build}/common/lifecycle.js +1 -0
- package/build/common/lifecycle.js.map +1 -0
- package/{lib → build}/common/linkedList.d.ts +0 -0
- package/{lib → build}/common/linkedList.js +1 -0
- package/build/common/linkedList.js.map +1 -0
- package/{lib → build}/common/platform.d.ts +0 -0
- package/{lib → build}/common/platform.js +1 -0
- package/build/common/platform.js.map +1 -0
- package/{lib → build}/index.d.ts +0 -0
- package/{lib → build}/index.js +1 -0
- package/build/index.js.map +1 -0
- package/{lib → build}/menu/menu.d.ts +0 -0
- package/{lib → build}/menu/menu.js +39 -38
- package/build/menu/menu.js.map +1 -0
- package/{lib → build}/menu/menuitem.d.ts +10 -2
- package/{lib → build}/menu/menuitem.js +71 -29
- package/build/menu/menuitem.js.map +1 -0
- package/{lib → build}/menubar.d.ts +0 -0
- package/{lib → build}/menubar.js +38 -34
- package/build/menubar.js.map +1 -0
- package/{lib → build}/themebar.d.ts +0 -0
- package/{lib → build}/themebar.js +31 -2
- package/build/themebar.js.map +1 -0
- package/{lib → build}/titlebar.d.ts +0 -0
- package/{lib → build}/titlebar.js +72 -59
- package/build/titlebar.js.map +1 -0
- package/package.json +13 -7
- package/lib/base/browser/browser.d.ts +0 -25
- package/lib/base/browser/browser.js +0 -117
- package/lib/base/browser/canIUse.d.ts +0 -18
- package/lib/base/browser/canIUse.js +0 -63
- package/lib/base/browser/dom.d.ts +0 -230
- package/lib/base/browser/dom.js +0 -1080
- package/lib/base/browser/event.d.ts +0 -12
- package/lib/base/browser/event.js +0 -28
- package/lib/base/browser/iframe.d.ts +0 -33
- package/lib/base/browser/keyboardEvent.d.ts +0 -40
- package/lib/base/browser/keyboardEvent.js +0 -256
- package/lib/base/browser/mouseEvent.d.ts +0 -69
- package/lib/base/browser/mouseEvent.js +0 -146
- package/lib/base/common/arrays.d.ts +0 -149
- package/lib/base/common/arrays.js +0 -549
- package/lib/base/common/async.d.ts +0 -259
- package/lib/base/common/async.js +0 -728
- package/lib/base/common/cancellation.d.ts +0 -29
- package/lib/base/common/cancellation.js +0 -114
- package/lib/base/common/charCode.d.ts +0 -415
- package/lib/base/common/color.d.ts +0 -163
- package/lib/base/common/color.js +0 -495
- package/lib/base/common/errors.d.ts +0 -65
- package/lib/base/common/errors.js +0 -164
- package/lib/base/common/event.d.ts +0 -248
- package/lib/base/common/event.js +0 -703
- package/lib/base/common/functional.d.ts +0 -1
- package/lib/base/common/functional.js +0 -21
- package/lib/base/common/iterator.d.ts +0 -16
- package/lib/base/common/iterator.js +0 -82
- package/lib/base/common/keyCodes.d.ts +0 -268
- package/lib/base/common/keyCodes.js +0 -292
- package/lib/base/common/lifecycle.d.ts +0 -67
- package/lib/base/common/lifecycle.js +0 -234
- package/lib/base/common/linkedList.d.ts +0 -16
- package/lib/base/common/linkedList.js +0 -128
- package/lib/base/common/network.d.ts +0 -65
- package/lib/base/common/network.js +0 -124
- package/lib/base/common/path.d.ts +0 -39
- package/lib/base/common/path.js +0 -1407
- package/lib/base/common/platform.d.ts +0 -53
- package/lib/base/common/platform.js +0 -176
- package/lib/base/common/process.d.ts +0 -5
- package/lib/base/common/process.js +0 -18
- package/lib/base/common/sequence.d.ts +0 -27
- package/lib/base/common/sequence.js +0 -32
- package/lib/base/common/uri.d.ts +0 -153
- package/lib/base/common/uri.js +0 -612
- package/lib/browser/iframe.js +0 -109
- package/lib/common/charCode.js +0 -6
- package/lib/menu.d.ts +0 -53
- package/lib/menu.js +0 -532
- package/lib/menuitem.d.ts +0 -46
- package/lib/menuitem.js +0 -295
- package/lib/vs/base/browser/browser.d.ts +0 -25
- package/lib/vs/base/browser/browser.js +0 -117
- package/lib/vs/base/browser/canIUse.d.ts +0 -18
- package/lib/vs/base/browser/canIUse.js +0 -63
- package/lib/vs/base/browser/dom.d.ts +0 -230
- package/lib/vs/base/browser/dom.js +0 -1080
- package/lib/vs/base/browser/event.d.ts +0 -12
- package/lib/vs/base/browser/event.js +0 -28
- package/lib/vs/base/browser/iframe.d.ts +0 -33
- package/lib/vs/base/browser/iframe.js +0 -109
- package/lib/vs/base/browser/keyboardEvent.d.ts +0 -40
- package/lib/vs/base/browser/keyboardEvent.js +0 -256
- package/lib/vs/base/browser/mouseEvent.d.ts +0 -69
- package/lib/vs/base/browser/mouseEvent.js +0 -146
- package/lib/vs/base/common/arrays.d.ts +0 -149
- package/lib/vs/base/common/arrays.js +0 -549
- package/lib/vs/base/common/async.d.ts +0 -259
- package/lib/vs/base/common/async.js +0 -728
- package/lib/vs/base/common/cancellation.d.ts +0 -29
- package/lib/vs/base/common/cancellation.js +0 -114
- package/lib/vs/base/common/charCode.d.ts +0 -415
- package/lib/vs/base/common/charCode.js +0 -6
- package/lib/vs/base/common/color.d.ts +0 -163
- package/lib/vs/base/common/color.js +0 -495
- package/lib/vs/base/common/errors.d.ts +0 -65
- package/lib/vs/base/common/errors.js +0 -164
- package/lib/vs/base/common/event.d.ts +0 -248
- package/lib/vs/base/common/event.js +0 -703
- package/lib/vs/base/common/functional.d.ts +0 -1
- package/lib/vs/base/common/functional.js +0 -21
- package/lib/vs/base/common/iterator.d.ts +0 -16
- package/lib/vs/base/common/iterator.js +0 -82
- package/lib/vs/base/common/keyCodes.d.ts +0 -268
- package/lib/vs/base/common/keyCodes.js +0 -292
- package/lib/vs/base/common/lifecycle.d.ts +0 -67
- package/lib/vs/base/common/lifecycle.js +0 -234
- package/lib/vs/base/common/linkedList.d.ts +0 -16
- package/lib/vs/base/common/linkedList.js +0 -128
- package/lib/vs/base/common/network.d.ts +0 -65
- package/lib/vs/base/common/network.js +0 -124
- package/lib/vs/base/common/path.d.ts +0 -39
- package/lib/vs/base/common/path.js +0 -1407
- package/lib/vs/base/common/platform.d.ts +0 -53
- package/lib/vs/base/common/platform.js +0 -176
- package/lib/vs/base/common/process.d.ts +0 -5
- package/lib/vs/base/common/process.js +0 -18
- package/lib/vs/base/common/sequence.d.ts +0 -27
- package/lib/vs/base/common/sequence.js +0 -32
- package/lib/vs/base/common/uri.d.ts +0 -153
- package/lib/vs/base/common/uri.js +0 -612
package/lib/menuitem.js
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*--------------------------------------------------------------------------------------------------------
|
|
3
|
-
* This file has been modified by @AlexTorresSk (http://github.com/AlexTorresSk)
|
|
4
|
-
* to work in custom-electron-titlebar.
|
|
5
|
-
*
|
|
6
|
-
* The original copy of this file and its respective license are in https://github.com/Microsoft/vscode/
|
|
7
|
-
*
|
|
8
|
-
* Copyright (c) 2018 Alex Torres
|
|
9
|
-
* Licensed under the MIT License. See License in the project root for license information.
|
|
10
|
-
*-------------------------------------------------------------------------------------------------------*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.CETMenuItem = void 0;
|
|
13
|
-
const electron_1 = require("electron");
|
|
14
|
-
const dom_1 = require("./base/browser/dom");
|
|
15
|
-
const keyCodes_1 = require("./base/common/keyCodes");
|
|
16
|
-
const lifecycle_1 = require("./base/common/lifecycle");
|
|
17
|
-
const platform_1 = require("./base/common/platform");
|
|
18
|
-
const menu_1 = require("./menu");
|
|
19
|
-
class CETMenuItem extends lifecycle_1.Disposable {
|
|
20
|
-
constructor(item, options = {}, closeSubMenu = () => {
|
|
21
|
-
}) {
|
|
22
|
-
super();
|
|
23
|
-
this.item = item;
|
|
24
|
-
this.options = options;
|
|
25
|
-
this.currentWindow = electron_1.remote.getCurrentWindow();
|
|
26
|
-
this.closeSubMenu = closeSubMenu;
|
|
27
|
-
// Set mnemonic
|
|
28
|
-
if (this.item.label && options.enableMnemonics) {
|
|
29
|
-
let label = this.item.label;
|
|
30
|
-
if (label) {
|
|
31
|
-
let matches = menu_1.MENU_MNEMONIC_REGEX.exec(label);
|
|
32
|
-
if (matches) {
|
|
33
|
-
this.mnemonic = keyCodes_1.KeyCodeUtils.fromString((!!matches[1] ? matches[1] : matches[2]).toLocaleUpperCase());
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
getContainer() {
|
|
39
|
-
return this.container;
|
|
40
|
-
}
|
|
41
|
-
isEnabled() {
|
|
42
|
-
return this.item.enabled;
|
|
43
|
-
}
|
|
44
|
-
isSeparator() {
|
|
45
|
-
return this.item.type === 'separator';
|
|
46
|
-
}
|
|
47
|
-
render(container) {
|
|
48
|
-
this.container = container;
|
|
49
|
-
this._register(dom_1.addDisposableListener(this.container, dom_1.EventType.MOUSE_DOWN, e => {
|
|
50
|
-
if (this.item.enabled && e.button === 0 && this.container) {
|
|
51
|
-
this.container.classList.add('active');
|
|
52
|
-
}
|
|
53
|
-
}));
|
|
54
|
-
this._register(dom_1.addDisposableListener(this.container, dom_1.EventType.CLICK, e => {
|
|
55
|
-
if (this.item.enabled) {
|
|
56
|
-
this.onClick(e);
|
|
57
|
-
}
|
|
58
|
-
}));
|
|
59
|
-
this._register(dom_1.addDisposableListener(this.container, dom_1.EventType.DBLCLICK, e => {
|
|
60
|
-
dom_1.EventHelper.stop(e, true);
|
|
61
|
-
}));
|
|
62
|
-
[dom_1.EventType.MOUSE_UP, dom_1.EventType.MOUSE_OUT].forEach(event => {
|
|
63
|
-
this._register(dom_1.addDisposableListener(this.container, event, e => {
|
|
64
|
-
dom_1.EventHelper.stop(e);
|
|
65
|
-
this.container.classList.remove('active');
|
|
66
|
-
}));
|
|
67
|
-
});
|
|
68
|
-
this.itemElement = dom_1.append(this.container, dom_1.$('a.action-menu-item'));
|
|
69
|
-
this.itemElement.setAttribute('role', 'menuitem');
|
|
70
|
-
if (this.mnemonic) {
|
|
71
|
-
this.itemElement.setAttribute('aria-keyshortcuts', `${this.mnemonic}`);
|
|
72
|
-
}
|
|
73
|
-
this.checkElement = dom_1.append(this.itemElement, dom_1.$('span.menu-item-check'));
|
|
74
|
-
this.checkElement.setAttribute('role', 'none');
|
|
75
|
-
this.iconElement = dom_1.append(this.itemElement, dom_1.$('span.menu-item-icon'));
|
|
76
|
-
this.iconElement.setAttribute('role', 'none');
|
|
77
|
-
this.labelElement = dom_1.append(this.itemElement, dom_1.$('span.action-label'));
|
|
78
|
-
this.setAccelerator();
|
|
79
|
-
this.updateLabel();
|
|
80
|
-
this.updateIcon();
|
|
81
|
-
this.updateTooltip();
|
|
82
|
-
this.updateEnabled();
|
|
83
|
-
this.updateChecked();
|
|
84
|
-
this.updateVisibility();
|
|
85
|
-
}
|
|
86
|
-
onClick(event) {
|
|
87
|
-
dom_1.EventHelper.stop(event, true);
|
|
88
|
-
if (this.item.click) {
|
|
89
|
-
this.item.click(this.item, this.currentWindow, this.event);
|
|
90
|
-
}
|
|
91
|
-
if (this.item.type === 'checkbox') {
|
|
92
|
-
this.item.checked = !this.item.checked;
|
|
93
|
-
this.updateChecked();
|
|
94
|
-
}
|
|
95
|
-
this.closeSubMenu();
|
|
96
|
-
}
|
|
97
|
-
focus() {
|
|
98
|
-
if (this.container) {
|
|
99
|
-
this.container.focus();
|
|
100
|
-
this.container.classList.add('focused');
|
|
101
|
-
}
|
|
102
|
-
this.applyStyle();
|
|
103
|
-
}
|
|
104
|
-
blur() {
|
|
105
|
-
if (this.container) {
|
|
106
|
-
this.container.blur();
|
|
107
|
-
this.container.classList.remove('focused');
|
|
108
|
-
}
|
|
109
|
-
this.applyStyle();
|
|
110
|
-
}
|
|
111
|
-
setAccelerator() {
|
|
112
|
-
let accelerator = null;
|
|
113
|
-
if (this.item.role) {
|
|
114
|
-
switch (this.item.role.toLocaleLowerCase()) {
|
|
115
|
-
case 'undo':
|
|
116
|
-
accelerator = 'CtrlOrCmd+Z';
|
|
117
|
-
break;
|
|
118
|
-
case 'redo':
|
|
119
|
-
accelerator = 'CtrlOrCmd+Y';
|
|
120
|
-
break;
|
|
121
|
-
case 'cut':
|
|
122
|
-
accelerator = 'CtrlOrCmd+X';
|
|
123
|
-
break;
|
|
124
|
-
case 'copy':
|
|
125
|
-
accelerator = 'CtrlOrCmd+C';
|
|
126
|
-
break;
|
|
127
|
-
case 'paste':
|
|
128
|
-
accelerator = 'CtrlOrCmd+V';
|
|
129
|
-
break;
|
|
130
|
-
case 'selectall':
|
|
131
|
-
accelerator = 'CtrlOrCmd+A';
|
|
132
|
-
break;
|
|
133
|
-
case 'minimize':
|
|
134
|
-
accelerator = 'CtrlOrCmd+M';
|
|
135
|
-
break;
|
|
136
|
-
case 'close':
|
|
137
|
-
accelerator = 'CtrlOrCmd+W';
|
|
138
|
-
break;
|
|
139
|
-
case 'reload':
|
|
140
|
-
accelerator = 'CtrlOrCmd+R';
|
|
141
|
-
break;
|
|
142
|
-
case 'forcereload':
|
|
143
|
-
accelerator = 'CtrlOrCmd+Shift+R';
|
|
144
|
-
break;
|
|
145
|
-
case 'toggledevtools':
|
|
146
|
-
accelerator = 'CtrlOrCmd+Shift+I';
|
|
147
|
-
break;
|
|
148
|
-
case 'togglefullscreen':
|
|
149
|
-
accelerator = 'F11';
|
|
150
|
-
break;
|
|
151
|
-
case 'resetzoom':
|
|
152
|
-
accelerator = 'CtrlOrCmd+0';
|
|
153
|
-
break;
|
|
154
|
-
case 'zoomin':
|
|
155
|
-
accelerator = 'CtrlOrCmd+Shift+=';
|
|
156
|
-
break;
|
|
157
|
-
case 'zoomout':
|
|
158
|
-
accelerator = 'CtrlOrCmd+-';
|
|
159
|
-
break;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (this.item.label && this.item.accelerator) {
|
|
163
|
-
accelerator = this.item.accelerator;
|
|
164
|
-
}
|
|
165
|
-
if (accelerator !== null) {
|
|
166
|
-
dom_1.append(this.itemElement, dom_1.$('span.keybinding')).textContent = parseAccelerator(accelerator);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
updateLabel() {
|
|
170
|
-
if (this.item.label) {
|
|
171
|
-
let label = this.item.label;
|
|
172
|
-
if (label) {
|
|
173
|
-
const cleanLabel = menu_1.cleanMnemonic(label);
|
|
174
|
-
if (!this.options.enableMnemonics) {
|
|
175
|
-
label = cleanLabel;
|
|
176
|
-
}
|
|
177
|
-
if (this.labelElement) {
|
|
178
|
-
this.labelElement.setAttribute('aria-label', cleanLabel.replace(/&&/g, '&'));
|
|
179
|
-
}
|
|
180
|
-
const matches = menu_1.MENU_MNEMONIC_REGEX.exec(label);
|
|
181
|
-
if (matches) {
|
|
182
|
-
label = escape(label);
|
|
183
|
-
// This is global, reset it
|
|
184
|
-
menu_1.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex = 0;
|
|
185
|
-
let escMatch = menu_1.MENU_ESCAPED_MNEMONIC_REGEX.exec(label);
|
|
186
|
-
// We can't use negative lookbehind so if we match our negative and skip
|
|
187
|
-
while (escMatch && escMatch[1]) {
|
|
188
|
-
escMatch = menu_1.MENU_ESCAPED_MNEMONIC_REGEX.exec(label);
|
|
189
|
-
}
|
|
190
|
-
if (escMatch) {
|
|
191
|
-
label = `${label.substr(0, escMatch.index)}<u aria-hidden="true">${escMatch[3]}</u>${label.substr(escMatch.index + escMatch[0].length)}`;
|
|
192
|
-
}
|
|
193
|
-
label = label.replace(/&&/g, '&');
|
|
194
|
-
if (this.itemElement) {
|
|
195
|
-
this.itemElement.setAttribute('aria-keyshortcuts', (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase());
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
label = label.replace(/&&/g, '&');
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
if (this.labelElement) {
|
|
203
|
-
this.labelElement.innerHTML = label.trim();
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
updateIcon() {
|
|
208
|
-
let icon = null;
|
|
209
|
-
if (this.item.icon) {
|
|
210
|
-
icon = this.item.icon;
|
|
211
|
-
}
|
|
212
|
-
if (icon) {
|
|
213
|
-
const iconE = dom_1.append(this.iconElement, dom_1.$('img'));
|
|
214
|
-
iconE.setAttribute('src', icon.toString());
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
updateTooltip() {
|
|
218
|
-
let title = null;
|
|
219
|
-
if (this.item.sublabel) {
|
|
220
|
-
title = this.item.sublabel;
|
|
221
|
-
}
|
|
222
|
-
else if (!this.item.label && this.item.label && this.item.icon) {
|
|
223
|
-
title = this.item.label;
|
|
224
|
-
if (this.item.accelerator) {
|
|
225
|
-
title = parseAccelerator(this.item.accelerator);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (title) {
|
|
229
|
-
this.itemElement.title = title;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
updateEnabled() {
|
|
233
|
-
if (this.item.enabled && this.item.type !== 'separator') {
|
|
234
|
-
this.container.classList.remove('disabled');
|
|
235
|
-
this.container.tabIndex = 0;
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
this.container.classList.add('disabled');
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
updateVisibility() {
|
|
242
|
-
if (this.item.visible === false && this.itemElement) {
|
|
243
|
-
this.itemElement.remove();
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
updateChecked() {
|
|
247
|
-
if (this.item.checked) {
|
|
248
|
-
this.itemElement.classList.add('checked');
|
|
249
|
-
this.itemElement.setAttribute('role', 'menu-item-checkbox');
|
|
250
|
-
this.itemElement.setAttribute('aria-checked', 'true');
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
this.itemElement.classList.remove('checked');
|
|
254
|
-
this.itemElement.setAttribute('role', 'menuitem');
|
|
255
|
-
this.itemElement.setAttribute('aria-checked', 'false');
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
dispose() {
|
|
259
|
-
if (this.itemElement) {
|
|
260
|
-
this.itemElement.remove();
|
|
261
|
-
this.itemElement = undefined;
|
|
262
|
-
}
|
|
263
|
-
super.dispose();
|
|
264
|
-
}
|
|
265
|
-
getMnemonic() {
|
|
266
|
-
return this.mnemonic;
|
|
267
|
-
}
|
|
268
|
-
applyStyle() {
|
|
269
|
-
if (!this.menuStyle) {
|
|
270
|
-
return;
|
|
271
|
-
}
|
|
272
|
-
const isSelected = this.container && this.container.classList.contains('focused');
|
|
273
|
-
const fgColor = isSelected && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;
|
|
274
|
-
const bgColor = isSelected && this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : this.menuStyle.backgroundColor;
|
|
275
|
-
this.checkElement.style.backgroundColor = fgColor ? fgColor.toString() : null;
|
|
276
|
-
this.itemElement.style.color = fgColor ? fgColor.toString() : null;
|
|
277
|
-
this.itemElement.style.backgroundColor = bgColor ? bgColor.toString() : null;
|
|
278
|
-
}
|
|
279
|
-
style(style) {
|
|
280
|
-
this.menuStyle = style;
|
|
281
|
-
this.applyStyle();
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
exports.CETMenuItem = CETMenuItem;
|
|
285
|
-
function parseAccelerator(a) {
|
|
286
|
-
let accelerator = a.toString();
|
|
287
|
-
if (!platform_1.isMacintosh) {
|
|
288
|
-
accelerator = accelerator.replace(/(Cmd)|(Command)/gi, '');
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
accelerator = accelerator.replace(/(Ctrl)|(Control)/gi, '');
|
|
292
|
-
}
|
|
293
|
-
accelerator = accelerator.replace(/(Or)/gi, '');
|
|
294
|
-
return accelerator;
|
|
295
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Event } from 'vs/base/common/event';
|
|
2
|
-
import { IDisposable } from 'vs/base/common/lifecycle';
|
|
3
|
-
/** A zoom index, e.g. 1, 2, 3 */
|
|
4
|
-
export declare function setZoomLevel(zoomLevel: number, isTrusted: boolean): void;
|
|
5
|
-
export declare function getZoomLevel(): number;
|
|
6
|
-
/** Returns the time (in ms) since the zoom level was changed */
|
|
7
|
-
export declare function getTimeSinceLastZoomLevelChanged(): number;
|
|
8
|
-
export declare function onDidChangeZoomLevel(callback: (zoomLevel: number) => void): IDisposable;
|
|
9
|
-
/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */
|
|
10
|
-
export declare function getZoomFactor(): number;
|
|
11
|
-
export declare function setZoomFactor(zoomFactor: number): void;
|
|
12
|
-
export declare function getPixelRatio(): number;
|
|
13
|
-
export declare function setFullscreen(fullscreen: boolean): void;
|
|
14
|
-
export declare function isFullscreen(): boolean;
|
|
15
|
-
export declare const onDidChangeFullscreen: Event<void>;
|
|
16
|
-
export declare const isEdge: boolean;
|
|
17
|
-
export declare const isOpera: boolean;
|
|
18
|
-
export declare const isFirefox: boolean;
|
|
19
|
-
export declare const isWebKit: boolean;
|
|
20
|
-
export declare const isChrome: boolean;
|
|
21
|
-
export declare const isSafari: boolean;
|
|
22
|
-
export declare const isWebkitWebView: boolean;
|
|
23
|
-
export declare const isIPad: boolean;
|
|
24
|
-
export declare const isEdgeWebView: boolean;
|
|
25
|
-
export declare const isStandalone: boolean;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.isStandalone = exports.isEdgeWebView = exports.isIPad = exports.isWebkitWebView = exports.isSafari = exports.isChrome = exports.isWebKit = exports.isFirefox = exports.isOpera = exports.isEdge = exports.onDidChangeFullscreen = exports.isFullscreen = exports.setFullscreen = exports.getPixelRatio = exports.setZoomFactor = exports.getZoomFactor = exports.onDidChangeZoomLevel = exports.getTimeSinceLastZoomLevelChanged = exports.getZoomLevel = exports.setZoomLevel = void 0;
|
|
8
|
-
const event_1 = require("vs/base/common/event");
|
|
9
|
-
class WindowManager {
|
|
10
|
-
constructor() {
|
|
11
|
-
// --- Zoom Level
|
|
12
|
-
this._zoomLevel = 0;
|
|
13
|
-
this._lastZoomLevelChangeTime = 0;
|
|
14
|
-
this._onDidChangeZoomLevel = new event_1.Emitter();
|
|
15
|
-
this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;
|
|
16
|
-
// --- Zoom Factor
|
|
17
|
-
this._zoomFactor = 1;
|
|
18
|
-
// --- Fullscreen
|
|
19
|
-
this._fullscreen = false;
|
|
20
|
-
this._onDidChangeFullscreen = new event_1.Emitter();
|
|
21
|
-
this.onDidChangeFullscreen = this._onDidChangeFullscreen.event;
|
|
22
|
-
}
|
|
23
|
-
getZoomLevel() {
|
|
24
|
-
return this._zoomLevel;
|
|
25
|
-
}
|
|
26
|
-
getTimeSinceLastZoomLevelChanged() {
|
|
27
|
-
return Date.now() - this._lastZoomLevelChangeTime;
|
|
28
|
-
}
|
|
29
|
-
setZoomLevel(zoomLevel, isTrusted) {
|
|
30
|
-
if (this._zoomLevel === zoomLevel) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
this._zoomLevel = zoomLevel;
|
|
34
|
-
// See https://github.com/Microsoft/vscode/issues/26151
|
|
35
|
-
this._lastZoomLevelChangeTime = isTrusted ? 0 : Date.now();
|
|
36
|
-
this._onDidChangeZoomLevel.fire(this._zoomLevel);
|
|
37
|
-
}
|
|
38
|
-
getZoomFactor() {
|
|
39
|
-
return this._zoomFactor;
|
|
40
|
-
}
|
|
41
|
-
setZoomFactor(zoomFactor) {
|
|
42
|
-
this._zoomFactor = zoomFactor;
|
|
43
|
-
}
|
|
44
|
-
// --- Pixel Ratio
|
|
45
|
-
getPixelRatio() {
|
|
46
|
-
let ctx = document.createElement('canvas').getContext('2d');
|
|
47
|
-
let dpr = window.devicePixelRatio || 1;
|
|
48
|
-
let bsr = ctx.webkitBackingStorePixelRatio ||
|
|
49
|
-
ctx.mozBackingStorePixelRatio ||
|
|
50
|
-
ctx.msBackingStorePixelRatio ||
|
|
51
|
-
ctx.oBackingStorePixelRatio ||
|
|
52
|
-
ctx.backingStorePixelRatio || 1;
|
|
53
|
-
return dpr / bsr;
|
|
54
|
-
}
|
|
55
|
-
setFullscreen(fullscreen) {
|
|
56
|
-
if (this._fullscreen === fullscreen) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
this._fullscreen = fullscreen;
|
|
60
|
-
this._onDidChangeFullscreen.fire();
|
|
61
|
-
}
|
|
62
|
-
isFullscreen() {
|
|
63
|
-
return this._fullscreen;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
WindowManager.INSTANCE = new WindowManager();
|
|
67
|
-
/** A zoom index, e.g. 1, 2, 3 */
|
|
68
|
-
function setZoomLevel(zoomLevel, isTrusted) {
|
|
69
|
-
WindowManager.INSTANCE.setZoomLevel(zoomLevel, isTrusted);
|
|
70
|
-
}
|
|
71
|
-
exports.setZoomLevel = setZoomLevel;
|
|
72
|
-
function getZoomLevel() {
|
|
73
|
-
return WindowManager.INSTANCE.getZoomLevel();
|
|
74
|
-
}
|
|
75
|
-
exports.getZoomLevel = getZoomLevel;
|
|
76
|
-
/** Returns the time (in ms) since the zoom level was changed */
|
|
77
|
-
function getTimeSinceLastZoomLevelChanged() {
|
|
78
|
-
return WindowManager.INSTANCE.getTimeSinceLastZoomLevelChanged();
|
|
79
|
-
}
|
|
80
|
-
exports.getTimeSinceLastZoomLevelChanged = getTimeSinceLastZoomLevelChanged;
|
|
81
|
-
function onDidChangeZoomLevel(callback) {
|
|
82
|
-
return WindowManager.INSTANCE.onDidChangeZoomLevel(callback);
|
|
83
|
-
}
|
|
84
|
-
exports.onDidChangeZoomLevel = onDidChangeZoomLevel;
|
|
85
|
-
/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */
|
|
86
|
-
function getZoomFactor() {
|
|
87
|
-
return WindowManager.INSTANCE.getZoomFactor();
|
|
88
|
-
}
|
|
89
|
-
exports.getZoomFactor = getZoomFactor;
|
|
90
|
-
function setZoomFactor(zoomFactor) {
|
|
91
|
-
WindowManager.INSTANCE.setZoomFactor(zoomFactor);
|
|
92
|
-
}
|
|
93
|
-
exports.setZoomFactor = setZoomFactor;
|
|
94
|
-
function getPixelRatio() {
|
|
95
|
-
return WindowManager.INSTANCE.getPixelRatio();
|
|
96
|
-
}
|
|
97
|
-
exports.getPixelRatio = getPixelRatio;
|
|
98
|
-
function setFullscreen(fullscreen) {
|
|
99
|
-
WindowManager.INSTANCE.setFullscreen(fullscreen);
|
|
100
|
-
}
|
|
101
|
-
exports.setFullscreen = setFullscreen;
|
|
102
|
-
function isFullscreen() {
|
|
103
|
-
return WindowManager.INSTANCE.isFullscreen();
|
|
104
|
-
}
|
|
105
|
-
exports.isFullscreen = isFullscreen;
|
|
106
|
-
exports.onDidChangeFullscreen = WindowManager.INSTANCE.onDidChangeFullscreen;
|
|
107
|
-
const userAgent = navigator.userAgent;
|
|
108
|
-
exports.isEdge = (userAgent.indexOf('Edge/') >= 0);
|
|
109
|
-
exports.isOpera = (userAgent.indexOf('Opera') >= 0);
|
|
110
|
-
exports.isFirefox = (userAgent.indexOf('Firefox') >= 0);
|
|
111
|
-
exports.isWebKit = (userAgent.indexOf('AppleWebKit') >= 0);
|
|
112
|
-
exports.isChrome = (userAgent.indexOf('Chrome') >= 0);
|
|
113
|
-
exports.isSafari = (!exports.isChrome && (userAgent.indexOf('Safari') >= 0));
|
|
114
|
-
exports.isWebkitWebView = (!exports.isChrome && !exports.isSafari && exports.isWebKit);
|
|
115
|
-
exports.isIPad = (userAgent.indexOf('iPad') >= 0 || (exports.isSafari && navigator.maxTouchPoints > 0));
|
|
116
|
-
exports.isEdgeWebView = exports.isEdge && (userAgent.indexOf('WebView/') >= 0);
|
|
117
|
-
exports.isStandalone = (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare const enum KeyboardSupport {
|
|
2
|
-
Always = 0,
|
|
3
|
-
FullScreen = 1,
|
|
4
|
-
None = 2
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Browser feature we can support in current platform, browser and environment.
|
|
8
|
-
*/
|
|
9
|
-
export declare const BrowserFeatures: {
|
|
10
|
-
clipboard: {
|
|
11
|
-
writeText: boolean;
|
|
12
|
-
readText: boolean;
|
|
13
|
-
richText: boolean;
|
|
14
|
-
};
|
|
15
|
-
keyboard: KeyboardSupport;
|
|
16
|
-
touch: boolean;
|
|
17
|
-
pointerEvents: boolean;
|
|
18
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.BrowserFeatures = void 0;
|
|
27
|
-
const browser = __importStar(require("vs/base/browser/browser"));
|
|
28
|
-
const platform = __importStar(require("vs/base/common/platform"));
|
|
29
|
-
/**
|
|
30
|
-
* Browser feature we can support in current platform, browser and environment.
|
|
31
|
-
*/
|
|
32
|
-
exports.BrowserFeatures = {
|
|
33
|
-
clipboard: {
|
|
34
|
-
writeText: (platform.isNative
|
|
35
|
-
|| (document.queryCommandSupported && document.queryCommandSupported('copy'))
|
|
36
|
-
|| !!(navigator && navigator.clipboard && navigator.clipboard.writeText)),
|
|
37
|
-
readText: (platform.isNative
|
|
38
|
-
|| !!(navigator && navigator.clipboard && navigator.clipboard.readText)),
|
|
39
|
-
richText: (() => {
|
|
40
|
-
if (browser.isEdge) {
|
|
41
|
-
let index = navigator.userAgent.indexOf('Edge/');
|
|
42
|
-
let version = parseInt(navigator.userAgent.substring(index + 5, navigator.userAgent.indexOf('.', index)), 10);
|
|
43
|
-
if (!version || (version >= 12 && version <= 16)) {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return true;
|
|
48
|
-
})()
|
|
49
|
-
},
|
|
50
|
-
keyboard: (() => {
|
|
51
|
-
if (platform.isNative || browser.isStandalone) {
|
|
52
|
-
return 0 /* Always */;
|
|
53
|
-
}
|
|
54
|
-
if (navigator.keyboard || browser.isSafari) {
|
|
55
|
-
return 1 /* FullScreen */;
|
|
56
|
-
}
|
|
57
|
-
return 2 /* None */;
|
|
58
|
-
})(),
|
|
59
|
-
// 'ontouchstart' in window always evaluates to true with typescript's modern typings. This causes `window` to be
|
|
60
|
-
// `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast
|
|
61
|
-
touch: 'ontouchstart' in window || navigator.maxTouchPoints > 0 || window.navigator.msMaxTouchPoints > 0,
|
|
62
|
-
pointerEvents: window.PointerEvent && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0 || navigator.maxTouchPoints > 0 || window.navigator.msMaxTouchPoints > 0)
|
|
63
|
-
};
|