5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 23:51:44 +08:00
wails/v2/internal/frontend/runtime/desktop/main.js
Lea Anthony 583b3cd1c3
New Crowdin updates (#1800)
* New translations markdown-page.md (Acholi)
[ci skip]

* New translations stats.mdx (Acholi)
[ci skip]

* New translations code.json (Acholi)
[ci skip]

* New translations options.json (Acholi)
[ci skip]

* New translations current.json (Acholi)
[ci skip]

* New translations version-v2.0.0-beta.43.json (Acholi)
[ci skip]

* New translations helloworld.mdx (Acholi)
[ci skip]

* New translations footer.json (Acholi)
[ci skip]

* New translations navbar.json (Acholi)
[ci skip]

* New translations emailit.mdx (Acholi)
[ci skip]

* New translations modalfilemanager.mdx (Acholi)
[ci skip]

* New translations linux.mdx (Acholi)
[ci skip]

* New translations scriptbar.mdx (Acholi)
[ci skip]

* New translations minecraftupdater.mdx (Acholi)
[ci skip]

* New translations faq.mdx (Acholi)
[ci skip]

* New translations community-guide.mdx (Acholi)
[ci skip]

* New translations vscode.mdx (Acholi)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations templates.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations windows-installer.mdx (Acholi)
[ci skip]

* New translations windows.mdx (Acholi)
[ci skip]

* New translations howdoesitwork.mdx (Acholi)
[ci skip]

* New translations introduction.mdx (Acholi)
[ci skip]

* New translations cli.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations window.mdx (Acholi)
[ci skip]

* New translations menus.mdx (Acholi)
[ci skip]

* New translations options.mdx (Acholi)
[ci skip]

* New translations project-config.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations browser.mdx (Acholi)
[ci skip]

* New translations dialog.mdx (Acholi)
[ci skip]

* New translations events.mdx (Acholi)
[ci skip]

* New translations intro.mdx (Acholi)
[ci skip]

* New translations log.mdx (Acholi)
[ci skip]

* New translations menu.mdx (Acholi)
[ci skip]

* New translations dogsapi.mdx (Acholi)
[ci skip]

* New translations templates.mdx (Chinese Simplified)
[ci skip]

* New translations templates.mdx (Russian)
[ci skip]

* New translations templates.mdx (Japanese)
[ci skip]

* New translations templates.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations templates.mdx (Acholi)
[ci skip]

* New translations encrypteasy.mdx (Japanese)
[ci skip]

* New translations wally.mdx (Korean)
[ci skip]

* New translations wally.mdx (Japanese)
[ci skip]

* New translations wally.mdx (Russian)
[ci skip]

* New translations wally.mdx (Chinese Simplified)
[ci skip]

* New translations wombat.mdx (Japanese)
[ci skip]

* New translations wombat.mdx (Korean)
[ci skip]

* New translations wombat.mdx (Russian)
[ci skip]

* New translations wombat.mdx (Chinese Simplified)
[ci skip]

* New translations ytd.mdx (Japanese)
[ci skip]

* New translations ytd.mdx (Korean)
[ci skip]

* New translations ytd.mdx (Russian)
[ci skip]

* New translations ytd.mdx (Chinese Simplified)
[ci skip]

* New translations encrypteasy.mdx (Korean)
[ci skip]

* New translations october.mdx (Japanese)
[ci skip]

* New translations encrypteasy.mdx (Russian)
[ci skip]

* New translations encrypteasy.mdx (Chinese Simplified)
[ci skip]

* New translations filehound.mdx (Japanese)
[ci skip]

* New translations filehound.mdx (Korean)
[ci skip]

* New translations filehound.mdx (Russian)
[ci skip]

* New translations filehound.mdx (Chinese Simplified)
[ci skip]

* New translations mollywallet.mdx (Japanese)
[ci skip]

* New translations mollywallet.mdx (Korean)
[ci skip]

* New translations mollywallet.mdx (Russian)
[ci skip]

* New translations mollywallet.mdx (Chinese Simplified)
[ci skip]

* New translations october.mdx (Korean)
[ci skip]

* New translations october.mdx (Russian)
[ci skip]

* New translations october.mdx (Chinese Simplified)
[ci skip]

* New translations optimus.mdx (Japanese)
[ci skip]

* New translations optimus.mdx (Korean)
[ci skip]

* New translations optimus.mdx (Russian)
[ci skip]

* New translations optimus.mdx (Chinese Simplified)
[ci skip]

* New translations portfall.mdx (Japanese)
[ci skip]

* New translations portfall.mdx (Korean)
[ci skip]

* New translations portfall.mdx (Russian)
[ci skip]

* New translations portfall.mdx (Chinese Simplified)
[ci skip]

* New translations scriptbar.mdx (Russian)
[ci skip]

* New translations emailit.mdx (Japanese)
[ci skip]

* New translations emailit.mdx (Korean)
[ci skip]

* New translations emailit.mdx (Russian)
[ci skip]

* New translations emailit.mdx (Chinese Simplified)
[ci skip]

* New translations modalfilemanager.mdx (Japanese)
[ci skip]

* New translations modalfilemanager.mdx (Korean)
[ci skip]

* New translations modalfilemanager.mdx (Russian)
[ci skip]

* New translations modalfilemanager.mdx (Chinese Simplified)
[ci skip]

* New translations scriptbar.mdx (Japanese)
[ci skip]

* New translations scriptbar.mdx (Korean)
[ci skip]

* New translations scriptbar.mdx (Chinese Simplified)
[ci skip]

* New translations minecraftupdater.mdx (Japanese)
[ci skip]

* New translations minecraftupdater.mdx (Korean)
[ci skip]

* New translations minecraftupdater.mdx (Russian)
[ci skip]

* New translations minecraftupdater.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations optimus.mdx (Acholi)
[ci skip]

* New translations portfall.mdx (Acholi)
[ci skip]

* New translations wally.mdx (Acholi)
[ci skip]

* New translations october.mdx (Acholi)
[ci skip]

* New translations mollywallet.mdx (Acholi)
[ci skip]

* New translations filehound.mdx (Acholi)
[ci skip]

* New translations encrypteasy.mdx (Acholi)
[ci skip]

* New translations wombat.mdx (Acholi)
[ci skip]

* New translations ytd.mdx (Acholi)
[ci skip]

* New translations scriptbar.mdx (Acholi)
[ci skip]

* New translations minecraftupdater.mdx (Acholi)
[ci skip]

* New translations modalfilemanager.mdx (Acholi)
[ci skip]

* New translations emailit.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations building.mdx (Japanese)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Japanese)
[ci skip]

* New translations howdoesitwork.mdx (Chinese Simplified)
[ci skip]

* New translations introduction.mdx (Japanese)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations introduction.mdx (Russian)
[ci skip]

* New translations introduction.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Japanese)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Korean)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Russian)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Korean)
[ci skip]

* New translations howdoesitwork.mdx (Korean)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Russian)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Japanese)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Korean)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Russian)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations dogsapi.mdx (Japanese)
[ci skip]

* New translations dogsapi.mdx (Korean)
[ci skip]

* New translations dogsapi.mdx (Russian)
[ci skip]

* New translations dogsapi.mdx (Chinese Simplified)
[ci skip]

* New translations howdoesitwork.mdx (Russian)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations building.mdx (Korean)
[ci skip]

* New translations ides.mdx (Chinese Simplified)
[ci skip]

* New translations building.mdx (Russian)
[ci skip]

* New translations building.mdx (Chinese Simplified)
[ci skip]

* New translations installation.mdx (Korean)
[ci skip]

* New translations dynamic-assets.mdx (Japanese)
[ci skip]

* New translations dynamic-assets.mdx (Korean)
[ci skip]

* New translations dynamic-assets.mdx (Russian)
[ci skip]

* New translations dynamic-assets.mdx (Chinese Simplified)
[ci skip]

* New translations ides.mdx (Japanese)
[ci skip]

* New translations ides.mdx (Korean)
[ci skip]

* New translations ides.mdx (Russian)
[ci skip]

* New translations windows-installer.mdx (Japanese)
[ci skip]

* New translations helloworld.mdx (Chinese Simplified)
[ci skip]

* New translations windows-installer.mdx (Korean)
[ci skip]

* New translations windows-installer.mdx (Russian)
[ci skip]

* New translations windows-installer.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Japanese)
[ci skip]

* New translations options.mdx (Korean)
[ci skip]

* New translations options.mdx (Russian)
[ci skip]

* New translations options.mdx (Chinese Simplified)
[ci skip]

* New translations helloworld.mdx (Japanese)
[ci skip]

* New translations helloworld.mdx (Korean)
[ci skip]

* New translations helloworld.mdx (Russian)
[ci skip]

* New translations building.mdx (Acholi)
[ci skip]

* New translations dynamic-assets.mdx (Acholi)
[ci skip]

* New translations ides.mdx (Acholi)
[ci skip]

* New translations windows-installer.mdx (Acholi)
[ci skip]

* New translations howdoesitwork.mdx (Acholi)
[ci skip]

* New translations introduction.mdx (Acholi)
[ci skip]

* New translations options.mdx (Acholi)
[ci skip]

* New translations helloworld.mdx (Acholi)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Acholi)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Acholi)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Acholi)
[ci skip]

* New translations dogsapi.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations window.mdx (Japanese)
[ci skip]

* New translations window.mdx (Korean)
[ci skip]

* New translations window.mdx (Russian)
[ci skip]

* New translations window.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations window.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations installation.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations window.mdx (Japanese)
[ci skip]

* New translations window.mdx (Korean)
[ci skip]

* New translations window.mdx (Russian)
[ci skip]

* New translations window.mdx (Chinese Simplified)
[ci skip]

* New translations navbar.json (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations navbar.json (Chinese Simplified)
[ci skip]

* New translations navbar.json (Russian)
[ci skip]

* New translations navbar.json (Korean)
[ci skip]

* New translations navbar.json (Acholi)
[ci skip]

* New translations events.mdx (Japanese)
[ci skip]

* New translations events.mdx (Korean)
[ci skip]

* New translations events.mdx (Russian)
[ci skip]

* New translations events.mdx (Chinese Simplified)
[ci skip]

* New translations events.mdx (Acholi)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations building.mdx (Korean)
[ci skip]

* New translations development.mdx (Korean)
[ci skip]

* New translations overscroll.mdx (Japanese)
[ci skip]

* New translations overscroll.mdx (Korean)
[ci skip]

* New translations overscroll.mdx (Russian)
[ci skip]

* New translations overscroll.mdx (Chinese Simplified)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations overscroll.mdx (Acholi)
[ci skip]

* New translations bleeding-edge.mdx (Japanese)
[ci skip]

* New translations bleeding-edge.mdx (Korean)
[ci skip]

* New translations bleeding-edge.mdx (Russian)
[ci skip]

* New translations bleeding-edge.mdx (Chinese Simplified)
[ci skip]

* New translations bleeding-edge.mdx (Acholi)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations frameless.mdx (Japanese)
[ci skip]

* New translations frameless.mdx (Korean)
[ci skip]

* New translations frameless.mdx (Russian)
[ci skip]

* New translations frameless.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Japanese)
[ci skip]

* New translations options.mdx (Korean)
[ci skip]

* New translations options.mdx (Russian)
[ci skip]

* New translations options.mdx (Chinese Simplified)
[ci skip]

* New translations frameless.mdx (Acholi)
[ci skip]

* New translations options.mdx (Acholi)
[ci skip]

* Fix issues again
2022-09-12 21:56:43 +10:00

162 lines
4.5 KiB
JavaScript

/*
_ __ _ __
| | / /___ _(_) /____
| | /| / / __ `/ / / ___/
| |/ |/ / /_/ / / (__ )
|__/|__/\__,_/_/_/____/
The electron alternative for Go
(c) Lea Anthony 2019-present
*/
/* jshint esversion: 9 */
import * as Log from './log';
import {eventListeners, EventsEmit, EventsNotify, EventsOff, EventsOn, EventsOnce, EventsOnMultiple} from './events';
import {Call, Callback, callbacks} from './calls';
import {SetBindings} from "./bindings";
import * as Window from "./window";
import * as Screen from "./screen";
import * as Browser from "./browser";
export function Quit() {
window.WailsInvoke('Q');
}
export function Show() {
window.WailsInvoke('S');
}
export function Hide() {
window.WailsInvoke('H');
}
export function Environment() {
return Call(":wails:Environment");
}
// The JS runtime
window.runtime = {
...Log,
...Window,
...Browser,
...Screen,
EventsOn,
EventsOnce,
EventsOnMultiple,
EventsEmit,
EventsOff,
Environment,
Show,
Hide,
Quit
};
// Internal wails endpoints
window.wails = {
Callback,
EventsNotify,
SetBindings,
eventListeners,
callbacks,
flags: {
disableScrollbarDrag: false,
disableWailsDefaultContextMenu: false,
enableResize: false,
defaultCursor: null,
borderThickness: 6,
shouldDrag: false,
cssDragProperty: "--wails-draggable",
cssDragValue: "drag",
}
};
// Set the bindings
window.wails.SetBindings(window.wailsbindings);
delete window.wails.SetBindings;
// This is evaluated at build time in package.json
// const dev = 0;
// const production = 1;
if (ENV === 0) {
delete window.wailsbindings;
}
window.addEventListener('mouseup', () => {
window.wails.flags.shouldDrag = false;
});
let dragTest = function (e) {
return window.getComputedStyle(e.target).getPropertyValue(window.wails.flags.cssDragProperty) === window.wails.flags.cssDragValue;
};
window.wails.setCSSDragProperties = function (property, value) {
window.wails.flags.cssDragProperty = property;
window.wails.flags.cssDragValue = value;
}
window.addEventListener('mousedown', (e) => {
// Check for resizing
if (window.wails.flags.resizeEdge) {
window.WailsInvoke("resize:" + window.wails.flags.resizeEdge);
e.preventDefault();
return;
}
if (dragTest(e)) {
if (window.wails.flags.disableScrollbarDrag) {
// This checks for clicks on the scroll bar
if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) {
return;
}
}
window.wails.flags.shouldDrag = true;
}
});
function setResize(cursor) {
document.body.style.cursor = cursor || window.wails.flags.defaultCursor;
window.wails.flags.resizeEdge = cursor;
}
window.addEventListener('mousemove', function (e) {
if (window.wails.flags.shouldDrag) {
window.WailsInvoke("drag");
return;
}
if (!window.wails.flags.enableResize) {
return;
}
if (window.wails.flags.defaultCursor == null) {
window.wails.flags.defaultCursor = document.body.style.cursor;
}
if (window.outerWidth - e.clientX < window.wails.flags.borderThickness && window.outerHeight - e.clientY < window.wails.flags.borderThickness) {
document.body.style.cursor = "se-resize";
}
let rightBorder = window.outerWidth - e.clientX < window.wails.flags.borderThickness;
let leftBorder = e.clientX < window.wails.flags.borderThickness;
let topBorder = e.clientY < window.wails.flags.borderThickness;
let bottomBorder = window.outerHeight - e.clientY < window.wails.flags.borderThickness;
// If we aren't on an edge, but were, reset the cursor to default
if (!leftBorder && !rightBorder && !topBorder && !bottomBorder && window.wails.flags.resizeEdge !== undefined) {
setResize();
} else if (rightBorder && bottomBorder) setResize("se-resize");
else if (leftBorder && bottomBorder) setResize("sw-resize");
else if (leftBorder && topBorder) setResize("nw-resize");
else if (topBorder && rightBorder) setResize("ne-resize");
else if (leftBorder) setResize("w-resize");
else if (topBorder) setResize("n-resize");
else if (bottomBorder) setResize("s-resize");
else if (rightBorder) setResize("e-resize");
});
// Setup context menu hook
window.addEventListener('contextmenu', function (e) {
if (window.wails.flags.disableWailsDefaultContextMenu) {
e.preventDefault();
}
});
window.WailsInvoke("runtime:ready");