* Namespaced Electron API

This commit is contained in:
Michaël Van Canneyt 2023-11-27 22:56:01 +01:00
parent b760667787
commit ef9c0c64d0
2 changed files with 92 additions and 83 deletions

View File

@ -0,0 +1,3 @@
{$DEFINE FPC_DOTTEDUNITS}
unit Api.Electron;
{$include ../src/libelectron.pas}

View File

@ -12,8 +12,9 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************} **********************************************************************}
{$IFNDEF FPC_DOTTEDUNITS}
Unit libelectron; Unit libelectron;
{$ENDIF}
{$MODE ObjFPC} {$MODE ObjFPC}
{$H+} {$H+}
@ -21,7 +22,12 @@ Unit libelectron;
interface interface
uses SysUtils, JS, Web, nodejs, node.events; uses
{$IFDEF FPC_DOTTEDUNITS}
System.SysUtils, JSApi.JS, BrowserApi.Web, NodeApi.JS, NodeApi.Events, BrowserApi.WebOrWorker;
{$ELSE}
SysUtils, JS, Web, nodejs, node.events, WebOrWorker;
{$ENDIF}
{$INTERFACES CORBA} {$INTERFACES CORBA}
@ -1828,33 +1834,33 @@ Type
TWebSource : TWebSourceClass; TWebSource : TWebSourceClass;
Var Var
app: libelectron.TApp; app: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TApp;
autoUpdater: libelectron.TAutoUpdater; autoUpdater: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TAutoUpdater;
clipboard: libelectron.TClipboard; clipboard: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TClipboard;
contentTracing: libelectron.TContentTracing; contentTracing: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TContentTracing;
contextBridge: libelectron.TContextBridge; contextBridge: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TContextBridge;
crashReporter: libelectron.TCrashReporter; crashReporter: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TCrashReporter;
desktopCapturer: libelectron.TDesktopCapturer; desktopCapturer: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TDesktopCapturer;
dialog: libelectron.TDialog; dialog: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TDialog;
globalShortcut: libelectron.TGlobalShortcut; globalShortcut: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TGlobalShortcut;
inAppPurchase: libelectron.TInAppPurchase; inAppPurchase: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TInAppPurchase;
ipcMain: libelectron.TIpcMain; ipcMain: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIpcMain;
ipcRenderer: libelectron.TIpcRenderer; ipcRenderer: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIpcRenderer;
nativeImage: libelectron.TNativeImage; nativeImage: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNativeImage;
nativeTheme: libelectron.TNativeTheme; nativeTheme: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNativeTheme;
net: libelectron.TNet; net: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNet;
netLog: libelectron.TNetLog; netLog: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNetLog;
powerMonitor: libelectron.TPowerMonitor; powerMonitor: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TPowerMonitor;
powerSaveBlocker: libelectron.TPowerSaveBlocker; powerSaveBlocker: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TPowerSaveBlocker;
protocol: libelectron.TProtocol; protocol: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TProtocol;
safeStorage: libelectron.TSafeStorage; safeStorage: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSafeStorage;
screen: libelectron.TScreen; screen: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TScreen;
session: libelectron.TSession; session: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSession;
shell: libelectron.TShell; shell: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TShell;
systemPreferences: libelectron.TSystemPreferences; systemPreferences: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSystemPreferences;
webContents: libelectron.TWebContents; webContents: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebContents;
webFrame: libelectron.TWebFrame; webFrame: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebFrame;
webFrameMain: libelectron.TWebFrameMain; webFrameMain: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebFrameMain;
end; end;
@ -1863,26 +1869,26 @@ Type
TMainExports = class external name 'Object' (TJSObject) TMainExports = class external name 'Object' (TJSObject)
Public Public
var var
app : libelectron.TApp; app : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TApp;
autoUpdater : libelectron.TAutoUpdater; autoUpdater : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TAutoUpdater;
contentTracing : libelectron.TContentTracing; contentTracing : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TContentTracing;
desktopCapturer : libelectron.TDesktopCapturer; desktopCapturer : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TDesktopCapturer;
dialog : libelectron.TDialog; dialog : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TDialog;
globalShortcut : libelectron.TGlobalShortcut; globalShortcut : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TGlobalShortcut;
inAppPurchase : libelectron.TInAppPurchase; inAppPurchase : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TInAppPurchase;
ipcMain : libelectron.TIpcMain; ipcMain : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIpcMain;
nativeTheme : libelectron.TNativeTheme; nativeTheme : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNativeTheme;
net : libelectron.TNet; net : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNet;
netLog : libelectron.TNetLog; netLog : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNetLog;
powerMonitor : libelectron.TPowerMonitor; powerMonitor : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TPowerMonitor;
powerSaveBlocker : libelectron.TPowerSaveBlocker; powerSaveBlocker : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TPowerSaveBlocker;
protocol : libelectron.TProtocol; protocol : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TProtocol;
safeStorage : libelectron.TSafeStorage; safeStorage : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSafeStorage;
screen : libelectron.TScreen; screen : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TScreen;
session : libelectron.TSession; session : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSession;
systemPreferences : libelectron.TSystemPreferences; systemPreferences : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSystemPreferences;
webContents : libelectron.TWebContents; webContents : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebContents;
webFrameMain : libelectron.TWebFrameMain; webFrameMain : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebFrameMain;
TBrowserView : TBrowserViewClass; external name 'BrowserView'; TBrowserView : TBrowserViewClass; external name 'BrowserView';
TBrowserWindow : TBrowserWindowClass; external name 'BrowserWindow'; TBrowserWindow : TBrowserWindowClass; external name 'BrowserWindow';
@ -1907,12 +1913,12 @@ Type
TIpcRenderer : TIpcRendererClass; TIpcRenderer : TIpcRendererClass;
TWebFrame : TWebFrameClass; TWebFrame : TWebFrameClass;
contextBridge: libelectron.TContextBridge; contextBridge: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TContextBridge;
ipcRenderer: libelectron.TIpcRenderer; ipcRenderer: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIpcRenderer;
webFrame: libelectron.TWebFrame; webFrame: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebFrame;
shell: libelectron.TShell; shell: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TShell;
nativeImage : libelectron.TNativeImage; nativeImage : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNativeImage;
crashReporter : libelectron.TCrashReporter; crashReporter : {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TCrashReporter;
end; end;
TPreloadExports = class external name 'Object' (TJSObject) TPreloadExports = class external name 'Object' (TJSObject)
@ -2211,29 +2217,29 @@ Type
TWebRequestFilter : TWebRequestFilterClass; external name 'WebRequestFilter'; TWebRequestFilter : TWebRequestFilterClass; external name 'WebRequestFilter';
TWebSource : TWebSourceClass; external name 'WebSource'; TWebSource : TWebSourceClass; external name 'WebSource';
app: libelectron.TApp; app: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TApp;
autoUpdater: libelectron.TAutoUpdater; autoUpdater: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TAutoUpdater;
clipboard: libelectron.TClipboard; clipboard: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TClipboard;
contentTracing: libelectron.TContentTracing; contentTracing: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TContentTracing;
contextBridge: libelectron.TContextBridge; contextBridge: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TContextBridge;
crashReporter: libelectron.TCrashReporter; crashReporter: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TCrashReporter;
desktopCapturer: libelectron.TDesktopCapturer; desktopCapturer: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TDesktopCapturer;
dialog: libelectron.TDialog; dialog: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TDialog;
globalShortcut: libelectron.TGlobalShortcut; globalShortcut: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TGlobalShortcut;
inAppPurchase: libelectron.TInAppPurchase; inAppPurchase: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TInAppPurchase;
ipcMain: libelectron.TIpcMain; ipcMain: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIpcMain;
ipcRenderer: libelectron.TIpcRenderer; ipcRenderer: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIpcRenderer;
nativeTheme: libelectron.TNativeTheme; nativeTheme: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNativeTheme;
net: libelectron.TNet; net: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNet;
netLog: libelectron.TNetLog; netLog: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TNetLog;
powerMonitor: libelectron.TPowerMonitor; powerMonitor: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TPowerMonitor;
powerSaveBlocker: libelectron.TPowerSaveBlocker; powerSaveBlocker: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TPowerSaveBlocker;
protocol: libelectron.TProtocol; protocol: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TProtocol;
safeStorage: libelectron.TSafeStorage; safeStorage: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSafeStorage;
screen: libelectron.TScreen; screen: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TScreen;
shell: libelectron.TShell; shell: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TShell;
systemPreferences: libelectron.TSystemPreferences; systemPreferences: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSystemPreferences;
webFrame: libelectron.TWebFrame; webFrame: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TWebFrame;
end; end;
TApp_on_listener = Procedure (event : TEvent; accessibilitySupportEnabled : boolean); TApp_on_listener = Procedure (event : TEvent; accessibilitySupportEnabled : boolean);
@ -4777,13 +4783,13 @@ Type
Function &on(event : String; listener : TJSFunction): TProcess; Function &on(event : String; listener : TJSFunction): TProcess;
Function addListener(event : String; listener : TJSFunction): TProcess; Function addListener(event : String; listener : TJSFunction): TProcess;
Procedure crash; Procedure crash;
Function getBlinkMemoryInfo: libelectron.TBlinkMemoryInfo; Function getBlinkMemoryInfo: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TBlinkMemoryInfo;
Function getCPUUsage: libelectron.TCPUUsage; Function getCPUUsage: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TCPUUsage;
Function getCreationTime: jsvalue; Function getCreationTime: jsvalue;
Function getHeapStatistics: libelectron.THeapStatistics; Function getHeapStatistics: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}THeapStatistics;
Function getIOCounters: libelectron.TIOCounters; Function getIOCounters: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TIOCounters;
Function getProcessMemoryInfo: TJSPromise; Function getProcessMemoryInfo: TJSPromise;
Function getSystemMemoryInfo: libelectron.TSystemMemoryInfo; Function getSystemMemoryInfo: {$IFDEF FPC_DOTTEDUNITS}Api.Electron.{$ELSE}libelectron.{$ENDIF}TSystemMemoryInfo;
Function getSystemVersion: string; Function getSystemVersion: string;
Procedure hang; Procedure hang;
Function once(event : String; listener : TJSFunction): TProcess; Function once(event : String; listener : TJSFunction): TProcess;