UNPKG

@wails/runtime

Version:

Wails V2 Javascript runtime library

110 lines (99 loc) 3.86 kB
/* _ __ _ __ | | / /___ _(_) /____ | | /| / / __ `/ / / ___/ | |/ |/ / /_/ / / (__ ) |__/|__/\__,_/_/_/____/ The lightweight framework for web-like apps (c) Lea Anthony 2019-present */ /* jshint esversion: 6 */ const Events = require('./events'); /** * Registers an event listener that will be invoked when the user changes the * desktop theme (light mode / dark mode). The callback receives a booleanean which * indicates if dark mode is enabled. * * @export * @param {function} callback The callback to invoke on theme change */ function OnThemeChange(callback) { Events.On("wails:system:themechange", callback); } /** * Checks if dark mode is curently enabled. * * @export * @returns {Promise} */ function DarkModeEnabled() { return window.wails.System.IsDarkMode.get(); } /** * Mac Application Config * @typedef {Object} MacAppConfig * @param {MacTitleBar} TitleBar - The window's titlebar configuration */ /** * Mac Title Bar Config * Check out https://github.com/lukakerr/NSWindowStyles for some examples of these settings * @typedef {Object} MacTitleBar * @param {boolean} TitleBarAppearsTransparent - NSWindow.titleBarAppearsTransparent * @param {boolean} HideTitle - NSWindow.hideTitle * @param {boolean} HideTitleBar - NSWindow.hideTitleBar * @param {boolean} FullSizeContent - Makes the webview portion of the window the full size of the window, even over the titlebar * @param {boolean} UseToolbar - Set true to add a blank toolbar to the window (makes the title bar larger) * @param {boolean} HideToolbarSeparator - Set true to remove the separator between the toolbar and the main content area * */ /** * The application configuration * * @typedef {Object} AppConfig * @param {string} Title - Application Title * @param {number} Width - Window Width * @param {number} Height - Window Height * @param {boolean} DisableResize - True if resize is disabled * @param {boolean} Fullscreen - App started in fullscreen * @param {number} MinWidth - Window Minimum Width * @param {number} MinHeight - Window Minimum Height * @param {number} MaxWidth - Window Maximum Width * @param {number} MaxHeight - Window Maximum Height * @param {boolean} StartHidden - Start with window hidden * @param {boolean} DevTools - Enables the window devtools * @param {number} RBGA - The initial window colour. Convert to hex then it'll mean 0xRRGGBBAA * @param {MacAppConfig} [Mac] - Configuration when running on Mac * @param {LinuxAppConfig} [Linux] - Configuration when running on Linux * @param {WindowsAppConfig} [Windows] - Configuration when running on Windows * @param {string} Appearance - The default application appearance. Use the values listed here: https://developer.apple.com/documentation/appkit/nsappearance?language=objc * @param {number} WebviewIsTransparent - Makes the background of the webview content transparent. Use this with the Alpha part of the window colour to make parts of your application transparent. * @param {number} WindowBackgroundIsTranslucent - Makes the transparent parts of the application window translucent. Example: https://en.wikipedia.org/wiki/MacOS_Big_Sur#/media/File:MacOS_Big_Sur_-_Safari_Extensions_category_in_App_Store.jpg * @param {number} LogLevel - The initial log level (lower is more verbose) * */ /** * Returns the application configuration. * * @export * @returns {Promise<AppConfig>} */ function AppConfig() { return window.wails.System.AppConfig.get(); } function LogLevel() { return window.wails.System.LogLevel(); } function Platform() { return window.wails.System.Platform(); } function AppType() { return window.wails.System.AppType(); } module.exports = { OnThemeChange: OnThemeChange, DarkModeEnabled: DarkModeEnabled, LogLevel: LogLevel, Platform: Platform, AppType: AppType, AppConfig: AppConfig, };