5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-06 04:51:13 +08:00
wails/v3/internal/runtime/desktop/main.js
2023-08-27 16:59:18 +10:00

94 lines
2.1 KiB
JavaScript

/*
_ __ _ __
| | / /___ _(_) /____
| | /| / / __ `/ / / ___/
| |/ |/ / /_/ / / (__ )
|__/|__/\__,_/_/_/____/
The electron alternative for Go
(c) Lea Anthony 2019-present
*/
/* jshint esversion: 9 */
import * as Clipboard from './clipboard';
import * as Application from './application';
import * as Screens from './screens';
import * as System from './system';
import {Plugin, Call, callErrorCallback, callCallback, CallByID} from "./calls";
import {newWindow} from "./window";
import {dispatchWailsEvent, Emit, Off, OffAll, On, Once, OnMultiple} from "./events";
import {dialogCallback, dialogErrorCallback, Error, Info, OpenFile, Question, SaveFile, Warning,} from "./dialogs";
import {setupContextMenus} from "./contextmenu";
import {reloadWML} from "./wml";
import {setupDrag, endDrag} from "./drag";
window.wails = {
...newRuntime(null),
Capabilities: {},
};
fetch("/wails/capabilities").then((response) => {
response.json().then((data) => {
window.wails.Capabilities = data;
});
});
// Internal wails endpoints
window._wails = {
dialogCallback,
dialogErrorCallback,
dispatchWailsEvent,
callCallback,
callErrorCallback,
endDrag,
};
export function newRuntime(windowName) {
return {
Clipboard: {
...Clipboard
},
Application: {
...Application,
GetWindowByName(windowName) {
return newRuntime(windowName);
}
},
System,
Screens,
Call,
CallByID,
Plugin,
WML: {
Reload: reloadWML,
},
Dialog: {
Info,
Warning,
Error,
Question,
OpenFile,
SaveFile,
},
Events: {
Emit,
On,
Once,
OnMultiple,
Off,
OffAll,
},
Window: newWindow(windowName),
};
}
if (DEBUG) {
console.log("Wails v3.0.0 Debug Mode Enabled");
}
setupContextMenus();
setupDrag();
document.addEventListener("DOMContentLoaded", function(event) {
reloadWML();
});