mirror of
https://github.com/ElectronNET/Electron.NET.git
synced 2026-02-13 21:24:00 +00:00
119 lines
3.4 KiB
C#
119 lines
3.4 KiB
C#
using System;
|
|
using System.Runtime.Versioning;
|
|
|
|
// ReSharper disable InconsistentNaming
|
|
|
|
namespace ElectronNET.API
|
|
{
|
|
/// <summary>
|
|
/// Monitor power state changes..
|
|
/// </summary>
|
|
public sealed class PowerMonitor : ApiBase
|
|
{
|
|
protected override SocketTaskEventNameTypes SocketTaskEventNameType => SocketTaskEventNameTypes.DashesLowerFirst;
|
|
protected override SocketEventNameTypes SocketEventNameType => SocketEventNameTypes.DashedLower;
|
|
|
|
/// <summary>
|
|
/// Emitted when the system is about to lock the screen.
|
|
/// </summary>
|
|
[SupportedOSPlatform("macOS")]
|
|
[SupportedOSPlatform("Windows")]
|
|
public event Action OnLockScreen
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Emitted when the system is about to unlock the screen.
|
|
/// </summary>
|
|
[SupportedOSPlatform("macOS")]
|
|
[SupportedOSPlatform("Windows")]
|
|
public event Action OnUnLockScreen
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Emitted when the system is suspending.
|
|
/// </summary>
|
|
public event Action OnSuspend
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Emitted when system is resuming.
|
|
/// </summary>
|
|
public event Action OnResume
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Emitted when the system changes to AC power.
|
|
/// </summary>
|
|
[SupportedOSPlatform("macOS")]
|
|
[SupportedOSPlatform("Windows")]
|
|
public event Action OnAC
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Emitted when system changes to battery power.
|
|
/// </summary>
|
|
[SupportedOSPlatform("macOS")]
|
|
[SupportedOSPlatform("Windows")]
|
|
public event Action OnBattery
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Emitted when the system is about to reboot or shut down. If the event handler
|
|
/// invokes `e.preventDefault()`, Electron will attempt to delay system shutdown in
|
|
/// order for the app to exit cleanly.If `e.preventDefault()` is called, the app
|
|
/// should exit as soon as possible by calling something like `app.quit()`.
|
|
/// </summary>
|
|
[SupportedOSPlatform("Linux")]
|
|
[SupportedOSPlatform("macOS")]
|
|
public event Action OnShutdown
|
|
{
|
|
add => AddEvent(value);
|
|
remove => RemoveEvent(value);
|
|
}
|
|
|
|
private static PowerMonitor _powerMonitor;
|
|
private static object _syncRoot = new object();
|
|
|
|
internal PowerMonitor()
|
|
{
|
|
}
|
|
|
|
internal static PowerMonitor Instance
|
|
{
|
|
get
|
|
{
|
|
if (_powerMonitor == null)
|
|
{
|
|
lock (_syncRoot)
|
|
{
|
|
if (_powerMonitor == null)
|
|
{
|
|
_powerMonitor = new PowerMonitor();
|
|
}
|
|
}
|
|
}
|
|
|
|
return _powerMonitor;
|
|
}
|
|
}
|
|
}
|
|
}
|