diff --git a/src/ElectronNET.API/API/App.cs b/src/ElectronNET.API/API/App.cs
index 088ed84..81b64c8 100644
--- a/src/ElectronNET.API/API/App.cs
+++ b/src/ElectronNET.API/API/App.cs
@@ -7,7 +7,9 @@ using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
using ElectronNET.API.Extensions;
-using static System.Collections.Specialized.BitVector32;
+using ElectronNET.Common;
+
+// ReSharper disable InconsistentNaming
namespace ElectronNET.API
{
@@ -39,7 +41,7 @@ namespace ElectronNET.API
}
});
- BridgeConnector.Socket.Emit("register-app-window-all-closed-event", GetHashCode());
+ BridgeConnector.Socket.Emit("register-app-window-all-closed", GetHashCode());
}
_windowAllClosed += value;
}
@@ -111,7 +113,7 @@ namespace ElectronNET.API
}
});
- BridgeConnector.Socket.Emit("register-app-before-quit-event", GetHashCode());
+ BridgeConnector.Socket.Emit("register-app-before-quit", GetHashCode());
}
_beforeQuit += value;
}
@@ -162,7 +164,7 @@ namespace ElectronNET.API
}
});
- BridgeConnector.Socket.Emit("register-app-will-quit-event", GetHashCode());
+ BridgeConnector.Socket.Emit("register-app-will-quit", GetHashCode());
}
_willQuit += value;
}
@@ -197,7 +199,7 @@ namespace ElectronNET.API
}
});
- BridgeConnector.Socket.Emit("register-app-will-quit-event", GetHashCode() + "quitting");
+ BridgeConnector.Socket.Emit("register-app-will-quit", GetHashCode() + "quitting");
}
_quitting += value;
}
@@ -217,26 +219,8 @@ namespace ElectronNET.API
///
public event Action BrowserWindowBlur
{
- add
- {
- if (_browserWindowBlur == null)
- {
- BridgeConnector.Socket.On("app-browser-window-blur" + GetHashCode(), () =>
- {
- _browserWindowBlur();
- });
-
- BridgeConnector.Socket.Emit("register-app-browser-window-blur-event", GetHashCode());
- }
- _browserWindowBlur += value;
- }
- remove
- {
- _browserWindowBlur -= value;
-
- if (_browserWindowBlur == null)
- BridgeConnector.Socket.Off("app-browser-window-blur" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-browser-window-blur", GetHashCode(), _browserWindowBlur, value);
+ remove => ApiEventManager.RemoveEvent("app-browser-window-blur", GetHashCode(), _browserWindowBlur, value);
}
private event Action _browserWindowBlur;
@@ -246,26 +230,8 @@ namespace ElectronNET.API
///
public event Action BrowserWindowFocus
{
- add
- {
- if (_browserWindowFocus == null)
- {
- BridgeConnector.Socket.On("app-browser-window-focus" + GetHashCode(), () =>
- {
- _browserWindowFocus();
- });
-
- BridgeConnector.Socket.Emit("register-app-browser-window-focus-event", GetHashCode());
- }
- _browserWindowFocus += value;
- }
- remove
- {
- _browserWindowFocus -= value;
-
- if (_browserWindowFocus == null)
- BridgeConnector.Socket.Off("app-browser-window-focus" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-browser-window-focus", GetHashCode(), _browserWindowFocus, value);
+ remove => ApiEventManager.RemoveEvent("app-browser-window-focus", GetHashCode(), _browserWindowFocus, value);
}
private event Action _browserWindowFocus;
@@ -275,26 +241,8 @@ namespace ElectronNET.API
///
public event Action BrowserWindowCreated
{
- add
- {
- if (_browserWindowCreated == null)
- {
- BridgeConnector.Socket.On("app-browser-window-created" + GetHashCode(), () =>
- {
- _browserWindowCreated();
- });
-
- BridgeConnector.Socket.Emit("register-app-browser-window-created-event", GetHashCode());
- }
- _browserWindowCreated += value;
- }
- remove
- {
- _browserWindowCreated -= value;
-
- if (_browserWindowCreated == null)
- BridgeConnector.Socket.Off("app-browser-window-created" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-browser-window-created", GetHashCode(), _browserWindowCreated, value);
+ remove => ApiEventManager.RemoveEvent("app-browser-window-created", GetHashCode(), _browserWindowCreated, value);
}
private event Action _browserWindowCreated;
@@ -304,26 +252,8 @@ namespace ElectronNET.API
///
public event Action WebContentsCreated
{
- add
- {
- if (_webContentsCreated == null)
- {
- BridgeConnector.Socket.On("app-web-contents-created" + GetHashCode(), () =>
- {
- _webContentsCreated();
- });
-
- BridgeConnector.Socket.Emit("register-app-web-contents-created-event", GetHashCode());
- }
- _webContentsCreated += value;
- }
- remove
- {
- _webContentsCreated -= value;
-
- if (_webContentsCreated == null)
- BridgeConnector.Socket.Off("app-web-contents-created" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-web-contents-created", GetHashCode(), _webContentsCreated, value);
+ remove => ApiEventManager.RemoveEvent("app-web-contents-created", GetHashCode(), _webContentsCreated, value);
}
private event Action _webContentsCreated;
@@ -335,26 +265,8 @@ namespace ElectronNET.API
/// when Chrome's accessibility support is enabled, otherwise.
public event Action AccessibilitySupportChanged
{
- add
- {
- if (_accessibilitySupportChanged == null)
- {
- BridgeConnector.Socket.On("app-accessibility-support-changed" + GetHashCode(), (state) =>
- {
- _accessibilitySupportChanged((bool)state);
- });
-
- BridgeConnector.Socket.Emit("register-app-accessibility-support-changed-event", GetHashCode());
- }
- _accessibilitySupportChanged += value;
- }
- remove
- {
- _accessibilitySupportChanged -= value;
-
- if (_accessibilitySupportChanged == null)
- BridgeConnector.Socket.Off("app-accessibility-support-changed" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-accessibility-support-changed", GetHashCode(), _accessibilitySupportChanged, value, (args) => (bool)args);
+ remove => ApiEventManager.RemoveEvent("app-accessibility-support-changed", GetHashCode(), _accessibilitySupportChanged, value);
}
private event Action _accessibilitySupportChanged;
@@ -408,26 +320,8 @@ namespace ElectronNET.API
///
public event Action OpenFile
{
- add
- {
- if (_openFile == null)
- {
- BridgeConnector.Socket.On("app-open-file" + GetHashCode(), (file) =>
- {
- _openFile(file.ToString());
- });
-
- BridgeConnector.Socket.Emit("register-app-open-file-event", GetHashCode());
- }
- _openFile += value;
- }
- remove
- {
- _openFile -= value;
-
- if (_openFile == null)
- BridgeConnector.Socket.Off("app-open-file" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-open-file", GetHashCode(), _openFile, value, (args) => args.ToString());
+ remove => ApiEventManager.RemoveEvent("app-open-file", GetHashCode(), _openFile, value);
}
private event Action _openFile;
@@ -439,26 +333,8 @@ namespace ElectronNET.API
///
public event Action OpenUrl
{
- add
- {
- if (_openUrl == null)
- {
- BridgeConnector.Socket.On("app-open-url" + GetHashCode(), (url) =>
- {
- _openUrl(url.ToString());
- });
-
- BridgeConnector.Socket.Emit("register-app-open-url-event", GetHashCode());
- }
- _openUrl += value;
- }
- remove
- {
- _openUrl -= value;
-
- if (_openUrl == null)
- BridgeConnector.Socket.Off("app-open-url" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("app-open-url", GetHashCode(), _openUrl, value, (args) => args.ToString());
+ remove => ApiEventManager.RemoveEvent("app-open-url", GetHashCode(), _openUrl, value);
}
private event Action _openUrl;
diff --git a/src/ElectronNET.API/API/AutoUpdater.cs b/src/ElectronNET.API/API/AutoUpdater.cs
index da1001f..b06a5ab 100644
--- a/src/ElectronNET.API/API/AutoUpdater.cs
+++ b/src/ElectronNET.API/API/AutoUpdater.cs
@@ -5,6 +5,8 @@ using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
+using ElectronNET.Common;
+// ReSharper disable InconsistentNaming
namespace ElectronNET.API
{
@@ -286,26 +288,8 @@ namespace ElectronNET.API
///
public event Action OnError
{
- add
- {
- if (_error == null)
- {
- BridgeConnector.Socket.On("autoUpdater-error" + GetHashCode(), (message) =>
- {
- _error(message.ToString());
- });
-
- BridgeConnector.Socket.Emit("register-autoUpdater-error-event", GetHashCode());
- }
- _error += value;
- }
- remove
- {
- _error -= value;
-
- if (_error == null)
- BridgeConnector.Socket.Off("autoUpdater-error" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("autoUpdater-error", GetHashCode(), _error, value, (args) => args.ToString());
+ remove => ApiEventManager.RemoveEvent("autoUpdater-error", GetHashCode(), _error, value);
}
private event Action _error;
@@ -315,26 +299,8 @@ namespace ElectronNET.API
///
public event Action OnCheckingForUpdate
{
- add
- {
- if (_checkingForUpdate == null)
- {
- BridgeConnector.Socket.On("autoUpdater-checking-for-update" + GetHashCode(), () =>
- {
- _checkingForUpdate();
- });
-
- BridgeConnector.Socket.Emit("register-autoUpdater-checking-for-update-event", GetHashCode());
- }
- _checkingForUpdate += value;
- }
- remove
- {
- _checkingForUpdate -= value;
-
- if (_checkingForUpdate == null)
- BridgeConnector.Socket.Off("autoUpdater-checking-for-update" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("autoUpdater-checking-for-update", GetHashCode(), _checkingForUpdate, value);
+ remove => ApiEventManager.RemoveEvent("autoUpdater-checking-for-update", GetHashCode(), _checkingForUpdate, value);
}
private event Action _checkingForUpdate;
@@ -345,26 +311,8 @@ namespace ElectronNET.API
///
public event Action OnUpdateAvailable
{
- add
- {
- if (_updateAvailable == null)
- {
- BridgeConnector.Socket.On("autoUpdater-update-available" + GetHashCode(), (updateInfo) =>
- {
- _updateAvailable(JObject.Parse(updateInfo.ToString()).ToObject());
- });
-
- BridgeConnector.Socket.Emit("register-autoUpdater-update-available-event", GetHashCode());
- }
- _updateAvailable += value;
- }
- remove
- {
- _updateAvailable -= value;
-
- if (_updateAvailable == null)
- BridgeConnector.Socket.Off("autoUpdater-update-available" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("autoUpdater-update-available", GetHashCode(), _updateAvailable, value, (args) => JObject.Parse(args.ToString()).ToObject());
+ remove => ApiEventManager.RemoveEvent("autoUpdater-update-available", GetHashCode(), _updateAvailable, value);
}
private event Action _updateAvailable;
@@ -374,26 +322,8 @@ namespace ElectronNET.API
///
public event Action OnUpdateNotAvailable
{
- add
- {
- if (_updateNotAvailable == null)
- {
- BridgeConnector.Socket.On("autoUpdater-update-not-available" + GetHashCode(), (updateInfo) =>
- {
- _updateNotAvailable(JObject.Parse(updateInfo.ToString()).ToObject());
- });
-
- BridgeConnector.Socket.Emit("register-autoUpdater-update-not-available-event", GetHashCode());
- }
- _updateNotAvailable += value;
- }
- remove
- {
- _updateNotAvailable -= value;
-
- if (_updateNotAvailable == null)
- BridgeConnector.Socket.Off("autoUpdater-update-not-available" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("autoUpdater-update-not-available", GetHashCode(), _updateNotAvailable, value, (args) => JObject.Parse(args.ToString()).ToObject());
+ remove => ApiEventManager.RemoveEvent("autoUpdater-update-not-available", GetHashCode(), _updateNotAvailable, value);
}
private event Action _updateNotAvailable;
@@ -403,26 +333,8 @@ namespace ElectronNET.API
///
public event Action OnDownloadProgress
{
- add
- {
- if (_downloadProgress == null)
- {
- BridgeConnector.Socket.On("autoUpdater-download-progress" + GetHashCode(), (progressInfo) =>
- {
- _downloadProgress(JObject.Parse(progressInfo.ToString()).ToObject());
- });
-
- BridgeConnector.Socket.Emit("register-autoUpdater-download-progress-event", GetHashCode());
- }
- _downloadProgress += value;
- }
- remove
- {
- _downloadProgress -= value;
-
- if (_downloadProgress == null)
- BridgeConnector.Socket.Off("autoUpdater-download-progress" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("autoUpdater-download-progress", GetHashCode(), _downloadProgress, value, (args) => JObject.Parse(args.ToString()).ToObject());
+ remove => ApiEventManager.RemoveEvent("autoUpdater-download-progress", GetHashCode(), _downloadProgress, value);
}
private event Action _downloadProgress;
@@ -432,26 +344,8 @@ namespace ElectronNET.API
///
public event Action OnUpdateDownloaded
{
- add
- {
- if (_updateDownloaded == null)
- {
- BridgeConnector.Socket.On("autoUpdater-update-downloaded" + GetHashCode(), (updateInfo) =>
- {
- _updateDownloaded(JObject.Parse(updateInfo.ToString()).ToObject());
- });
-
- BridgeConnector.Socket.Emit("register-autoUpdater-update-downloaded-event", GetHashCode());
- }
- _updateDownloaded += value;
- }
- remove
- {
- _updateDownloaded -= value;
-
- if (_updateDownloaded == null)
- BridgeConnector.Socket.Off("autoUpdater-update-downloaded" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("autoUpdater-update-downloaded", GetHashCode(), _updateDownloaded, value, (args) => JObject.Parse(args.ToString()).ToObject());
+ remove => ApiEventManager.RemoveEvent("autoUpdater-update-downloaded", GetHashCode(), _updateDownloaded, value);
}
private event Action _updateDownloaded;
diff --git a/src/ElectronNET.API/API/BrowserWindow.cs b/src/ElectronNET.API/API/BrowserWindow.cs
index 2fd04a4..25a0b79 100644
--- a/src/ElectronNET.API/API/BrowserWindow.cs
+++ b/src/ElectronNET.API/API/BrowserWindow.cs
@@ -8,6 +8,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
+using ElectronNET.Common;
+// ReSharper disable InconsistentNaming
namespace ElectronNET.API;
@@ -30,28 +32,8 @@ public class BrowserWindow
///
public event Action OnReadyToShow
{
- add
- {
- if (_readyToShow == null)
- {
- BridgeConnector.Socket.On("browserWindow-ready-to-show" + Id, () =>
- {
- _readyToShow();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-ready-to-show", Id);
- }
- _readyToShow += value;
- }
- remove
- {
- _readyToShow -= value;
-
- if (_readyToShow == null)
- {
- BridgeConnector.Socket.Off("browserWindow-ready-to-show" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-ready-to-show", Id, _readyToShow, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-ready-to-show", Id, _readyToShow, value);
}
private event Action _readyToShow;
@@ -61,28 +43,8 @@ public class BrowserWindow
///
public event Action OnPageTitleUpdated
{
- add
- {
- if (_pageTitleUpdated == null)
- {
- BridgeConnector.Socket.On("browserWindow-page-title-updated" + Id, (title) =>
- {
- _pageTitleUpdated(title.ToString());
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-page-title-updated", Id);
- }
- _pageTitleUpdated += value;
- }
- remove
- {
- _pageTitleUpdated -= value;
-
- if (_pageTitleUpdated == null)
- {
- BridgeConnector.Socket.Off("browserWindow-page-title-updated" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-page-title-updated", Id, _pageTitleUpdated, value, (args) => args.ToString());
+ remove => ApiEventManager.RemoveEvent("browserWindow-page-title-updated", Id, _pageTitleUpdated, value);
}
private event Action _pageTitleUpdated;
@@ -92,28 +54,8 @@ public class BrowserWindow
///
public event Action OnClose
{
- add
- {
- if (_close == null)
- {
- BridgeConnector.Socket.On("browserWindow-close" + Id, () =>
- {
- _close();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-close", Id);
- }
- _close += value;
- }
- remove
- {
- _close -= value;
-
- if (_close == null)
- {
- BridgeConnector.Socket.Off("browserWindow-close" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-close", Id, _close, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-close", Id, _close, value);
}
private event Action _close;
@@ -125,28 +67,8 @@ public class BrowserWindow
///
public event Action OnClosed
{
- add
- {
- if (_closed == null)
- {
- BridgeConnector.Socket.On("browserWindow-closed" + Id, () =>
- {
- _closed();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-closed", Id);
- }
- _closed += value;
- }
- remove
- {
- _closed -= value;
-
- if (_closed == null)
- {
- BridgeConnector.Socket.Off("browserWindow-closed" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-closed", Id, _closed, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-closed", Id, _closed, value);
}
private event Action _closed;
@@ -156,28 +78,8 @@ public class BrowserWindow
///
public event Action OnSessionEnd
{
- add
- {
- if (_sessionEnd == null)
- {
- BridgeConnector.Socket.On("browserWindow-session-end" + Id, () =>
- {
- _sessionEnd();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-session-end", Id);
- }
- _sessionEnd += value;
- }
- remove
- {
- _sessionEnd -= value;
-
- if (_sessionEnd == null)
- {
- BridgeConnector.Socket.Off("browserWindow-session-end" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-session-end", Id, _sessionEnd, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-session-end", Id, _sessionEnd, value);
}
private event Action _sessionEnd;
@@ -187,28 +89,8 @@ public class BrowserWindow
///
public event Action OnUnresponsive
{
- add
- {
- if (_unresponsive == null)
- {
- BridgeConnector.Socket.On("browserWindow-unresponsive" + Id, () =>
- {
- _unresponsive();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-unresponsive", Id);
- }
- _unresponsive += value;
- }
- remove
- {
- _unresponsive -= value;
-
- if (_unresponsive == null)
- {
- BridgeConnector.Socket.Off("browserWindow-unresponsive" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-unresponsive", Id, _unresponsive, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-unresponsive", Id, _unresponsive, value);
}
private event Action _unresponsive;
@@ -218,28 +100,8 @@ public class BrowserWindow
///
public event Action OnResponsive
{
- add
- {
- if (_responsive == null)
- {
- BridgeConnector.Socket.On("browserWindow-responsive" + Id, () =>
- {
- _responsive();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-responsive", Id);
- }
- _responsive += value;
- }
- remove
- {
- _responsive -= value;
-
- if (_responsive == null)
- {
- BridgeConnector.Socket.Off("browserWindow-responsive" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-responsive", Id, _responsive, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-responsive", Id, _responsive, value);
}
private event Action _responsive;
@@ -249,28 +111,8 @@ public class BrowserWindow
///
public event Action OnBlur
{
- add
- {
- if (_blur == null)
- {
- BridgeConnector.Socket.On("browserWindow-blur" + Id, () =>
- {
- _blur();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-blur", Id);
- }
- _blur += value;
- }
- remove
- {
- _blur -= value;
-
- if (_blur == null)
- {
- BridgeConnector.Socket.Off("browserWindow-blur" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-blur", Id, _blur, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-blur", Id, _blur, value);
}
private event Action _blur;
@@ -280,28 +122,8 @@ public class BrowserWindow
///
public event Action OnFocus
{
- add
- {
- if (_focus == null)
- {
- BridgeConnector.Socket.On("browserWindow-focus" + Id, () =>
- {
- _focus();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-focus", Id);
- }
- _focus += value;
- }
- remove
- {
- _focus -= value;
-
- if (_focus == null)
- {
- BridgeConnector.Socket.Off("browserWindow-focus" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-focus", Id, _focus, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-focus", Id, _focus, value);
}
private event Action _focus;
@@ -311,28 +133,8 @@ public class BrowserWindow
///
public event Action OnShow
{
- add
- {
- if (_show == null)
- {
- BridgeConnector.Socket.On("browserWindow-show" + Id, () =>
- {
- _show();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-show", Id);
- }
- _show += value;
- }
- remove
- {
- _show -= value;
-
- if (_show == null)
- {
- BridgeConnector.Socket.Off("browserWindow-show" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-show", Id, _show, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-show", Id, _show, value);
}
private event Action _show;
@@ -342,28 +144,8 @@ public class BrowserWindow
///
public event Action OnHide
{
- add
- {
- if (_hide == null)
- {
- BridgeConnector.Socket.On("browserWindow-hide" + Id, () =>
- {
- _hide();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-hide", Id);
- }
- _hide += value;
- }
- remove
- {
- _hide -= value;
-
- if (_hide == null)
- {
- BridgeConnector.Socket.Off("browserWindow-hide" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-hide", Id, _hide, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-hide", Id, _hide, value);
}
private event Action _hide;
@@ -373,28 +155,8 @@ public class BrowserWindow
///
public event Action OnMaximize
{
- add
- {
- if (_maximize == null)
- {
- BridgeConnector.Socket.On("browserWindow-maximize" + Id, () =>
- {
- _maximize();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-maximize", Id);
- }
- _maximize += value;
- }
- remove
- {
- _maximize -= value;
-
- if (_maximize == null)
- {
- BridgeConnector.Socket.Off("browserWindow-maximize" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-maximize", Id, _maximize, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-maximize", Id, _maximize, value);
}
private event Action _maximize;
@@ -404,28 +166,8 @@ public class BrowserWindow
///
public event Action OnUnmaximize
{
- add
- {
- if (_unmaximize == null)
- {
- BridgeConnector.Socket.On("browserWindow-unmaximize" + Id, () =>
- {
- _unmaximize();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-unmaximize", Id);
- }
- _unmaximize += value;
- }
- remove
- {
- _unmaximize -= value;
-
- if (_unmaximize == null)
- {
- BridgeConnector.Socket.Off("browserWindow-unmaximize" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-unmaximize", Id, _unmaximize, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-unmaximize", Id, _unmaximize, value);
}
private event Action _unmaximize;
@@ -435,28 +177,8 @@ public class BrowserWindow
///
public event Action OnMinimize
{
- add
- {
- if (_minimize == null)
- {
- BridgeConnector.Socket.On("browserWindow-minimize" + Id, () =>
- {
- _minimize();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-minimize", Id);
- }
- _minimize += value;
- }
- remove
- {
- _minimize -= value;
-
- if (_minimize == null)
- {
- BridgeConnector.Socket.Off("browserWindow-minimize" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-minimize", Id, _minimize, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-minimize", Id, _minimize, value);
}
private event Action _minimize;
@@ -466,28 +188,8 @@ public class BrowserWindow
///
public event Action OnRestore
{
- add
- {
- if (_restore == null)
- {
- BridgeConnector.Socket.On("browserWindow-restore" + Id, () =>
- {
- _restore();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-restore", Id);
- }
- _restore += value;
- }
- remove
- {
- _restore -= value;
-
- if (_restore == null)
- {
- BridgeConnector.Socket.Off("browserWindow-restore" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-restore", Id, _restore, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-restore", Id, _restore, value);
}
private event Action _restore;
@@ -497,28 +199,8 @@ public class BrowserWindow
///
public event Action OnResize
{
- add
- {
- if (_resize == null)
- {
- BridgeConnector.Socket.On("browserWindow-resize" + Id, () =>
- {
- _resize();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-resize", Id);
- }
- _resize += value;
- }
- remove
- {
- _resize -= value;
-
- if (_resize == null)
- {
- BridgeConnector.Socket.Off("browserWindow-resize" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-resize", Id, _resize, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-resize", Id, _resize, value);
}
private event Action _resize;
@@ -530,28 +212,8 @@ public class BrowserWindow
///
public event Action OnMove
{
- add
- {
- if (_move == null)
- {
- BridgeConnector.Socket.On("browserWindow-move" + Id, () =>
- {
- _move();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-move", Id);
- }
- _move += value;
- }
- remove
- {
- _move -= value;
-
- if (_move == null)
- {
- BridgeConnector.Socket.Off("browserWindow-move" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-move", Id, _move, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-move", Id, _move, value);
}
private event Action _move;
@@ -561,28 +223,8 @@ public class BrowserWindow
///
public event Action OnMoved
{
- add
- {
- if (_moved == null)
- {
- BridgeConnector.Socket.On("browserWindow-moved" + Id, () =>
- {
- _moved();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-moved", Id);
- }
- _moved += value;
- }
- remove
- {
- _moved -= value;
-
- if (_moved == null)
- {
- BridgeConnector.Socket.Off("browserWindow-moved" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-moved", Id, _moved, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-moved", Id, _moved, value);
}
private event Action _moved;
@@ -592,28 +234,8 @@ public class BrowserWindow
///
public event Action OnEnterFullScreen
{
- add
- {
- if (_enterFullScreen == null)
- {
- BridgeConnector.Socket.On("browserWindow-enter-full-screen" + Id, () =>
- {
- _enterFullScreen();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-enter-full-screen", Id);
- }
- _enterFullScreen += value;
- }
- remove
- {
- _enterFullScreen -= value;
-
- if (_enterFullScreen == null)
- {
- BridgeConnector.Socket.Off("browserWindow-enter-full-screen" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-enter-full-screen", Id, _enterFullScreen, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-enter-full-screen", Id, _enterFullScreen, value);
}
private event Action _enterFullScreen;
@@ -623,28 +245,8 @@ public class BrowserWindow
///
public event Action OnLeaveFullScreen
{
- add
- {
- if (_leaveFullScreen == null)
- {
- BridgeConnector.Socket.On("browserWindow-leave-full-screen" + Id, () =>
- {
- _leaveFullScreen();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-leave-full-screen", Id);
- }
- _leaveFullScreen += value;
- }
- remove
- {
- _leaveFullScreen -= value;
-
- if (_leaveFullScreen == null)
- {
- BridgeConnector.Socket.Off("browserWindow-leave-full-screen" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-leave-full-screen", Id, _leaveFullScreen, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-leave-full-screen", Id, _leaveFullScreen, value);
}
private event Action _leaveFullScreen;
@@ -654,28 +256,8 @@ public class BrowserWindow
///
public event Action OnEnterHtmlFullScreen
{
- add
- {
- if (_enterHtmlFullScreen == null)
- {
- BridgeConnector.Socket.On("browserWindow-enter-html-full-screen" + Id, () =>
- {
- _enterHtmlFullScreen();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-enter-html-full-screen", Id);
- }
- _enterHtmlFullScreen += value;
- }
- remove
- {
- _enterHtmlFullScreen -= value;
-
- if (_enterHtmlFullScreen == null)
- {
- BridgeConnector.Socket.Off("browserWindow-enter-html-full-screen" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-enter-html-full-screen", Id, _enterHtmlFullScreen, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-enter-html-full-screen", Id, _enterHtmlFullScreen, value);
}
private event Action _enterHtmlFullScreen;
@@ -685,28 +267,8 @@ public class BrowserWindow
///
public event Action OnLeaveHtmlFullScreen
{
- add
- {
- if (_leaveHtmlFullScreen == null)
- {
- BridgeConnector.Socket.On("browserWindow-leave-html-full-screen" + Id, () =>
- {
- _leaveHtmlFullScreen();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-leave-html-full-screen", Id);
- }
- _leaveHtmlFullScreen += value;
- }
- remove
- {
- _leaveHtmlFullScreen -= value;
-
- if (_leaveHtmlFullScreen == null)
- {
- BridgeConnector.Socket.Off("browserWindow-leave-html-full-screen" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-leave-html-full-screen", Id, _leaveHtmlFullScreen, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-leave-html-full-screen", Id, _leaveHtmlFullScreen, value);
}
private event Action _leaveHtmlFullScreen;
@@ -722,28 +284,8 @@ public class BrowserWindow
///
public event Action OnAppCommand
{
- add
- {
- if (_appCommand == null)
- {
- BridgeConnector.Socket.On("browserWindow-app-command" + Id, (command) =>
- {
- _appCommand(command.ToString());
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-app-command", Id);
- }
- _appCommand += value;
- }
- remove
- {
- _appCommand -= value;
-
- if (_appCommand == null)
- {
- BridgeConnector.Socket.Off("browserWindow-app-command" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-app-command", Id, _appCommand, value, (args) => args.ToString());
+ remove => ApiEventManager.RemoveEvent("browserWindow-app-command", Id, _appCommand, value);
}
private event Action _appCommand;
@@ -753,28 +295,8 @@ public class BrowserWindow
///
public event Action OnSwipe
{
- add
- {
- if (_swipe == null)
- {
- BridgeConnector.Socket.On("browserWindow-swipe" + Id, (direction) =>
- {
- _swipe(direction.ToString());
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-swipe", Id);
- }
- _swipe += value;
- }
- remove
- {
- _swipe -= value;
-
- if (_swipe == null)
- {
- BridgeConnector.Socket.Off("browserWindow-swipe" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-swipe", Id, _swipe, value, (args) => args.ToString());
+ remove => ApiEventManager.RemoveEvent("browserWindow-swipe", Id, _swipe, value);
}
private event Action _swipe;
@@ -784,28 +306,8 @@ public class BrowserWindow
///
public event Action OnSheetBegin
{
- add
- {
- if (_sheetBegin == null)
- {
- BridgeConnector.Socket.On("browserWindow-sheet-begin" + Id, () =>
- {
- _sheetBegin();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-sheet-begin", Id);
- }
- _sheetBegin += value;
- }
- remove
- {
- _sheetBegin -= value;
-
- if (_sheetBegin == null)
- {
- BridgeConnector.Socket.Off("browserWindow-sheet-begin" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-sheet-begin", Id, _sheetBegin, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-sheet-begin", Id, _sheetBegin, value);
}
private event Action _sheetBegin;
@@ -815,28 +317,8 @@ public class BrowserWindow
///
public event Action OnSheetEnd
{
- add
- {
- if (_sheetEnd == null)
- {
- BridgeConnector.Socket.On("browserWindow-sheet-end" + Id, () =>
- {
- _sheetEnd();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-sheet-end", Id);
- }
- _sheetEnd += value;
- }
- remove
- {
- _sheetEnd -= value;
-
- if (_sheetEnd == null)
- {
- BridgeConnector.Socket.Off("browserWindow-sheet-end" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-sheet-end", Id, _sheetEnd, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-sheet-end", Id, _sheetEnd, value);
}
private event Action _sheetEnd;
@@ -846,28 +328,8 @@ public class BrowserWindow
///
public event Action OnNewWindowForTab
{
- add
- {
- if (_newWindowForTab == null)
- {
- BridgeConnector.Socket.On("browserWindow-new-window-for-tab" + Id, () =>
- {
- _newWindowForTab();
- });
-
- BridgeConnector.Socket.Emit("register-browserWindow-new-window-for-tab", Id);
- }
- _newWindowForTab += value;
- }
- remove
- {
- _newWindowForTab -= value;
-
- if (_newWindowForTab == null)
- {
- BridgeConnector.Socket.Off("browserWindow-new-window-for-tab" + Id);
- }
- }
+ add => ApiEventManager.AddEvent("browserWindow-new-window-for-tab", Id, _newWindowForTab, value);
+ remove => ApiEventManager.RemoveEvent("browserWindow-new-window-for-tab", Id, _newWindowForTab, value);
}
private event Action _newWindowForTab;
diff --git a/src/ElectronNET.API/API/NativeTheme.cs b/src/ElectronNET.API/API/NativeTheme.cs
index 037a97a..2dfd210 100644
--- a/src/ElectronNET.API/API/NativeTheme.cs
+++ b/src/ElectronNET.API/API/NativeTheme.cs
@@ -2,6 +2,7 @@
using System.Threading.Tasks;
using ElectronNET.API.Entities;
using ElectronNET.API.Extensions;
+using ElectronNET.Common;
namespace ElectronNET.API
{
@@ -183,28 +184,8 @@ namespace ElectronNET.API
///
public event Action Updated
{
- add
- {
- if (_updated == null)
- {
- BridgeConnector.Socket.On("nativeTheme-updated" + GetHashCode(), () =>
- {
- _updated();
- });
-
- BridgeConnector.Socket.Emit("register-nativeTheme-updated-event", GetHashCode());
- }
- _updated += value;
- }
- remove
- {
- _updated -= value;
-
- if (_updated == null)
- {
- BridgeConnector.Socket.Off("nativeTheme-updated" + GetHashCode());
- }
- }
+ add => ApiEventManager.AddEvent("nativeTheme-updated", GetHashCode(), _updated, value);
+ remove => ApiEventManager.RemoveEvent("nativeTheme-updated", GetHashCode(), _updated, value);
}
private event Action _updated;
diff --git a/src/ElectronNET.API/API/PowerMonitor.cs b/src/ElectronNET.API/API/PowerMonitor.cs
index 03e6874..a42e5ac 100644
--- a/src/ElectronNET.API/API/PowerMonitor.cs
+++ b/src/ElectronNET.API/API/PowerMonitor.cs
@@ -1,5 +1,7 @@
using System;
using System.Threading.Tasks;
+using ElectronNET.Common;
+// ReSharper disable InconsistentNaming
namespace ElectronNET.API
{
@@ -13,26 +15,8 @@ namespace ElectronNET.API
///
public event Action OnLockScreen
{
- add
- {
- if (_lockScreen == null)
- {
- BridgeConnector.Socket.On("pm-lock-screen" , () =>
- {
- _lockScreen();
- });
-
- BridgeConnector.Socket.Emit("register-pm-lock-screen");
- }
- _lockScreen += value;
- }
- remove
- {
- _lockScreen -= value;
-
- if (_lockScreen == null)
- BridgeConnector.Socket.Off("pm-lock-screen");
- }
+ add => ApiEventManager.AddEvent("pm-lock-screen", string.Empty, _lockScreen, value);
+ remove => ApiEventManager.RemoveEvent("pm-lock-screen", string.Empty, _lockScreen, value);
}
private event Action _lockScreen;
@@ -42,26 +26,8 @@ namespace ElectronNET.API
///
public event Action OnUnLockScreen
{
- add
- {
- if (_unlockScreen == null)
- {
- BridgeConnector.Socket.On("pm-unlock-screen", () =>
- {
- _unlockScreen();
- });
-
- BridgeConnector.Socket.Emit("register-pm-unlock-screen");
- }
- _unlockScreen += value;
- }
- remove
- {
- _unlockScreen -= value;
-
- if (_unlockScreen == null)
- BridgeConnector.Socket.Off("pm-unlock-screen");
- }
+ add => ApiEventManager.AddEvent("pm-unlock-screen", string.Empty, _unlockScreen, value);
+ remove => ApiEventManager.RemoveEvent("pm-unlock-screen", string.Empty, _unlockScreen, value);
}
private event Action _unlockScreen;
@@ -71,26 +37,8 @@ namespace ElectronNET.API
///
public event Action OnSuspend
{
- add
- {
- if (_suspend == null)
- {
- BridgeConnector.Socket.On("pm-suspend", () =>
- {
- _suspend();
- });
-
- BridgeConnector.Socket.Emit("register-pm-suspend");
- }
- _suspend += value;
- }
- remove
- {
- _suspend -= value;
-
- if (_suspend == null)
- BridgeConnector.Socket.Off("pm-suspend");
- }
+ add => ApiEventManager.AddEvent("pm-suspend", string.Empty, _suspend, value);
+ remove => ApiEventManager.RemoveEvent("pm-suspend", string.Empty, _suspend, value);
}
private event Action _suspend;
@@ -100,26 +48,8 @@ namespace ElectronNET.API
///
public event Action OnResume
{
- add
- {
- if (_resume == null)
- {
- BridgeConnector.Socket.On("pm-resume", () =>
- {
- _resume();
- });
-
- BridgeConnector.Socket.Emit("register-pm-resume");
- }
- _resume += value;
- }
- remove
- {
- _resume -= value;
-
- if (_resume == null)
- BridgeConnector.Socket.Off("pm-resume");
- }
+ add => ApiEventManager.AddEvent("pm-resume", string.Empty, _resume, value);
+ remove => ApiEventManager.RemoveEvent("pm-resume", string.Empty, _resume, value);
}
private event Action _resume;
@@ -129,26 +59,8 @@ namespace ElectronNET.API
///
public event Action OnAC
{
- add
- {
- if (_onAC == null)
- {
- BridgeConnector.Socket.On("pm-on-ac", () =>
- {
- _onAC();
- });
-
- BridgeConnector.Socket.Emit("register-pm-on-ac");
- }
- _onAC += value;
- }
- remove
- {
- _onAC -= value;
-
- if (_onAC == null)
- BridgeConnector.Socket.Off("pm-on-ac");
- }
+ add => ApiEventManager.AddEvent("pm-on-ac", string.Empty, _onAC, value);
+ remove => ApiEventManager.RemoveEvent("pm-on-ac", string.Empty, _onAC, value);
}
private event Action _onAC;
@@ -158,31 +70,12 @@ namespace ElectronNET.API
///
public event Action OnBattery
{
- add
- {
- if (_onBattery == null)
- {
- BridgeConnector.Socket.On("pm-on-battery", () =>
- {
- _onBattery();
- });
-
- BridgeConnector.Socket.Emit("register-pm-on-battery");
- }
- _onBattery += value;
- }
- remove
- {
- _onBattery -= value;
-
- if (_onBattery == null)
- BridgeConnector.Socket.Off("pm-on-battery");
- }
+ add => ApiEventManager.AddEvent("pm-on-battery", string.Empty, _onBattery, value);
+ remove => ApiEventManager.RemoveEvent("pm-on-battery", string.Empty, _onBattery, value);
}
private event Action _onBattery;
-
-
+
///
/// 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
@@ -191,26 +84,8 @@ namespace ElectronNET.API
///
public event Action OnShutdown
{
- add
- {
- if (_shutdown == null)
- {
- BridgeConnector.Socket.On("pm-shutdown", () =>
- {
- _shutdown();
- });
-
- BridgeConnector.Socket.Emit("register-pm-shutdown");
- }
- _shutdown += value;
- }
- remove
- {
- _shutdown -= value;
-
- if (_shutdown == null)
- BridgeConnector.Socket.Off("pm-on-shutdown");
- }
+ add => ApiEventManager.AddEvent("pm-shutdown", string.Empty, _shutdown, value);
+ remove => ApiEventManager.RemoveEvent("pm-shutdown", string.Empty, _shutdown, value);
}
private event Action _shutdown;
diff --git a/src/ElectronNET.API/API/Screen.cs b/src/ElectronNET.API/API/Screen.cs
index 31cecb5..8f4ee0c 100644
--- a/src/ElectronNET.API/API/Screen.cs
+++ b/src/ElectronNET.API/API/Screen.cs
@@ -4,6 +4,7 @@ using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
using System;
using System.Threading.Tasks;
+using ElectronNET.Common;
namespace ElectronNET.API
{
@@ -17,26 +18,8 @@ namespace ElectronNET.API
///
public event Action OnDisplayAdded
{
- add
- {
- if (_onDisplayAdded == null)
- {
- BridgeConnector.Socket.On("screen-display-added-event" + GetHashCode(), (display) =>
- {
- _onDisplayAdded(((JObject)display).ToObject());
- });
-
- BridgeConnector.Socket.Emit("register-screen-display-added", GetHashCode());
- }
- _onDisplayAdded += value;
- }
- remove
- {
- _onDisplayAdded -= value;
-
- if (_onDisplayAdded == null)
- BridgeConnector.Socket.Off("screen-display-added-event" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("screen-display-added", GetHashCode(), _onDisplayAdded, value, (args) => ((JObject)args).ToObject());
+ remove => ApiEventManager.RemoveEvent("screen-display-added", GetHashCode(), _onDisplayAdded, value);
}
private event Action _onDisplayAdded;
@@ -46,26 +29,8 @@ namespace ElectronNET.API
///
public event Action OnDisplayRemoved
{
- add
- {
- if (_onDisplayRemoved == null)
- {
- BridgeConnector.Socket.On("screen-display-removed-event" + GetHashCode(), (display) =>
- {
- _onDisplayRemoved(((JObject)display).ToObject());
- });
-
- BridgeConnector.Socket.Emit("register-screen-display-removed", GetHashCode());
- }
- _onDisplayRemoved += value;
- }
- remove
- {
- _onDisplayRemoved -= value;
-
- if (_onDisplayRemoved == null)
- BridgeConnector.Socket.Off("screen-display-removed-event" + GetHashCode());
- }
+ add => ApiEventManager.AddEvent("screen-display-removed", GetHashCode(), _onDisplayRemoved, value, (args) => ((JObject)args).ToObject());
+ remove => ApiEventManager.RemoveEvent("screen-display-removed", GetHashCode(), _onDisplayRemoved, value);
}
private event Action _onDisplayRemoved;
@@ -77,29 +42,8 @@ namespace ElectronNET.API
///
public event Action OnDisplayMetricsChanged
{
- add
- {
- if (_onDisplayMetricsChanged == null)
- {
- BridgeConnector.Socket.On("screen-display-metrics-changed-event" + GetHashCode(), (args) =>
- {
- var display = ((JArray)args).First.ToObject();
- var metrics = ((JArray)args).Last.ToObject();
-
- _onDisplayMetricsChanged(display, metrics);
- });
-
- BridgeConnector.Socket.Emit("register-screen-display-metrics-changed", GetHashCode());
- }
- _onDisplayMetricsChanged += value;
- }
- remove
- {
- _onDisplayMetricsChanged -= value;
-
- if (_onDisplayMetricsChanged == null)
- BridgeConnector.Socket.Off("screen-display-metrics-changed-event" + GetHashCode());
- }
+ add => ApiEventManager.AddScreenEvent("screen-display-metrics-changed", GetHashCode(), _onDisplayMetricsChanged, value);
+ remove => ApiEventManager.RemoveScreenEvent("screen-display-metrics-changed", GetHashCode(), _onDisplayMetricsChanged, value);
}
private event Action _onDisplayMetricsChanged;
diff --git a/src/ElectronNET.API/API/Tray.cs b/src/ElectronNET.API/API/Tray.cs
index 906a58c..f4d353d 100644
--- a/src/ElectronNET.API/API/Tray.cs
+++ b/src/ElectronNET.API/API/Tray.cs
@@ -6,6 +6,8 @@ using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
+using ElectronNET.Common;
+// ReSharper disable InconsistentNaming
namespace ElectronNET.API
{
@@ -19,29 +21,8 @@ namespace ElectronNET.API
///
public event Action OnClick
{
- add
- {
- if (_click == null)
- {
- BridgeConnector.Socket.On("tray-click-event" + GetHashCode(), (result) =>
- {
- var args = ((JArray)result).ToObject