@lvce-editor/title-bar-worker 2.9.0 → 2.11.0
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/dist/titleBarWorkerMain.js +372 -195
- package/package.json +1 -1
|
@@ -995,47 +995,224 @@ const terminate = () => {
|
|
|
995
995
|
globalThis.close();
|
|
996
996
|
};
|
|
997
997
|
|
|
998
|
+
const Web = 1;
|
|
999
|
+
const Electron = 2;
|
|
1000
|
+
const Remote = 3;
|
|
1001
|
+
|
|
1002
|
+
const DEFAULT_UID = 1;
|
|
1003
|
+
const createDefaultState = (uid = DEFAULT_UID) => ({
|
|
1004
|
+
assetDir: '',
|
|
1005
|
+
buttons: [],
|
|
1006
|
+
controlsOverlayEnabled: false,
|
|
1007
|
+
focusedIndex: -1,
|
|
1008
|
+
height: 30,
|
|
1009
|
+
iconWidth: 30,
|
|
1010
|
+
isMenuOpen: false,
|
|
1011
|
+
labelFontFamily: 'system-ui, Ubuntu, Droid Sans, sans-serif',
|
|
1012
|
+
labelFontSize: 13,
|
|
1013
|
+
labelFontWeight: 400,
|
|
1014
|
+
labelLetterSpacing: 0,
|
|
1015
|
+
labelPadding: 8,
|
|
1016
|
+
menus: [],
|
|
1017
|
+
platform: Electron,
|
|
1018
|
+
title: '',
|
|
1019
|
+
titleBarButtons: [],
|
|
1020
|
+
titleBarButtonsEnabled: true,
|
|
1021
|
+
titleBarButtonsWidth: 90,
|
|
1022
|
+
titleBarEntries: [],
|
|
1023
|
+
titleBarHeight: 30,
|
|
1024
|
+
titleBarIconEnabled: true,
|
|
1025
|
+
titleBarIconWidth: 30,
|
|
1026
|
+
titleBarMenuBarEnabled: true,
|
|
1027
|
+
titleBarStyleCustom: true,
|
|
1028
|
+
titleBarTitleEnabled: true,
|
|
1029
|
+
uid,
|
|
1030
|
+
width: 800,
|
|
1031
|
+
x: 0,
|
|
1032
|
+
y: 0
|
|
1033
|
+
});
|
|
1034
|
+
|
|
1035
|
+
const emptyObject = {};
|
|
1036
|
+
const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
|
|
1037
|
+
const i18nString = (key, placeholders = emptyObject) => {
|
|
1038
|
+
if (placeholders === emptyObject) {
|
|
1039
|
+
return key;
|
|
1040
|
+
}
|
|
1041
|
+
const replacer = (match, rest) => {
|
|
1042
|
+
return placeholders[rest];
|
|
1043
|
+
};
|
|
1044
|
+
return key.replaceAll(RE_PLACEHOLDER, replacer);
|
|
1045
|
+
};
|
|
1046
|
+
|
|
1047
|
+
const About = 'About';
|
|
1048
|
+
const CheckForUpdates = 'Check For Updates';
|
|
1049
|
+
const ClearRecentlyOpened = 'Clear Recently Opened';
|
|
1050
|
+
const Close = 'Close';
|
|
1051
|
+
const Edit$1 = 'Edit';
|
|
1052
|
+
const File$2 = 'File';
|
|
1053
|
+
const Go$1 = 'Go';
|
|
1054
|
+
const Help$1 = 'Help';
|
|
1055
|
+
const Maximize = 'Maximize';
|
|
1056
|
+
const Minimize = 'Minimize';
|
|
1057
|
+
const MoreDot = 'More ...';
|
|
1058
|
+
const NewTerminal = 'New Terminal';
|
|
1059
|
+
const OpenProcessExplorer = 'Open Process Explorer';
|
|
1060
|
+
const Run$1 = 'Run';
|
|
1061
|
+
const Selection$1 = 'Selection';
|
|
1062
|
+
const Terminal$1 = 'Terminal';
|
|
1063
|
+
const ToggleDeveloperTools = 'Toggle Developer Tools';
|
|
1064
|
+
const View$1 = 'View';
|
|
1065
|
+
|
|
1066
|
+
const file = () => {
|
|
1067
|
+
return i18nString(File$2);
|
|
1068
|
+
};
|
|
1069
|
+
const edit = () => {
|
|
1070
|
+
return i18nString(Edit$1);
|
|
1071
|
+
};
|
|
1072
|
+
const selection = () => {
|
|
1073
|
+
return i18nString(Selection$1);
|
|
1074
|
+
};
|
|
1075
|
+
const view = () => {
|
|
1076
|
+
return i18nString(View$1);
|
|
1077
|
+
};
|
|
1078
|
+
const go = () => {
|
|
1079
|
+
return i18nString(Go$1);
|
|
1080
|
+
};
|
|
1081
|
+
const run = () => {
|
|
1082
|
+
return i18nString(Run$1);
|
|
1083
|
+
};
|
|
1084
|
+
const terminal = () => {
|
|
1085
|
+
return i18nString(Terminal$1);
|
|
1086
|
+
};
|
|
1087
|
+
const help = () => {
|
|
1088
|
+
return i18nString(Help$1);
|
|
1089
|
+
};
|
|
1090
|
+
const minimize$1 = () => {
|
|
1091
|
+
return i18nString(Minimize);
|
|
1092
|
+
};
|
|
1093
|
+
const maximize$1 = () => {
|
|
1094
|
+
return i18nString(Maximize);
|
|
1095
|
+
};
|
|
1096
|
+
const close$1 = () => {
|
|
1097
|
+
return i18nString(Close);
|
|
1098
|
+
};
|
|
1099
|
+
|
|
1100
|
+
const getTitleBarButtonsElectron = (controlsOverlayEnabled, titleBarStyleCustom) => {
|
|
1101
|
+
if (controlsOverlayEnabled) {
|
|
1102
|
+
return [];
|
|
1103
|
+
}
|
|
1104
|
+
if (titleBarStyleCustom) {
|
|
1105
|
+
// TODO don't render title bar buttons on windows when electron window controls overlay is enabled
|
|
1106
|
+
return [{
|
|
1107
|
+
label: minimize$1(),
|
|
1108
|
+
icon: 'Minimize',
|
|
1109
|
+
id: 'Minimize',
|
|
1110
|
+
onClick: 'handleClickMinimize'
|
|
1111
|
+
}, {
|
|
1112
|
+
label: maximize$1(),
|
|
1113
|
+
icon: 'Maximize',
|
|
1114
|
+
id: 'ToggleMaximize',
|
|
1115
|
+
onClick: 'handleClickToggleMaximize'
|
|
1116
|
+
}, {
|
|
1117
|
+
label: close$1(),
|
|
1118
|
+
icon: 'ChromeClose',
|
|
1119
|
+
id: 'Close',
|
|
1120
|
+
onClick: 'handleClickClose'
|
|
1121
|
+
}];
|
|
1122
|
+
}
|
|
1123
|
+
return [];
|
|
1124
|
+
};
|
|
1125
|
+
|
|
1126
|
+
const getTitleBarButtonsRemote = () => {
|
|
1127
|
+
return [];
|
|
1128
|
+
};
|
|
1129
|
+
|
|
1130
|
+
const getTitleBarButtonsWeb = () => {
|
|
1131
|
+
return [];
|
|
1132
|
+
};
|
|
1133
|
+
|
|
1134
|
+
const getTitleBarButtons = (platform, controlsOverlayEnabled, titleBarStyleCustom) => {
|
|
1135
|
+
switch (platform) {
|
|
1136
|
+
case Electron:
|
|
1137
|
+
return getTitleBarButtonsElectron(controlsOverlayEnabled, titleBarStyleCustom);
|
|
1138
|
+
case Web:
|
|
1139
|
+
return getTitleBarButtonsWeb();
|
|
1140
|
+
case Remote:
|
|
1141
|
+
return getTitleBarButtonsRemote();
|
|
1142
|
+
default:
|
|
1143
|
+
return [];
|
|
1144
|
+
}
|
|
1145
|
+
};
|
|
1146
|
+
|
|
1147
|
+
const {
|
|
1148
|
+
get: get$1,
|
|
1149
|
+
set: set$3,
|
|
1150
|
+
getCommandIds,
|
|
1151
|
+
registerCommands,
|
|
1152
|
+
wrapCommand
|
|
1153
|
+
} = create$2();
|
|
1154
|
+
|
|
1155
|
+
const create3 = (id, uri, x, y, width, height, platform, controlsOverlayEnabled, titleBarStyleCustom) => {
|
|
1156
|
+
const titleBarButtons = getTitleBarButtons(platform, controlsOverlayEnabled, titleBarStyleCustom);
|
|
1157
|
+
const state = {
|
|
1158
|
+
...createDefaultState(),
|
|
1159
|
+
uid: id,
|
|
1160
|
+
titleBarEntries: [],
|
|
1161
|
+
focusedIndex: -1,
|
|
1162
|
+
isMenuOpen: false,
|
|
1163
|
+
menus: [],
|
|
1164
|
+
labelFontWeight: 400,
|
|
1165
|
+
labelFontSize: 13,
|
|
1166
|
+
labelFontFamily: 'system-ui, Ubuntu, Droid Sans, sans-serif',
|
|
1167
|
+
labelPadding: 8,
|
|
1168
|
+
labelLetterSpacing: 0,
|
|
1169
|
+
titleBarHeight: height,
|
|
1170
|
+
x,
|
|
1171
|
+
y,
|
|
1172
|
+
width,
|
|
1173
|
+
height,
|
|
1174
|
+
iconWidth: 30,
|
|
1175
|
+
platform,
|
|
1176
|
+
controlsOverlayEnabled,
|
|
1177
|
+
titleBarStyleCustom,
|
|
1178
|
+
titleBarButtons
|
|
1179
|
+
};
|
|
1180
|
+
set$3(id, state, state);
|
|
1181
|
+
return state;
|
|
1182
|
+
};
|
|
1183
|
+
|
|
998
1184
|
const RenderEntries = 1;
|
|
999
1185
|
const RenderFocusedIndex = 2;
|
|
1000
1186
|
const RenderMenus = 3;
|
|
1001
1187
|
|
|
1002
|
-
const
|
|
1003
|
-
const isEqual$2 = (oldState, newState) => {
|
|
1188
|
+
const isEqual$3 = (oldState, newState) => {
|
|
1004
1189
|
return oldState.titleBarEntries === newState.titleBarEntries && oldState.width === newState.width && oldState.focusedIndex === newState.focusedIndex && oldState.isMenuOpen === newState.isMenuOpen;
|
|
1005
1190
|
};
|
|
1006
1191
|
|
|
1007
|
-
const diffType$
|
|
1008
|
-
const isEqual$
|
|
1192
|
+
const diffType$2 = RenderFocusedIndex;
|
|
1193
|
+
const isEqual$2 = (oldState, newState) => {
|
|
1009
1194
|
return oldState.focusedIndex === newState.focusedIndex && oldState.isMenuOpen === newState.isMenuOpen;
|
|
1010
1195
|
};
|
|
1011
1196
|
|
|
1012
|
-
const diffType = RenderMenus;
|
|
1013
|
-
const isEqual = (oldState, newState) => {
|
|
1197
|
+
const diffType$1 = RenderMenus;
|
|
1198
|
+
const isEqual$1 = (oldState, newState) => {
|
|
1014
1199
|
return oldState.menus === newState.menus;
|
|
1015
1200
|
};
|
|
1016
1201
|
|
|
1017
|
-
const modules = [isEqual$
|
|
1018
|
-
const numbers = [
|
|
1202
|
+
const modules$1 = [isEqual$3, isEqual$2, isEqual$1];
|
|
1203
|
+
const numbers$1 = [RenderEntries, RenderFocusedIndex, RenderMenus];
|
|
1019
1204
|
|
|
1020
1205
|
const diff = (oldState, newState) => {
|
|
1021
1206
|
const diffResult = [];
|
|
1022
|
-
for (let i = 0; i < modules.length; i++) {
|
|
1023
|
-
const fn = modules[i];
|
|
1207
|
+
for (let i = 0; i < modules$1.length; i++) {
|
|
1208
|
+
const fn = modules$1[i];
|
|
1024
1209
|
if (!fn(oldState, newState)) {
|
|
1025
|
-
diffResult.push(numbers[i]);
|
|
1210
|
+
diffResult.push(numbers$1[i]);
|
|
1026
1211
|
}
|
|
1027
1212
|
}
|
|
1028
1213
|
return diffResult;
|
|
1029
1214
|
};
|
|
1030
1215
|
|
|
1031
|
-
const {
|
|
1032
|
-
get: get$1,
|
|
1033
|
-
set: set$3,
|
|
1034
|
-
getCommandIds,
|
|
1035
|
-
registerCommands,
|
|
1036
|
-
wrapCommand
|
|
1037
|
-
} = create$2();
|
|
1038
|
-
|
|
1039
1216
|
const diff2 = uid => {
|
|
1040
1217
|
const {
|
|
1041
1218
|
oldState,
|
|
@@ -1044,6 +1221,29 @@ const diff2 = uid => {
|
|
|
1044
1221
|
return diff(oldState, newState);
|
|
1045
1222
|
};
|
|
1046
1223
|
|
|
1224
|
+
const diffType = RenderEntries;
|
|
1225
|
+
const isEqual = (oldState, newState) => {
|
|
1226
|
+
return oldState.titleBarEntries === newState.titleBarEntries && oldState.width === newState.width && oldState.focusedIndex === newState.focusedIndex && oldState.isMenuOpen === newState.isMenuOpen && oldState.assetDir === newState.assetDir && oldState.titleBarIconEnabled === newState.titleBarIconEnabled && oldState.title === newState.title && oldState.titleBarTitleEnabled === newState.titleBarTitleEnabled && oldState.platform === newState.platform && oldState.controlsOverlayEnabled === newState.controlsOverlayEnabled && oldState.titleBarStyleCustom === newState.titleBarStyleCustom && oldState.titleBarButtonsEnabled === newState.titleBarButtonsEnabled && oldState.titleBarButtons === newState.titleBarButtons;
|
|
1227
|
+
};
|
|
1228
|
+
|
|
1229
|
+
const modules = [isEqual, isEqual$2, isEqual$1];
|
|
1230
|
+
const numbers = [diffType, diffType$2, diffType$1];
|
|
1231
|
+
|
|
1232
|
+
const diff3 = uid => {
|
|
1233
|
+
const {
|
|
1234
|
+
oldState,
|
|
1235
|
+
newState
|
|
1236
|
+
} = get$1(uid);
|
|
1237
|
+
const diffResult = [];
|
|
1238
|
+
for (let i = 0; i < modules.length; i++) {
|
|
1239
|
+
const fn = modules[i];
|
|
1240
|
+
if (!fn(oldState, newState)) {
|
|
1241
|
+
diffResult.push(numbers[i]);
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
return diffResult;
|
|
1245
|
+
};
|
|
1246
|
+
|
|
1047
1247
|
const Menu$1 = 'menu';
|
|
1048
1248
|
const MenuBar = 'menubar';
|
|
1049
1249
|
const MenuItem$1 = 'menuitem';
|
|
@@ -1074,6 +1274,8 @@ const DownArrow$2 = 16;
|
|
|
1074
1274
|
const CtrlCmd = 1 << 11 >>> 0;
|
|
1075
1275
|
const Shift = 1 << 10 >>> 0;
|
|
1076
1276
|
|
|
1277
|
+
const TitleBar$1 = 15;
|
|
1278
|
+
|
|
1077
1279
|
const DebugWorker = 55;
|
|
1078
1280
|
const RendererWorker$1 = 1;
|
|
1079
1281
|
|
|
@@ -1131,18 +1333,6 @@ const getKeyBindings$1 = () => {
|
|
|
1131
1333
|
}];
|
|
1132
1334
|
};
|
|
1133
1335
|
|
|
1134
|
-
const emptyObject = {};
|
|
1135
|
-
const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
|
|
1136
|
-
const i18nString = (key, placeholders = emptyObject) => {
|
|
1137
|
-
if (placeholders === emptyObject) {
|
|
1138
|
-
return key;
|
|
1139
|
-
}
|
|
1140
|
-
const replacer = (match, rest) => {
|
|
1141
|
-
return placeholders[rest];
|
|
1142
|
-
};
|
|
1143
|
-
return key.replaceAll(RE_PLACEHOLDER, replacer);
|
|
1144
|
-
};
|
|
1145
|
-
|
|
1146
1336
|
/**
|
|
1147
1337
|
* @enum {string}
|
|
1148
1338
|
*/
|
|
@@ -1196,16 +1386,16 @@ const moveLineDown = () => {
|
|
|
1196
1386
|
return i18nString(UiStrings$1.MoveLineDown);
|
|
1197
1387
|
};
|
|
1198
1388
|
|
|
1199
|
-
const Edit
|
|
1200
|
-
const File$
|
|
1201
|
-
const Go
|
|
1202
|
-
const Help
|
|
1389
|
+
const Edit = 2;
|
|
1390
|
+
const File$1 = 5;
|
|
1391
|
+
const Go = 6;
|
|
1392
|
+
const Help = 7;
|
|
1203
1393
|
const OpenRecent = 9;
|
|
1204
|
-
const Run
|
|
1205
|
-
const Selection
|
|
1206
|
-
const Terminal
|
|
1394
|
+
const Run = 10;
|
|
1395
|
+
const Selection = 11;
|
|
1396
|
+
const Terminal = 14;
|
|
1207
1397
|
const TitleBar = 15;
|
|
1208
|
-
const View
|
|
1398
|
+
const View = 16;
|
|
1209
1399
|
|
|
1210
1400
|
const Separator = 1;
|
|
1211
1401
|
const None = 0;
|
|
@@ -1223,7 +1413,7 @@ const menuEntrySeparator = {
|
|
|
1223
1413
|
command: ''
|
|
1224
1414
|
};
|
|
1225
1415
|
|
|
1226
|
-
const id$9 = Edit
|
|
1416
|
+
const id$9 = Edit;
|
|
1227
1417
|
const getMenuEntries$d = () => {
|
|
1228
1418
|
return [{
|
|
1229
1419
|
id: 'undo',
|
|
@@ -1307,11 +1497,7 @@ const exit = () => {
|
|
|
1307
1497
|
return i18nString(UiStrings.Exit);
|
|
1308
1498
|
};
|
|
1309
1499
|
|
|
1310
|
-
const
|
|
1311
|
-
const Electron = 2;
|
|
1312
|
-
const Remote = 3;
|
|
1313
|
-
|
|
1314
|
-
const id$8 = File$2;
|
|
1500
|
+
const id$8 = File$1;
|
|
1315
1501
|
const getMenuEntries$c = platform => {
|
|
1316
1502
|
const entries = [{
|
|
1317
1503
|
id: 'newFile',
|
|
@@ -1366,7 +1552,7 @@ const MenuEntriesFile = {
|
|
|
1366
1552
|
id: id$8
|
|
1367
1553
|
};
|
|
1368
1554
|
|
|
1369
|
-
const id$7 = Go
|
|
1555
|
+
const id$7 = Go;
|
|
1370
1556
|
const getMenuEntries$b = () => {
|
|
1371
1557
|
return [];
|
|
1372
1558
|
};
|
|
@@ -1377,25 +1563,6 @@ const MenuEntriesGo = {
|
|
|
1377
1563
|
id: id$7
|
|
1378
1564
|
};
|
|
1379
1565
|
|
|
1380
|
-
const About = 'About';
|
|
1381
|
-
const CheckForUpdates = 'Check For Updates';
|
|
1382
|
-
const ClearRecentlyOpened = 'Clear Recently Opened';
|
|
1383
|
-
const Close = 'Close';
|
|
1384
|
-
const Edit = 'Edit';
|
|
1385
|
-
const File$1 = 'File';
|
|
1386
|
-
const Go = 'Go';
|
|
1387
|
-
const Help = 'Help';
|
|
1388
|
-
const Maximize = 'Maximize';
|
|
1389
|
-
const Minimize = 'Minimize';
|
|
1390
|
-
const MoreDot = 'More ...';
|
|
1391
|
-
const NewTerminal = 'New Terminal';
|
|
1392
|
-
const OpenProcessExplorer = 'Open Process Explorer';
|
|
1393
|
-
const Run = 'Run';
|
|
1394
|
-
const Selection = 'Selection';
|
|
1395
|
-
const Terminal = 'Terminal';
|
|
1396
|
-
const ToggleDeveloperTools = 'Toggle Developer Tools';
|
|
1397
|
-
const View = 'View';
|
|
1398
|
-
|
|
1399
1566
|
const toggleDeveloperTools = () => {
|
|
1400
1567
|
return i18nString(ToggleDeveloperTools);
|
|
1401
1568
|
};
|
|
@@ -1416,7 +1583,7 @@ const isAutoUpdateSupported = platform => {
|
|
|
1416
1583
|
return false;
|
|
1417
1584
|
};
|
|
1418
1585
|
|
|
1419
|
-
const id$6 = Help
|
|
1586
|
+
const id$6 = Help;
|
|
1420
1587
|
const getMenuEntries$a = async platform => {
|
|
1421
1588
|
const autoUpdateSupported = isAutoUpdateSupported(platform);
|
|
1422
1589
|
const entries = [];
|
|
@@ -1917,7 +2084,7 @@ const MenuEntriesOpenRecent = {
|
|
|
1917
2084
|
id: id$5
|
|
1918
2085
|
};
|
|
1919
2086
|
|
|
1920
|
-
const id$4 = Run
|
|
2087
|
+
const id$4 = Run;
|
|
1921
2088
|
const getMenuEntries$8 = () => {
|
|
1922
2089
|
return [];
|
|
1923
2090
|
};
|
|
@@ -1928,7 +2095,7 @@ const MenuEntriesRun = {
|
|
|
1928
2095
|
id: id$4
|
|
1929
2096
|
};
|
|
1930
2097
|
|
|
1931
|
-
const id$3 = Selection
|
|
2098
|
+
const id$3 = Selection;
|
|
1932
2099
|
const getMenuEntries$7 = () => {
|
|
1933
2100
|
return [{
|
|
1934
2101
|
id: 'selectAll',
|
|
@@ -1964,7 +2131,7 @@ const MenuEntriesSelection = {
|
|
|
1964
2131
|
id: id$3
|
|
1965
2132
|
};
|
|
1966
2133
|
|
|
1967
|
-
const id$2 = Terminal
|
|
2134
|
+
const id$2 = Terminal;
|
|
1968
2135
|
const getMenuEntries$6 = () => {
|
|
1969
2136
|
return [{
|
|
1970
2137
|
id: 'newTerminal',
|
|
@@ -1981,73 +2148,39 @@ const MenuEntriesTerminal = {
|
|
|
1981
2148
|
id: id$2
|
|
1982
2149
|
};
|
|
1983
2150
|
|
|
1984
|
-
const file = () => {
|
|
1985
|
-
return i18nString(File$1);
|
|
1986
|
-
};
|
|
1987
|
-
const edit = () => {
|
|
1988
|
-
return i18nString(Edit);
|
|
1989
|
-
};
|
|
1990
|
-
const selection = () => {
|
|
1991
|
-
return i18nString(Selection);
|
|
1992
|
-
};
|
|
1993
|
-
const view = () => {
|
|
1994
|
-
return i18nString(View);
|
|
1995
|
-
};
|
|
1996
|
-
const go = () => {
|
|
1997
|
-
return i18nString(Go);
|
|
1998
|
-
};
|
|
1999
|
-
const run = () => {
|
|
2000
|
-
return i18nString(Run);
|
|
2001
|
-
};
|
|
2002
|
-
const terminal = () => {
|
|
2003
|
-
return i18nString(Terminal);
|
|
2004
|
-
};
|
|
2005
|
-
const help = () => {
|
|
2006
|
-
return i18nString(Help);
|
|
2007
|
-
};
|
|
2008
|
-
const minimize$1 = () => {
|
|
2009
|
-
return i18nString(Minimize);
|
|
2010
|
-
};
|
|
2011
|
-
const maximize$1 = () => {
|
|
2012
|
-
return i18nString(Maximize);
|
|
2013
|
-
};
|
|
2014
|
-
const close$1 = () => {
|
|
2015
|
-
return i18nString(Close);
|
|
2016
|
-
};
|
|
2017
|
-
|
|
2018
2151
|
const getMenuEntries$5 = () => {
|
|
2019
2152
|
return [{
|
|
2020
|
-
id: File$
|
|
2153
|
+
id: File$1,
|
|
2021
2154
|
label: file(),
|
|
2022
2155
|
flags: SubMenu
|
|
2023
2156
|
}, {
|
|
2024
|
-
id: Edit
|
|
2157
|
+
id: Edit,
|
|
2025
2158
|
label: edit(),
|
|
2026
2159
|
flags: SubMenu
|
|
2027
2160
|
}, {
|
|
2028
|
-
id: Selection
|
|
2161
|
+
id: Selection,
|
|
2029
2162
|
label: selection(),
|
|
2030
2163
|
flags: SubMenu
|
|
2031
2164
|
}, {
|
|
2032
|
-
id: View
|
|
2165
|
+
id: View,
|
|
2033
2166
|
label: view(),
|
|
2034
2167
|
flags: SubMenu
|
|
2035
2168
|
}, {
|
|
2036
|
-
id: Go
|
|
2169
|
+
id: Go,
|
|
2037
2170
|
label: go(),
|
|
2038
2171
|
flags: SubMenu
|
|
2039
2172
|
}, {
|
|
2040
|
-
id: Run
|
|
2173
|
+
id: Run,
|
|
2041
2174
|
label: run(),
|
|
2042
2175
|
keyboardShortCut: 'Alt+r',
|
|
2043
2176
|
flags: SubMenu
|
|
2044
2177
|
}, {
|
|
2045
|
-
id: Terminal
|
|
2178
|
+
id: Terminal,
|
|
2046
2179
|
label: terminal(),
|
|
2047
2180
|
keyboardShortCut: 'Alt+t',
|
|
2048
2181
|
flags: SubMenu
|
|
2049
2182
|
}, {
|
|
2050
|
-
id: Help
|
|
2183
|
+
id: Help,
|
|
2051
2184
|
label: help(),
|
|
2052
2185
|
keyboardShortCut: 'Alt+h',
|
|
2053
2186
|
flags: SubMenu
|
|
@@ -2056,27 +2189,27 @@ const getMenuEntries$5 = () => {
|
|
|
2056
2189
|
|
|
2057
2190
|
const getMenuEntries$4 = () => {
|
|
2058
2191
|
return [{
|
|
2059
|
-
id: File$
|
|
2192
|
+
id: File$1,
|
|
2060
2193
|
label: file(),
|
|
2061
2194
|
flags: None
|
|
2062
2195
|
}, {
|
|
2063
|
-
id: Edit
|
|
2196
|
+
id: Edit,
|
|
2064
2197
|
label: edit(),
|
|
2065
2198
|
flags: None
|
|
2066
2199
|
}, {
|
|
2067
|
-
id: Selection
|
|
2200
|
+
id: Selection,
|
|
2068
2201
|
label: selection(),
|
|
2069
2202
|
flags: None
|
|
2070
2203
|
}, {
|
|
2071
|
-
id: View
|
|
2204
|
+
id: View,
|
|
2072
2205
|
label: view(),
|
|
2073
2206
|
flags: None
|
|
2074
2207
|
}, {
|
|
2075
|
-
id: Go
|
|
2208
|
+
id: Go,
|
|
2076
2209
|
label: go(),
|
|
2077
2210
|
flags: None
|
|
2078
2211
|
}, {
|
|
2079
|
-
id: Help
|
|
2212
|
+
id: Help,
|
|
2080
2213
|
label: help(),
|
|
2081
2214
|
flags: None
|
|
2082
2215
|
}];
|
|
@@ -2102,7 +2235,7 @@ const MenuEntriesTitleBar = {
|
|
|
2102
2235
|
id: id$1
|
|
2103
2236
|
};
|
|
2104
2237
|
|
|
2105
|
-
const id = View
|
|
2238
|
+
const id = View;
|
|
2106
2239
|
const getMenuEntries$2 = () => {
|
|
2107
2240
|
return [];
|
|
2108
2241
|
};
|
|
@@ -2126,53 +2259,6 @@ const getMenuEntries$1 = (id, platform) => {
|
|
|
2126
2259
|
return menu.getMenuEntries(platform);
|
|
2127
2260
|
};
|
|
2128
2261
|
|
|
2129
|
-
const getTitleBarButtonsElectron = (controlsOverlayEnabled, titleBarStyleCustom) => {
|
|
2130
|
-
if (controlsOverlayEnabled) {
|
|
2131
|
-
return [];
|
|
2132
|
-
}
|
|
2133
|
-
if (titleBarStyleCustom) {
|
|
2134
|
-
// TODO don't render title bar buttons on windows when electron window controls overlay is enabled
|
|
2135
|
-
return [{
|
|
2136
|
-
label: minimize$1(),
|
|
2137
|
-
icon: 'Minimize',
|
|
2138
|
-
id: 'Minimize',
|
|
2139
|
-
onClick: 'handleClickMinimize'
|
|
2140
|
-
}, {
|
|
2141
|
-
label: maximize$1(),
|
|
2142
|
-
icon: 'Maximize',
|
|
2143
|
-
id: 'ToggleMaximize',
|
|
2144
|
-
onClick: 'handleClickToggleMaximize'
|
|
2145
|
-
}, {
|
|
2146
|
-
label: close$1(),
|
|
2147
|
-
icon: 'ChromeClose',
|
|
2148
|
-
id: 'Close',
|
|
2149
|
-
onClick: 'handleClickClose'
|
|
2150
|
-
}];
|
|
2151
|
-
}
|
|
2152
|
-
return [];
|
|
2153
|
-
};
|
|
2154
|
-
|
|
2155
|
-
const getTitleBarButtonsRemote = () => {
|
|
2156
|
-
return [];
|
|
2157
|
-
};
|
|
2158
|
-
|
|
2159
|
-
const getTitleBarButtonsWeb = () => {
|
|
2160
|
-
return [];
|
|
2161
|
-
};
|
|
2162
|
-
|
|
2163
|
-
const getTitleBarButtons = (platform, controlsOverlayEnabled, titleBarStyleCustom) => {
|
|
2164
|
-
switch (platform) {
|
|
2165
|
-
case Electron:
|
|
2166
|
-
return getTitleBarButtonsElectron(controlsOverlayEnabled, titleBarStyleCustom);
|
|
2167
|
-
case Web:
|
|
2168
|
-
return getTitleBarButtonsWeb();
|
|
2169
|
-
case Remote:
|
|
2170
|
-
return getTitleBarButtonsRemote();
|
|
2171
|
-
default:
|
|
2172
|
-
return [];
|
|
2173
|
-
}
|
|
2174
|
-
};
|
|
2175
|
-
|
|
2176
2262
|
const MaskIconCheck = 'MaskIconCheck';
|
|
2177
2263
|
const Menu = 'Menu';
|
|
2178
2264
|
const MenuItem = 'MenuItem';
|
|
@@ -2634,8 +2720,11 @@ const measureTextWidths = (texts, fontWeight, fontSize, fontFamily, letterSpacin
|
|
|
2634
2720
|
return widths;
|
|
2635
2721
|
};
|
|
2636
2722
|
|
|
2723
|
+
const getLabel = entry => {
|
|
2724
|
+
return entry.label;
|
|
2725
|
+
};
|
|
2637
2726
|
const addWidths = (entries, labelPadding, fontWeight, fontSize, fontFamily, letterSpacing) => {
|
|
2638
|
-
const labels = entries.map(
|
|
2727
|
+
const labels = entries.map(getLabel);
|
|
2639
2728
|
const widths = measureTextWidths(labels, fontWeight, fontSize, fontFamily, letterSpacing);
|
|
2640
2729
|
const withWidths = [];
|
|
2641
2730
|
for (let i = 0; i < entries.length; i++) {
|
|
@@ -2650,8 +2739,34 @@ const addWidths = (entries, labelPadding, fontWeight, fontSize, fontFamily, lett
|
|
|
2650
2739
|
return withWidths;
|
|
2651
2740
|
};
|
|
2652
2741
|
|
|
2742
|
+
const loadContent2 = async state => {
|
|
2743
|
+
const {
|
|
2744
|
+
platform,
|
|
2745
|
+
controlsOverlayEnabled,
|
|
2746
|
+
titleBarStyleCustom,
|
|
2747
|
+
labelFontFamily,
|
|
2748
|
+
labelFontSize,
|
|
2749
|
+
labelFontWeight,
|
|
2750
|
+
labelLetterSpacing,
|
|
2751
|
+
labelPadding
|
|
2752
|
+
} = state;
|
|
2753
|
+
const titleBarEntries = await getMenuEntries(TitleBar$1);
|
|
2754
|
+
const withWidths = addWidths(titleBarEntries, labelPadding, labelFontWeight, labelFontSize, labelFontFamily, labelLetterSpacing);
|
|
2755
|
+
const buttons = getTitleBarButtons(platform, controlsOverlayEnabled, titleBarStyleCustom);
|
|
2756
|
+
const title = 'test';
|
|
2757
|
+
return {
|
|
2758
|
+
...state,
|
|
2759
|
+
titleBarEntries: withWidths,
|
|
2760
|
+
buttons,
|
|
2761
|
+
title
|
|
2762
|
+
};
|
|
2763
|
+
};
|
|
2764
|
+
|
|
2653
2765
|
const loadContent = async (state, titleBarEntries) => {
|
|
2654
2766
|
const {
|
|
2767
|
+
platform,
|
|
2768
|
+
controlsOverlayEnabled,
|
|
2769
|
+
titleBarStyleCustom,
|
|
2655
2770
|
labelFontFamily,
|
|
2656
2771
|
labelFontSize,
|
|
2657
2772
|
labelFontWeight,
|
|
@@ -2659,9 +2774,13 @@ const loadContent = async (state, titleBarEntries) => {
|
|
|
2659
2774
|
labelPadding
|
|
2660
2775
|
} = state;
|
|
2661
2776
|
const withWidths = addWidths(titleBarEntries, labelPadding, labelFontWeight, labelFontSize, labelFontFamily, labelLetterSpacing);
|
|
2777
|
+
const buttons = getTitleBarButtons(platform, controlsOverlayEnabled, titleBarStyleCustom);
|
|
2778
|
+
const title = 'test';
|
|
2662
2779
|
return {
|
|
2663
2780
|
...state,
|
|
2664
|
-
titleBarEntries: withWidths
|
|
2781
|
+
titleBarEntries: withWidths,
|
|
2782
|
+
buttons,
|
|
2783
|
+
title
|
|
2665
2784
|
};
|
|
2666
2785
|
};
|
|
2667
2786
|
|
|
@@ -3263,6 +3382,85 @@ const render2 = async (uid, diffResult) => {
|
|
|
3263
3382
|
return commands;
|
|
3264
3383
|
};
|
|
3265
3384
|
|
|
3385
|
+
const getIcon = assetDir => {
|
|
3386
|
+
return `${assetDir}/icons/icon.svg`;
|
|
3387
|
+
};
|
|
3388
|
+
|
|
3389
|
+
const getTitleBarVirtualDom = state => {
|
|
3390
|
+
const {
|
|
3391
|
+
titleBarEntries,
|
|
3392
|
+
width,
|
|
3393
|
+
focusedIndex,
|
|
3394
|
+
isMenuOpen,
|
|
3395
|
+
assetDir,
|
|
3396
|
+
title,
|
|
3397
|
+
titleBarButtons
|
|
3398
|
+
} = state;
|
|
3399
|
+
const dom = [];
|
|
3400
|
+
|
|
3401
|
+
// Add icon if enabled
|
|
3402
|
+
if (state.titleBarIconEnabled) {
|
|
3403
|
+
const iconSrc = getIcon(assetDir);
|
|
3404
|
+
const iconDom = getTitleBarIconVirtualDom(iconSrc);
|
|
3405
|
+
dom.push(...iconDom);
|
|
3406
|
+
}
|
|
3407
|
+
|
|
3408
|
+
// Add menu bar if enabled
|
|
3409
|
+
if (state.titleBarMenuBarEnabled) {
|
|
3410
|
+
const visibleEntries = getVisibleTitleBarEntries(titleBarEntries, width, focusedIndex, isMenuOpen);
|
|
3411
|
+
const menuBarDom = getTitleBarMenuBarVirtualDom(visibleEntries, focusedIndex);
|
|
3412
|
+
dom.push(...menuBarDom);
|
|
3413
|
+
}
|
|
3414
|
+
|
|
3415
|
+
// Add title if enabled
|
|
3416
|
+
if (state.titleBarTitleEnabled) {
|
|
3417
|
+
const titleDom = getTitleVirtualDom(title);
|
|
3418
|
+
dom.push(...titleDom);
|
|
3419
|
+
}
|
|
3420
|
+
|
|
3421
|
+
// Add buttons if enabled
|
|
3422
|
+
if (state.titleBarButtonsEnabled) {
|
|
3423
|
+
const buttonsDom = getTitleBarButtonsVirtualDom(titleBarButtons);
|
|
3424
|
+
dom.push(...buttonsDom);
|
|
3425
|
+
}
|
|
3426
|
+
return dom;
|
|
3427
|
+
};
|
|
3428
|
+
|
|
3429
|
+
const renderTitleBar = (oldState, newState) => {
|
|
3430
|
+
const dom = getTitleBarVirtualDom(newState);
|
|
3431
|
+
return ['Viewlet.setDom2', newState.uid, dom];
|
|
3432
|
+
};
|
|
3433
|
+
|
|
3434
|
+
const getRenderer3 = diffType => {
|
|
3435
|
+
switch (diffType) {
|
|
3436
|
+
case RenderEntries:
|
|
3437
|
+
return renderTitleBar;
|
|
3438
|
+
case RenderFocusedIndex:
|
|
3439
|
+
return renderFocusedIndex;
|
|
3440
|
+
case RenderMenus:
|
|
3441
|
+
return renderMenus;
|
|
3442
|
+
default:
|
|
3443
|
+
throw new Error('unknown renderer');
|
|
3444
|
+
}
|
|
3445
|
+
};
|
|
3446
|
+
|
|
3447
|
+
const render3 = async (uid, diffResult) => {
|
|
3448
|
+
const {
|
|
3449
|
+
oldState,
|
|
3450
|
+
newState
|
|
3451
|
+
} = get$1(uid);
|
|
3452
|
+
set$3(uid, newState, newState);
|
|
3453
|
+
const commands = [];
|
|
3454
|
+
for (const item of diffResult) {
|
|
3455
|
+
const fn = getRenderer3(item);
|
|
3456
|
+
const result = fn(oldState, newState);
|
|
3457
|
+
if (result.length > 0) {
|
|
3458
|
+
commands.push(result);
|
|
3459
|
+
}
|
|
3460
|
+
}
|
|
3461
|
+
return commands;
|
|
3462
|
+
};
|
|
3463
|
+
|
|
3266
3464
|
const renderEventListeners = () => {
|
|
3267
3465
|
return [{
|
|
3268
3466
|
name: HandleClickMinimize,
|
|
@@ -3303,34 +3501,6 @@ const saveState = uid => {
|
|
|
3303
3501
|
};
|
|
3304
3502
|
};
|
|
3305
3503
|
|
|
3306
|
-
const DEFAULT_UID = 1;
|
|
3307
|
-
const createDefaultState = (uid = DEFAULT_UID) => ({
|
|
3308
|
-
assetDir: '',
|
|
3309
|
-
focusedIndex: -1,
|
|
3310
|
-
height: 30,
|
|
3311
|
-
iconWidth: 30,
|
|
3312
|
-
isMenuOpen: false,
|
|
3313
|
-
itleBarIconEnabled: true,
|
|
3314
|
-
labelFontFamily: 'system-ui, Ubuntu, Droid Sans, sans-serif',
|
|
3315
|
-
labelFontSize: 13,
|
|
3316
|
-
labelFontWeight: 400,
|
|
3317
|
-
labelLetterSpacing: 0,
|
|
3318
|
-
labelPadding: 8,
|
|
3319
|
-
menus: [],
|
|
3320
|
-
titleBarButtonsEnabled: true,
|
|
3321
|
-
titleBarButtonsWidth: 90,
|
|
3322
|
-
titleBarEntries: [],
|
|
3323
|
-
titleBarHeight: 30,
|
|
3324
|
-
titleBarIconWidth: 30,
|
|
3325
|
-
titleBarMenuBarEnabled: true,
|
|
3326
|
-
titleBarTitleEnabled: true,
|
|
3327
|
-
uid,
|
|
3328
|
-
width: 800,
|
|
3329
|
-
x: 0,
|
|
3330
|
-
y: 0,
|
|
3331
|
-
title: ''
|
|
3332
|
-
});
|
|
3333
|
-
|
|
3334
3504
|
const create = (id, uri, x, y, width, height) => {
|
|
3335
3505
|
const state = {
|
|
3336
3506
|
...createDefaultState(),
|
|
@@ -3835,13 +4005,20 @@ const toggleMenu = async state => {
|
|
|
3835
4005
|
};
|
|
3836
4006
|
|
|
3837
4007
|
const commandMap = {
|
|
4008
|
+
'TitleBar.create3': create3,
|
|
4009
|
+
'TitleBar.diff3': diff3,
|
|
3838
4010
|
'TitleBar.getButtonsVirtualDom': getTitleBarButtonsVirtualDom,
|
|
3839
4011
|
'TitleBar.getIconVirtualDom': getTitleBarIconVirtualDom,
|
|
3840
4012
|
'TitleBar.getMenuEntries': getMenuEntries$1,
|
|
3841
4013
|
'TitleBar.getMenuIds': getMenuIds,
|
|
3842
4014
|
'TitleBar.getTitleVirtualDom': getTitleVirtualDom,
|
|
4015
|
+
'TitleBar.loadContent2': wrapCommand(loadContent2),
|
|
3843
4016
|
'TitleBar.handleButtonsClick': handleClick$1,
|
|
4017
|
+
'TitleBar.handleClickClose': wrapCommand(handleClickClose),
|
|
4018
|
+
'TitleBar.handleClickMinimize': wrapCommand(handleClickMinimize),
|
|
4019
|
+
'TitleBar.handleClickToggleMaximize': wrapCommand(handleClickToggleMaximize),
|
|
3844
4020
|
'TitleBar.handleContextMenu': handleContextMenu,
|
|
4021
|
+
'TitleBar.render3': render3,
|
|
3845
4022
|
'TitleBar.renderEventListeners': renderEventListeners,
|
|
3846
4023
|
'TitleBarMenuBar.closeMenu': closeMenu,
|
|
3847
4024
|
'TitleBarMenuBar.create': create,
|