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.
Files changed (175) hide show
  1. package/.vscode/launch.json +49 -0
  2. package/.vscode/tasks.json +34 -0
  3. package/README.md +15 -24
  4. package/_config.yml +1 -0
  5. package/{lib → build}/browser/browser.d.ts +0 -0
  6. package/{lib → build}/browser/browser.js +1 -0
  7. package/build/browser/browser.js.map +1 -0
  8. package/{lib → build}/browser/event.d.ts +0 -0
  9. package/{lib → build}/browser/event.js +3 -1
  10. package/build/browser/event.js.map +1 -0
  11. package/{lib → build}/browser/iframe.d.ts +0 -0
  12. package/{lib/base → build}/browser/iframe.js +1 -0
  13. package/build/browser/iframe.js.map +1 -0
  14. package/{lib → build}/browser/keyboardEvent.d.ts +0 -0
  15. package/{lib → build}/browser/keyboardEvent.js +1 -0
  16. package/build/browser/keyboardEvent.js.map +1 -0
  17. package/{lib → build}/browser/mouseEvent.d.ts +0 -0
  18. package/{lib → build}/browser/mouseEvent.js +1 -0
  19. package/build/browser/mouseEvent.js.map +1 -0
  20. package/{lib → build}/common/arrays.d.ts +0 -0
  21. package/{lib → build}/common/arrays.js +1 -0
  22. package/build/common/arrays.js.map +1 -0
  23. package/{lib → build}/common/async.d.ts +0 -0
  24. package/{lib → build}/common/async.js +1 -0
  25. package/build/common/async.js.map +1 -0
  26. package/{lib → build}/common/charCode.d.ts +0 -0
  27. package/{lib/base → build}/common/charCode.js +1 -0
  28. package/build/common/charCode.js.map +1 -0
  29. package/{lib → build}/common/color.d.ts +0 -0
  30. package/{lib → build}/common/color.js +1 -0
  31. package/build/common/color.js.map +1 -0
  32. package/{lib → build}/common/dom.d.ts +0 -0
  33. package/{lib → build}/common/dom.js +17 -14
  34. package/build/common/dom.js.map +1 -0
  35. package/{lib → build}/common/event.d.ts +0 -0
  36. package/{lib → build}/common/event.js +2 -1
  37. package/build/common/event.js.map +1 -0
  38. package/{lib → build}/common/iterator.d.ts +0 -0
  39. package/{lib → build}/common/iterator.js +1 -0
  40. package/build/common/iterator.js.map +1 -0
  41. package/{lib → build}/common/keyCodes.d.ts +0 -0
  42. package/{lib → build}/common/keyCodes.js +1 -0
  43. package/build/common/keyCodes.js.map +1 -0
  44. package/{lib → build}/common/lifecycle.d.ts +0 -0
  45. package/{lib → build}/common/lifecycle.js +1 -0
  46. package/build/common/lifecycle.js.map +1 -0
  47. package/{lib → build}/common/linkedList.d.ts +0 -0
  48. package/{lib → build}/common/linkedList.js +1 -0
  49. package/build/common/linkedList.js.map +1 -0
  50. package/{lib → build}/common/platform.d.ts +0 -0
  51. package/{lib → build}/common/platform.js +1 -0
  52. package/build/common/platform.js.map +1 -0
  53. package/{lib → build}/index.d.ts +0 -0
  54. package/{lib → build}/index.js +1 -0
  55. package/build/index.js.map +1 -0
  56. package/{lib → build}/menu/menu.d.ts +0 -0
  57. package/{lib → build}/menu/menu.js +39 -38
  58. package/build/menu/menu.js.map +1 -0
  59. package/{lib → build}/menu/menuitem.d.ts +10 -2
  60. package/{lib → build}/menu/menuitem.js +71 -29
  61. package/build/menu/menuitem.js.map +1 -0
  62. package/{lib → build}/menubar.d.ts +0 -0
  63. package/{lib → build}/menubar.js +38 -34
  64. package/build/menubar.js.map +1 -0
  65. package/{lib → build}/themebar.d.ts +0 -0
  66. package/{lib → build}/themebar.js +31 -2
  67. package/build/themebar.js.map +1 -0
  68. package/{lib → build}/titlebar.d.ts +0 -0
  69. package/{lib → build}/titlebar.js +72 -59
  70. package/build/titlebar.js.map +1 -0
  71. package/package.json +13 -7
  72. package/lib/base/browser/browser.d.ts +0 -25
  73. package/lib/base/browser/browser.js +0 -117
  74. package/lib/base/browser/canIUse.d.ts +0 -18
  75. package/lib/base/browser/canIUse.js +0 -63
  76. package/lib/base/browser/dom.d.ts +0 -230
  77. package/lib/base/browser/dom.js +0 -1080
  78. package/lib/base/browser/event.d.ts +0 -12
  79. package/lib/base/browser/event.js +0 -28
  80. package/lib/base/browser/iframe.d.ts +0 -33
  81. package/lib/base/browser/keyboardEvent.d.ts +0 -40
  82. package/lib/base/browser/keyboardEvent.js +0 -256
  83. package/lib/base/browser/mouseEvent.d.ts +0 -69
  84. package/lib/base/browser/mouseEvent.js +0 -146
  85. package/lib/base/common/arrays.d.ts +0 -149
  86. package/lib/base/common/arrays.js +0 -549
  87. package/lib/base/common/async.d.ts +0 -259
  88. package/lib/base/common/async.js +0 -728
  89. package/lib/base/common/cancellation.d.ts +0 -29
  90. package/lib/base/common/cancellation.js +0 -114
  91. package/lib/base/common/charCode.d.ts +0 -415
  92. package/lib/base/common/color.d.ts +0 -163
  93. package/lib/base/common/color.js +0 -495
  94. package/lib/base/common/errors.d.ts +0 -65
  95. package/lib/base/common/errors.js +0 -164
  96. package/lib/base/common/event.d.ts +0 -248
  97. package/lib/base/common/event.js +0 -703
  98. package/lib/base/common/functional.d.ts +0 -1
  99. package/lib/base/common/functional.js +0 -21
  100. package/lib/base/common/iterator.d.ts +0 -16
  101. package/lib/base/common/iterator.js +0 -82
  102. package/lib/base/common/keyCodes.d.ts +0 -268
  103. package/lib/base/common/keyCodes.js +0 -292
  104. package/lib/base/common/lifecycle.d.ts +0 -67
  105. package/lib/base/common/lifecycle.js +0 -234
  106. package/lib/base/common/linkedList.d.ts +0 -16
  107. package/lib/base/common/linkedList.js +0 -128
  108. package/lib/base/common/network.d.ts +0 -65
  109. package/lib/base/common/network.js +0 -124
  110. package/lib/base/common/path.d.ts +0 -39
  111. package/lib/base/common/path.js +0 -1407
  112. package/lib/base/common/platform.d.ts +0 -53
  113. package/lib/base/common/platform.js +0 -176
  114. package/lib/base/common/process.d.ts +0 -5
  115. package/lib/base/common/process.js +0 -18
  116. package/lib/base/common/sequence.d.ts +0 -27
  117. package/lib/base/common/sequence.js +0 -32
  118. package/lib/base/common/uri.d.ts +0 -153
  119. package/lib/base/common/uri.js +0 -612
  120. package/lib/browser/iframe.js +0 -109
  121. package/lib/common/charCode.js +0 -6
  122. package/lib/menu.d.ts +0 -53
  123. package/lib/menu.js +0 -532
  124. package/lib/menuitem.d.ts +0 -46
  125. package/lib/menuitem.js +0 -295
  126. package/lib/vs/base/browser/browser.d.ts +0 -25
  127. package/lib/vs/base/browser/browser.js +0 -117
  128. package/lib/vs/base/browser/canIUse.d.ts +0 -18
  129. package/lib/vs/base/browser/canIUse.js +0 -63
  130. package/lib/vs/base/browser/dom.d.ts +0 -230
  131. package/lib/vs/base/browser/dom.js +0 -1080
  132. package/lib/vs/base/browser/event.d.ts +0 -12
  133. package/lib/vs/base/browser/event.js +0 -28
  134. package/lib/vs/base/browser/iframe.d.ts +0 -33
  135. package/lib/vs/base/browser/iframe.js +0 -109
  136. package/lib/vs/base/browser/keyboardEvent.d.ts +0 -40
  137. package/lib/vs/base/browser/keyboardEvent.js +0 -256
  138. package/lib/vs/base/browser/mouseEvent.d.ts +0 -69
  139. package/lib/vs/base/browser/mouseEvent.js +0 -146
  140. package/lib/vs/base/common/arrays.d.ts +0 -149
  141. package/lib/vs/base/common/arrays.js +0 -549
  142. package/lib/vs/base/common/async.d.ts +0 -259
  143. package/lib/vs/base/common/async.js +0 -728
  144. package/lib/vs/base/common/cancellation.d.ts +0 -29
  145. package/lib/vs/base/common/cancellation.js +0 -114
  146. package/lib/vs/base/common/charCode.d.ts +0 -415
  147. package/lib/vs/base/common/charCode.js +0 -6
  148. package/lib/vs/base/common/color.d.ts +0 -163
  149. package/lib/vs/base/common/color.js +0 -495
  150. package/lib/vs/base/common/errors.d.ts +0 -65
  151. package/lib/vs/base/common/errors.js +0 -164
  152. package/lib/vs/base/common/event.d.ts +0 -248
  153. package/lib/vs/base/common/event.js +0 -703
  154. package/lib/vs/base/common/functional.d.ts +0 -1
  155. package/lib/vs/base/common/functional.js +0 -21
  156. package/lib/vs/base/common/iterator.d.ts +0 -16
  157. package/lib/vs/base/common/iterator.js +0 -82
  158. package/lib/vs/base/common/keyCodes.d.ts +0 -268
  159. package/lib/vs/base/common/keyCodes.js +0 -292
  160. package/lib/vs/base/common/lifecycle.d.ts +0 -67
  161. package/lib/vs/base/common/lifecycle.js +0 -234
  162. package/lib/vs/base/common/linkedList.d.ts +0 -16
  163. package/lib/vs/base/common/linkedList.js +0 -128
  164. package/lib/vs/base/common/network.d.ts +0 -65
  165. package/lib/vs/base/common/network.js +0 -124
  166. package/lib/vs/base/common/path.d.ts +0 -39
  167. package/lib/vs/base/common/path.js +0 -1407
  168. package/lib/vs/base/common/platform.d.ts +0 -53
  169. package/lib/vs/base/common/platform.js +0 -176
  170. package/lib/vs/base/common/process.d.ts +0 -5
  171. package/lib/vs/base/common/process.js +0 -18
  172. package/lib/vs/base/common/sequence.d.ts +0 -27
  173. package/lib/vs/base/common/sequence.js +0 -32
  174. package/lib/vs/base/common/uri.d.ts +0 -153
  175. 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(/&amp;&amp;/g, '&amp;');
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
- };