2021-08-26 09:55:14 +02:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
2021-08-26 14:22:54 +02:00
|
|
|
|
using System.Runtime.Versioning;
|
2021-08-26 09:55:14 +02:00
|
|
|
|
|
|
|
|
|
|
namespace ElectronNET.API
|
2017-10-14 17:58:16 +02:00
|
|
|
|
{
|
2017-10-24 21:43:27 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// The Electron.NET API
|
|
|
|
|
|
/// </summary>
|
2017-10-14 17:58:16 +02:00
|
|
|
|
public static class Electron
|
|
|
|
|
|
{
|
2021-08-26 09:55:14 +02:00
|
|
|
|
private static ILoggerFactory loggerFactory;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Sets the logger factory to be used by Electron, if any
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static ILoggerFactory LoggerFactory
|
|
|
|
|
|
{
|
|
|
|
|
|
private get => loggerFactory; set
|
|
|
|
|
|
{
|
|
|
|
|
|
loggerFactory = value;
|
|
|
|
|
|
BridgeConnector.Logger = value.CreateLogger<App>();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-10-14 17:58:16 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Communicate asynchronously from the main process to renderer processes.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static IpcMain IpcMain { get { return IpcMain.Instance; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Control your application's event lifecycle.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static App App { get { return App.Instance; } }
|
2017-10-15 06:03:48 +02:00
|
|
|
|
|
2019-05-20 01:08:26 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Enable apps to automatically update themselves. Based on electron-updater.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static AutoUpdater AutoUpdater { get { return AutoUpdater.Instance; } }
|
|
|
|
|
|
|
2017-10-15 06:03:48 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Control your windows.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static WindowManager WindowManager { get { return WindowManager.Instance; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Create native application menus and context menus.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Menu Menu { get { return Menu.Instance; } }
|
2017-10-15 17:03:07 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Display native system dialogs for opening and saving files, alerting, etc.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Dialog Dialog { get { return Dialog.Instance; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Create OS desktop notifications
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Notification Notification { get { return Notification.Instance; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Add icons and context menus to the system’s notification area.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Tray Tray { get { return Tray.Instance; } }
|
2017-10-21 04:37:01 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Detect keyboard events when the application does not have keyboard focus.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static GlobalShortcut GlobalShortcut { get { return GlobalShortcut.Instance; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Manage files and URLs using their default applications.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Shell Shell { get { return Shell.Instance; } }
|
2017-10-23 19:08:10 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Retrieve information about screen size, displays, cursor position, etc.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Screen Screen { get { return Screen.Instance; } }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Perform copy and paste operations on the system clipboard.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static Clipboard Clipboard { get { return Clipboard.Instance; } }
|
2019-01-05 02:17:31 +01:00
|
|
|
|
|
2019-05-15 23:56:53 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Allows you to execute native JavaScript/TypeScript code from the host process.
|
|
|
|
|
|
///
|
|
|
|
|
|
/// It is only possible if the Electron.NET CLI has previously added an
|
|
|
|
|
|
/// ElectronHostHook directory:
|
|
|
|
|
|
/// <c>electronize add HostHook</c>
|
|
|
|
|
|
/// </summary>
|
2019-01-05 02:17:31 +01:00
|
|
|
|
public static HostHook HostHook { get { return HostHook.Instance; } }
|
2020-05-11 12:59:21 -05:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Allows you to execute native Lock and Unlock process.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static PowerMonitor PowerMonitor { get { return PowerMonitor.Instance; } }
|
2020-05-13 14:16:36 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Read and respond to changes in Chromium's native color theme.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static NativeTheme NativeTheme { get { return NativeTheme.Instance; } }
|
2020-06-01 01:59:40 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Control your app in the macOS dock.
|
|
|
|
|
|
/// </summary>
|
2021-08-26 14:22:54 +02:00
|
|
|
|
[SupportedOSPlatform("macos")]
|
2020-06-01 01:59:40 +02:00
|
|
|
|
public static Dock Dock { get { return Dock.Instance; } }
|
2017-10-14 17:58:16 +02:00
|
|
|
|
}
|
2020-06-01 01:59:40 +02:00
|
|
|
|
}
|