diff --git a/ElectronNET.API/BrowserWindow.cs b/ElectronNET.API/BrowserWindow.cs index d08319d..9c3dd9a 100644 --- a/ElectronNET.API/BrowserWindow.cs +++ b/ElectronNET.API/BrowserWindow.cs @@ -14,7 +14,11 @@ namespace ElectronNET.API { public int Id { get; private set; } - public event Action ReadyToShow + /// + /// Emitted when the web page has been rendered (while not being shown) and + /// window can be displayed without a visual flash. + /// + public event Action OnReadyToShow { add { @@ -37,6 +41,770 @@ namespace ElectronNET.API private event Action _readyToShow; + /// + /// Emitted when the document changed its title. + /// + public event Action OnPageTitleUpdated + { + add + { + if (_pageTitleUpdated == null) + { + BridgeConnector.Socket.On("browserWindow-page-title-updated", (title) => + { + _pageTitleUpdated(title.ToString()); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-page-title-updated", Id); + } + _pageTitleUpdated += value; + } + remove + { + _pageTitleUpdated -= value; + } + } + + private event Action _pageTitleUpdated; + + /// + /// Emitted when the window is going to be closed. + /// + public event Action OnClose + { + add + { + if (_close == null) + { + BridgeConnector.Socket.On("browserWindow-close", () => + { + _close(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-close", Id); + } + _close += value; + } + remove + { + _close -= value; + } + } + + private event Action _close; + + /// + /// Emitted when the window is closed. + /// After you have received this event you should remove the + /// reference to the window and avoid using it any more. + /// + public event Action OnClosed + { + add + { + if (_closed == null) + { + BridgeConnector.Socket.On("browserWindow-closed", () => + { + _closed(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-closed", Id); + } + _closed += value; + } + remove + { + _closed -= value; + } + } + + private event Action _closed; + + /// + /// Emitted when window session is going to end due to force shutdown or machine restart or session log off. + /// + public event Action OnSessionEnd + { + add + { + if (_sessionEnd == null) + { + BridgeConnector.Socket.On("browserWindow-session-end", () => + { + _sessionEnd(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-session-end", Id); + } + _sessionEnd += value; + } + remove + { + _sessionEnd -= value; + } + } + + private event Action _sessionEnd; + + /// + /// Emitted when the web page becomes unresponsive. + /// + public event Action OnUnresponsive + { + add + { + if (_unresponsive == null) + { + BridgeConnector.Socket.On("browserWindow-unresponsive", () => + { + _unresponsive(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-unresponsive", Id); + } + _unresponsive += value; + } + remove + { + _unresponsive -= value; + } + } + + private event Action _unresponsive; + + /// + /// Emitted when the unresponsive web page becomes responsive again. + /// + public event Action OnResponsive + { + add + { + if (_responsive == null) + { + BridgeConnector.Socket.On("browserWindow-responsive", () => + { + _responsive(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-responsive", Id); + } + _responsive += value; + } + remove + { + _responsive -= value; + } + } + + private event Action _responsive; + + /// + /// Emitted when the window loses focus. + /// + public event Action OnBlur + { + add + { + if (_blur == null) + { + BridgeConnector.Socket.On("browserWindow-blur", () => + { + _blur(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-blur", Id); + } + _blur += value; + } + remove + { + _blur -= value; + } + } + + private event Action _blur; + + /// + /// Emitted when the window gains focus. + /// + public event Action OnFocus + { + add + { + if (_focus == null) + { + BridgeConnector.Socket.On("browserWindow-focus", () => + { + _focus(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-focus", Id); + } + _focus += value; + } + remove + { + _focus -= value; + } + } + + private event Action _focus; + + /// + /// Emitted when the window is shown. + /// + public event Action OnShow + { + add + { + if (_show == null) + { + BridgeConnector.Socket.On("browserWindow-show", () => + { + _show(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-show", Id); + } + _show += value; + } + remove + { + _show -= value; + } + } + + private event Action _show; + + /// + /// Emitted when the window is hidden. + /// + public event Action OnHide + { + add + { + if (_hide == null) + { + BridgeConnector.Socket.On("browserWindow-hide", () => + { + _hide(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-hide", Id); + } + _hide += value; + } + remove + { + _hide -= value; + } + } + + private event Action _hide; + + /// + /// Emitted when window is maximized. + /// + public event Action OnMaximize + { + add + { + if (_maximize == null) + { + BridgeConnector.Socket.On("browserWindow-maximize", () => + { + _maximize(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-maximize", Id); + } + _maximize += value; + } + remove + { + _maximize -= value; + } + } + + private event Action _maximize; + + /// + /// Emitted when the window exits from a maximized state. + /// + public event Action OnUnmaximize + { + add + { + if (_unmaximize == null) + { + BridgeConnector.Socket.On("browserWindow-unmaximize", () => + { + _unmaximize(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-unmaximize", Id); + } + _unmaximize += value; + } + remove + { + _unmaximize -= value; + } + } + + private event Action _unmaximize; + + /// + /// Emitted when the window is minimized. + /// + public event Action OnMinimize + { + add + { + if (_minimize == null) + { + BridgeConnector.Socket.On("browserWindow-minimize", () => + { + _minimize(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-minimize", Id); + } + _minimize += value; + } + remove + { + _minimize -= value; + } + } + + private event Action _minimize; + + /// + /// Emitted when the window is restored from a minimized state. + /// + public event Action OnRestore + { + add + { + if (_restore == null) + { + BridgeConnector.Socket.On("browserWindow-restore", () => + { + _restore(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-restore", Id); + } + _restore += value; + } + remove + { + _restore -= value; + } + } + + private event Action _restore; + + /// + /// Emitted when the window is being resized. + /// + public event Action OnResize + { + add + { + if (_resize == null) + { + BridgeConnector.Socket.On("browserWindow-resize", () => + { + _resize(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-resize", Id); + } + _resize += value; + } + remove + { + _resize -= value; + } + } + + private event Action _resize; + + /// + /// Emitted when the window is being moved to a new position. + /// + /// Note: On macOS this event is just an alias of moved. + /// + public event Action OnMove + { + add + { + if (_move == null) + { + BridgeConnector.Socket.On("browserWindow-move", () => + { + _move(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-move", Id); + } + _move += value; + } + remove + { + _move -= value; + } + } + + private event Action _move; + + /// + /// Emitted once when the window is moved to a new position. + /// + public event Action OnMoved + { + add + { + if (_moved == null) + { + BridgeConnector.Socket.On("browserWindow-moved", () => + { + _moved(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-moved", Id); + } + _moved += value; + } + remove + { + _moved -= value; + } + } + + private event Action _moved; + + /// + /// Emitted when the window enters a full-screen state. + /// + public event Action OnEnterFullScreen + { + add + { + if (_enterFullScreen == null) + { + BridgeConnector.Socket.On("browserWindow-enter-full-screen", () => + { + _enterFullScreen(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-enter-full-screen", Id); + } + _enterFullScreen += value; + } + remove + { + _enterFullScreen -= value; + } + } + + private event Action _enterFullScreen; + + /// + /// Emitted when the window leaves a full-screen state. + /// + public event Action OnLeaveFullScreen + { + add + { + if (_leaveFullScreen == null) + { + BridgeConnector.Socket.On("browserWindow-leave-full-screen", () => + { + _leaveFullScreen(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-leave-full-screen", Id); + } + _leaveFullScreen += value; + } + remove + { + _leaveFullScreen -= value; + } + } + + private event Action _leaveFullScreen; + + /// + /// Emitted when the window enters a full-screen state triggered by HTML API. + /// + public event Action OnEnterHtmlFullScreen + { + add + { + if (_enterHtmlFullScreen == null) + { + BridgeConnector.Socket.On("browserWindow-enter-html-full-screen", () => + { + _enterHtmlFullScreen(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-enter-html-full-screen", Id); + } + _enterHtmlFullScreen += value; + } + remove + { + _enterHtmlFullScreen -= value; + } + } + + private event Action _enterHtmlFullScreen; + + /// + /// Emitted when the window leaves a full-screen state triggered by HTML API. + /// + public event Action OnLeaveHtmlFullScreen + { + add + { + if (_leaveHtmlFullScreen == null) + { + BridgeConnector.Socket.On("browserWindow-leave-html-full-screen", () => + { + _leaveHtmlFullScreen(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-leave-html-full-screen", Id); + } + _leaveHtmlFullScreen += value; + } + remove + { + _leaveHtmlFullScreen -= value; + } + } + + private event Action _leaveHtmlFullScreen; + + /// + /// Emitted when an App Command is invoked. These are typically related to + /// keyboard media keys or browser commands, as well as the “Back” button + /// built into some mice on Windows. + /// + /// Commands are lowercased, underscores are replaced with hyphens, + /// and the APPCOMMAND_ prefix is stripped off.e.g.APPCOMMAND_BROWSER_BACKWARD + /// is emitted as browser-backward. + /// + public event Action OnAppCommand + { + add + { + if (_appCommand == null) + { + BridgeConnector.Socket.On("browserWindow-app-command", (command) => + { + _appCommand(command.ToString()); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-app-command", Id); + } + _appCommand += value; + } + remove + { + _appCommand -= value; + } + } + + private event Action _appCommand; + + /// + /// Emitted when scroll wheel event phase has begun. + /// + public event Action OnScrollTouchBegin + { + add + { + if (_scrollTouchBegin == null) + { + BridgeConnector.Socket.On("browserWindow-scroll-touch-begin", () => + { + _scrollTouchBegin(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-scroll-touch-begin", Id); + } + _scrollTouchBegin += value; + } + remove + { + _scrollTouchBegin -= value; + } + } + + private event Action _scrollTouchBegin; + + /// + /// Emitted when scroll wheel event phase has ended. + /// + public event Action OnScrollTouchEnd + { + add + { + if (_scrollTouchEnd == null) + { + BridgeConnector.Socket.On("browserWindow-scroll-touch-end", () => + { + _scrollTouchEnd(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-scroll-touch-end", Id); + } + _scrollTouchEnd += value; + } + remove + { + _scrollTouchEnd -= value; + } + } + + private event Action _scrollTouchEnd; + + /// + /// Emitted when scroll wheel event phase filed upon reaching the edge of element. + /// + public event Action OnScrollTouchEdge + { + add + { + if (_scrollTouchEdge == null) + { + BridgeConnector.Socket.On("browserWindow-scroll-touch-edge", () => + { + _scrollTouchEdge(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-scroll-touch-edge", Id); + } + _scrollTouchEdge += value; + } + remove + { + _scrollTouchEdge -= value; + } + } + + private event Action _scrollTouchEdge; + + /// + /// Emitted on 3-finger swipe. Possible directions are up, right, down, left. + /// + public event Action OnSwipe + { + add + { + if (_swipe == null) + { + BridgeConnector.Socket.On("browserWindow-swipe", (direction) => + { + _swipe(direction.ToString()); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-swipe", Id); + } + _swipe += value; + } + remove + { + _swipe -= value; + } + } + + private event Action _swipe; + + /// + /// Emitted when the window opens a sheet. + /// + public event Action OnSheetBegin + { + add + { + if (_sheetBegin == null) + { + BridgeConnector.Socket.On("browserWindow-sheet-begin", () => + { + _sheetBegin(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-sheet-begin", Id); + } + _sheetBegin += value; + } + remove + { + _sheetBegin -= value; + } + } + + private event Action _sheetBegin; + + /// + /// Emitted when the window has closed a sheet. + /// + public event Action OnSheetEnd + { + add + { + if (_sheetEnd == null) + { + BridgeConnector.Socket.On("browserWindow-sheet-end", () => + { + _sheetEnd(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-sheet-end", Id); + } + _sheetEnd += value; + } + remove + { + _sheetEnd -= value; + } + } + + private event Action _sheetEnd; + + /// + /// Emitted when the native new tab button is clicked. + /// + public event Action OnNewWindowForTab + { + add + { + if (_newWindowForTab == null) + { + BridgeConnector.Socket.On("browserWindow-new-window-for-tab", () => + { + _newWindowForTab(); + }); + + BridgeConnector.Socket.Emit("register-browserWindow-new-window-for-tab", Id); + } + _newWindowForTab += value; + } + remove + { + _newWindowForTab -= value; + } + } + + private event Action _newWindowForTab; + internal BrowserWindow(int id) { Id = id; } @@ -48,7 +816,7 @@ namespace ElectronNET.API /// public void Destroy() { - BridgeConnector.Socket.Emit("browserWindow-destroy", Id); + BridgeConnector.Socket.Emit("browserWindowDestroy", Id); } /// @@ -57,7 +825,7 @@ namespace ElectronNET.API /// public void Close() { - BridgeConnector.Socket.Emit("browserWindow-close", Id); + BridgeConnector.Socket.Emit("browserWindowClose", Id); } /// @@ -65,7 +833,7 @@ namespace ElectronNET.API /// public void Focus() { - BridgeConnector.Socket.Emit("browserWindow-focus", Id); + BridgeConnector.Socket.Emit("browserWindowFocus", Id); } /// @@ -73,7 +841,7 @@ namespace ElectronNET.API /// public void Blur() { - BridgeConnector.Socket.Emit("browserWindow-blur", Id); + BridgeConnector.Socket.Emit("browserWindowBlur", Id); } /// @@ -90,7 +858,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isFocused); }); - BridgeConnector.Socket.Emit("browserWindow-isFocused", Id); + BridgeConnector.Socket.Emit("browserWindowIsFocused", Id); return taskCompletionSource.Task; } @@ -109,7 +877,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isDestroyed); }); - BridgeConnector.Socket.Emit("browserWindow-isDestroyed", Id); + BridgeConnector.Socket.Emit("browserWindowIsDestroyed", Id); return taskCompletionSource.Task; } @@ -119,7 +887,7 @@ namespace ElectronNET.API /// public void Show() { - BridgeConnector.Socket.Emit("browserWindow-show", Id); + BridgeConnector.Socket.Emit("browserWindowShow", Id); } /// @@ -127,7 +895,7 @@ namespace ElectronNET.API /// public void ShowInactive() { - BridgeConnector.Socket.Emit("browserWindow-showInactive", Id); + BridgeConnector.Socket.Emit("browserWindowShowInactive", Id); } /// @@ -135,7 +903,7 @@ namespace ElectronNET.API /// public void Hide() { - BridgeConnector.Socket.Emit("browserWindow-hide", Id); + BridgeConnector.Socket.Emit("browserWindowHide", Id); } /// @@ -152,7 +920,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isVisible); }); - BridgeConnector.Socket.Emit("browserWindow-isVisible", Id); + BridgeConnector.Socket.Emit("browserWindowIsVisible", Id); return taskCompletionSource.Task; } @@ -171,7 +939,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isModal); }); - BridgeConnector.Socket.Emit("browserWindow-isModal", Id); + BridgeConnector.Socket.Emit("browserWindowIsModal", Id); return taskCompletionSource.Task; } @@ -181,7 +949,7 @@ namespace ElectronNET.API /// public void Maximize() { - BridgeConnector.Socket.Emit("browserWindow-maximize", Id); + BridgeConnector.Socket.Emit("browserWindowMaximize", Id); } /// @@ -189,7 +957,7 @@ namespace ElectronNET.API /// public void Unmaximize() { - BridgeConnector.Socket.Emit("browserWindow-unmaximize", Id); + BridgeConnector.Socket.Emit("browserWindowUnmaximize", Id); } /// @@ -206,7 +974,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isMaximized); }); - BridgeConnector.Socket.Emit("browserWindow-isMaximized", Id); + BridgeConnector.Socket.Emit("browserWindowIsMaximized", Id); return taskCompletionSource.Task; } @@ -216,7 +984,7 @@ namespace ElectronNET.API /// public void Minimize() { - BridgeConnector.Socket.Emit("browserWindow-minimize", Id); + BridgeConnector.Socket.Emit("browserWindowMinimize", Id); } /// @@ -224,7 +992,7 @@ namespace ElectronNET.API /// public void Restore() { - BridgeConnector.Socket.Emit("browserWindow-restore", Id); + BridgeConnector.Socket.Emit("browserWindowRestore", Id); } /// @@ -241,7 +1009,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isMinimized); }); - BridgeConnector.Socket.Emit("browserWindow-isMinimized", Id); + BridgeConnector.Socket.Emit("browserWindowIsMinimized", Id); return taskCompletionSource.Task; } @@ -251,7 +1019,7 @@ namespace ElectronNET.API /// public void SetFullScreen(bool flag) { - BridgeConnector.Socket.Emit("browserWindow-setFullScreen", Id, flag); + BridgeConnector.Socket.Emit("browserWindowSetFullScreen", Id, flag); } /// @@ -268,7 +1036,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isFullScreen); }); - BridgeConnector.Socket.Emit("browserWindow-isFullScreen", Id); + BridgeConnector.Socket.Emit("browserWindowIsFullScreen", Id); return taskCompletionSource.Task; } @@ -289,7 +1057,7 @@ namespace ElectronNET.API /// The extra size not to be included while maintaining the aspect ratio. public void SetAspectRatio(int aspectRatio, Size extraSize) { - BridgeConnector.Socket.Emit("browserWindow-setAspectRatio", Id, aspectRatio, JObject.FromObject(extraSize, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetAspectRatio", Id, aspectRatio, JObject.FromObject(extraSize, _jsonSerializer)); } /// @@ -300,7 +1068,7 @@ namespace ElectronNET.API /// file to open. public void PreviewFile(string path) { - BridgeConnector.Socket.Emit("browserWindow-previewFile", Id, path); + BridgeConnector.Socket.Emit("browserWindowPreviewFile", Id, path); } /// @@ -313,7 +1081,7 @@ namespace ElectronNET.API /// purely visual and does not affect the content type of the file. Defaults to path. public void PreviewFile(string path, string displayname) { - BridgeConnector.Socket.Emit("browserWindow-previewFile", Id, path, displayname); + BridgeConnector.Socket.Emit("browserWindowPreviewFile", Id, path, displayname); } /// @@ -321,7 +1089,7 @@ namespace ElectronNET.API /// public void CloseFilePreview() { - BridgeConnector.Socket.Emit("browserWindow-closeFilePreview", Id); + BridgeConnector.Socket.Emit("browserWindowCloseFilePreview", Id); } /// @@ -330,7 +1098,7 @@ namespace ElectronNET.API /// public void SetBounds(Rectangle bounds) { - BridgeConnector.Socket.Emit("browserWindow-setBounds", Id, JObject.FromObject(bounds, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetBounds", Id, JObject.FromObject(bounds, _jsonSerializer)); } /// @@ -340,7 +1108,7 @@ namespace ElectronNET.API /// public void SetBounds(Rectangle bounds, bool animate) { - BridgeConnector.Socket.Emit("browserWindow-setBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate); + BridgeConnector.Socket.Emit("browserWindowSetBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate); } public Task GetBoundsAsync() @@ -353,7 +1121,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JObject)getBounds).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getBounds", Id); + BridgeConnector.Socket.Emit("browserWindowGetBounds", Id); return taskCompletionSource.Task; } @@ -364,7 +1132,7 @@ namespace ElectronNET.API /// public void SetContentBounds(Rectangle bounds) { - BridgeConnector.Socket.Emit("browserWindow-setContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer)); } /// @@ -374,7 +1142,7 @@ namespace ElectronNET.API /// public void SetContentBounds(Rectangle bounds, bool animate) { - BridgeConnector.Socket.Emit("browserWindow-setContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate); + BridgeConnector.Socket.Emit("browserWindowSetContentBounds", Id, JObject.FromObject(bounds, _jsonSerializer), animate); } public Task GetContentBoundsAsync() @@ -387,7 +1155,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JObject)getContentBounds).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getContentBounds", Id); + BridgeConnector.Socket.Emit("browserWindowGetContentBounds", Id); return taskCompletionSource.Task; } @@ -400,7 +1168,7 @@ namespace ElectronNET.API /// public void SetSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindow-setSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetSize", Id, width, height); } /// @@ -411,7 +1179,7 @@ namespace ElectronNET.API /// public void SetSize(int width, int height, bool animate) { - BridgeConnector.Socket.Emit("browserWindow-setSize", Id, width, height, animate); + BridgeConnector.Socket.Emit("browserWindowSetSize", Id, width, height, animate); } /// @@ -428,7 +1196,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetSize", Id); return taskCompletionSource.Task; } @@ -441,7 +1209,7 @@ namespace ElectronNET.API /// public void SetContentSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindow-setContentSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetContentSize", Id, width, height); } /// @@ -452,7 +1220,7 @@ namespace ElectronNET.API /// public void SetContentSize(int width, int height, bool animate) { - BridgeConnector.Socket.Emit("browserWindow-setContentSize", Id, width, height, animate); + BridgeConnector.Socket.Emit("browserWindowSetContentSize", Id, width, height, animate); } /// @@ -469,7 +1237,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getContentSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetContentSize", Id); return taskCompletionSource.Task; } @@ -481,7 +1249,7 @@ namespace ElectronNET.API /// public void SetMinimumSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindow-setMinimumSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetMinimumSize", Id, width, height); } /// @@ -498,7 +1266,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getMinimumSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetMinimumSize", Id); return taskCompletionSource.Task; } @@ -510,7 +1278,7 @@ namespace ElectronNET.API /// public void SetMaximumSize(int width, int height) { - BridgeConnector.Socket.Emit("browserWindow-setMaximumSize", Id, width, height); + BridgeConnector.Socket.Emit("browserWindowSetMaximumSize", Id, width, height); } /// @@ -527,7 +1295,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JArray)size).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getMaximumSize", Id); + BridgeConnector.Socket.Emit("browserWindowGetMaximumSize", Id); return taskCompletionSource.Task; } @@ -538,7 +1306,7 @@ namespace ElectronNET.API /// public void SetResizable(bool resizable) { - BridgeConnector.Socket.Emit("browserWindow-setResizable", Id, resizable); + BridgeConnector.Socket.Emit("browserWindowSetResizable", Id, resizable); } /// @@ -555,7 +1323,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)resizable); }); - BridgeConnector.Socket.Emit("browserWindow-isResizable", Id); + BridgeConnector.Socket.Emit("browserWindowIsResizable", Id); return taskCompletionSource.Task; } @@ -566,7 +1334,7 @@ namespace ElectronNET.API /// public void SetMovable(bool movable) { - BridgeConnector.Socket.Emit("browserWindow-setMovable", Id, movable); + BridgeConnector.Socket.Emit("browserWindowSetMovable", Id, movable); } /// @@ -585,7 +1353,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)movable); }); - BridgeConnector.Socket.Emit("browserWindow-isMovable", Id); + BridgeConnector.Socket.Emit("browserWindowIsMovable", Id); return taskCompletionSource.Task; } @@ -596,7 +1364,7 @@ namespace ElectronNET.API /// public void SetMinimizable(bool minimizable) { - BridgeConnector.Socket.Emit("browserWindow-setMinimizable", Id, minimizable); + BridgeConnector.Socket.Emit("browserWindowSetMinimizable", Id, minimizable); } /// @@ -615,7 +1383,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)minimizable); }); - BridgeConnector.Socket.Emit("browserWindow-isMinimizable", Id); + BridgeConnector.Socket.Emit("browserWindowIsMinimizable", Id); return taskCompletionSource.Task; } @@ -626,7 +1394,7 @@ namespace ElectronNET.API /// public void SetMaximizable(bool maximizable) { - BridgeConnector.Socket.Emit("browserWindow-setMaximizable", Id, maximizable); + BridgeConnector.Socket.Emit("browserWindowSetMaximizable", Id, maximizable); } /// @@ -645,7 +1413,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)maximizable); }); - BridgeConnector.Socket.Emit("browserWindow-isMaximizable", Id); + BridgeConnector.Socket.Emit("browserWindowIsMaximizable", Id); return taskCompletionSource.Task; } @@ -656,7 +1424,7 @@ namespace ElectronNET.API /// public void SetFullScreenable(bool fullscreenable) { - BridgeConnector.Socket.Emit("browserWindow-setFullScreenable", Id, fullscreenable); + BridgeConnector.Socket.Emit("browserWindowSetFullScreenable", Id, fullscreenable); } /// @@ -673,7 +1441,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)fullscreenable); }); - BridgeConnector.Socket.Emit("browserWindow-isFullScreenable", Id); + BridgeConnector.Socket.Emit("browserWindowIsFullScreenable", Id); return taskCompletionSource.Task; } @@ -684,7 +1452,7 @@ namespace ElectronNET.API /// public void SetClosable(bool closable) { - BridgeConnector.Socket.Emit("browserWindow-setClosable", Id, closable); + BridgeConnector.Socket.Emit("browserWindowSetClosable", Id, closable); } /// @@ -703,7 +1471,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)closable); }); - BridgeConnector.Socket.Emit("browserWindow-isClosable", Id); + BridgeConnector.Socket.Emit("browserWindowIsClosable", Id); return taskCompletionSource.Task; } @@ -716,7 +1484,7 @@ namespace ElectronNET.API /// public void SetAlwaysOnTop(bool flag) { - BridgeConnector.Socket.Emit("browserWindow-setAlwaysOnTop", Id, flag); + BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag); } /// @@ -730,7 +1498,7 @@ namespace ElectronNET.API /// See the macOS docs public void SetAlwaysOnTop(bool flag, string level) { - BridgeConnector.Socket.Emit("browserWindow-setAlwaysOnTop", Id, flag, level); + BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag, level); } /// @@ -746,7 +1514,7 @@ namespace ElectronNET.API /// The default is 0. Note that Apple discourages setting levels higher than 1 above screen-saver. public void SetAlwaysOnTop(bool flag, string level, int relativeLevel) { - BridgeConnector.Socket.Emit("browserWindow-setAlwaysOnTop", Id, flag, level, relativeLevel); + BridgeConnector.Socket.Emit("browserWindowSetAlwaysOnTop", Id, flag, level, relativeLevel); } /// @@ -763,7 +1531,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isAlwaysOnTop); }); - BridgeConnector.Socket.Emit("browserWindow-isAlwaysOnTop", Id); + BridgeConnector.Socket.Emit("browserWindowIsAlwaysOnTop", Id); return taskCompletionSource.Task; } @@ -773,7 +1541,7 @@ namespace ElectronNET.API /// public void Center() { - BridgeConnector.Socket.Emit("browserWindow-center", Id); + BridgeConnector.Socket.Emit("browserWindowCenter", Id); } /// @@ -783,7 +1551,7 @@ namespace ElectronNET.API /// public void SetPosition(int x, int y) { - BridgeConnector.Socket.Emit("browserWindow-setPosition", Id, x, y); + BridgeConnector.Socket.Emit("browserWindowSetPosition", Id, x, y); } /// @@ -794,7 +1562,7 @@ namespace ElectronNET.API /// public void SetPosition(int x, int y, bool animate) { - BridgeConnector.Socket.Emit("browserWindow-setPosition", Id, x, y, animate); + BridgeConnector.Socket.Emit("browserWindowSetPosition", Id, x, y, animate); } /// @@ -811,7 +1579,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(((JArray)position).ToObject()); }); - BridgeConnector.Socket.Emit("browserWindow-getPosition", Id); + BridgeConnector.Socket.Emit("browserWindowGetPosition", Id); return taskCompletionSource.Task; } @@ -822,7 +1590,7 @@ namespace ElectronNET.API /// public void SetTitle(string title) { - BridgeConnector.Socket.Emit("browserWindow-setTitle", Id, title); + BridgeConnector.Socket.Emit("browserWindowSetTitle", Id, title); } /// @@ -841,7 +1609,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(title.ToString()); }); - BridgeConnector.Socket.Emit("browserWindow-getTitle", Id); + BridgeConnector.Socket.Emit("browserWindowGetTitle", Id); return taskCompletionSource.Task; } @@ -854,7 +1622,7 @@ namespace ElectronNET.API /// public void SetSheetOffset(float offsetY) { - BridgeConnector.Socket.Emit("browserWindow-setSheetOffset", Id, offsetY); + BridgeConnector.Socket.Emit("browserWindowSetSheetOffset", Id, offsetY); } /// @@ -866,7 +1634,7 @@ namespace ElectronNET.API /// public void SetSheetOffset(float offsetY, float offsetX) { - BridgeConnector.Socket.Emit("browserWindow-setSheetOffset", Id, offsetY, offsetX); + BridgeConnector.Socket.Emit("browserWindowSetSheetOffset", Id, offsetY, offsetX); } /// @@ -875,7 +1643,7 @@ namespace ElectronNET.API /// public void FlashFrame(bool flag) { - BridgeConnector.Socket.Emit("browserWindow-flashFrame", Id, flag); + BridgeConnector.Socket.Emit("browserWindowFlashFrame", Id, flag); } /// @@ -884,7 +1652,7 @@ namespace ElectronNET.API /// public void SetSkipTaskbar(bool skip) { - BridgeConnector.Socket.Emit("browserWindow-setSkipTaskbar", Id, skip); + BridgeConnector.Socket.Emit("browserWindowSetSkipTaskbar", Id, skip); } /// @@ -893,7 +1661,7 @@ namespace ElectronNET.API /// public void SetKiosk(bool flag) { - BridgeConnector.Socket.Emit("browserWindow-setKiosk", Id, flag); + BridgeConnector.Socket.Emit("browserWindowSetKiosk", Id, flag); } /// @@ -910,7 +1678,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isKiosk); }); - BridgeConnector.Socket.Emit("browserWindow-isKiosk", Id); + BridgeConnector.Socket.Emit("browserWindowIsKiosk", Id); return taskCompletionSource.Task; } @@ -922,7 +1690,7 @@ namespace ElectronNET.API /// public void SetRepresentedFilename(string filename) { - BridgeConnector.Socket.Emit("browserWindow-setRepresentedFilename", Id, filename); + BridgeConnector.Socket.Emit("browserWindowSetRepresentedFilename", Id, filename); } /// @@ -939,7 +1707,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(pathname.ToString()); }); - BridgeConnector.Socket.Emit("browserWindow-getRepresentedFilename", Id); + BridgeConnector.Socket.Emit("browserWindowGetRepresentedFilename", Id); return taskCompletionSource.Task; } @@ -951,7 +1719,7 @@ namespace ElectronNET.API /// public void SetDocumentEdited(bool edited) { - BridgeConnector.Socket.Emit("browserWindow-setDocumentEdited", Id, edited); + BridgeConnector.Socket.Emit("browserWindowSetDocumentEdited", Id, edited); } /// @@ -968,19 +1736,19 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)edited); }); - BridgeConnector.Socket.Emit("browserWindow-isDocumentEdited", Id); + BridgeConnector.Socket.Emit("browserWindowIsDocumentEdited", Id); return taskCompletionSource.Task; } public void FocusOnWebView() { - BridgeConnector.Socket.Emit("browserWindow-focusOnWebView", Id); + BridgeConnector.Socket.Emit("browserWindowFocusOnWebView", Id); } public void BlurWebView() { - BridgeConnector.Socket.Emit("browserWindow-blurWebView", Id); + BridgeConnector.Socket.Emit("browserWindowBlurWebView", Id); } /// @@ -990,7 +1758,7 @@ namespace ElectronNET.API /// public void LoadURL(string url) { - BridgeConnector.Socket.Emit("browserWindow-loadURL", Id, url); + BridgeConnector.Socket.Emit("browserWindowLoadURL", Id, url); } /// @@ -1001,7 +1769,7 @@ namespace ElectronNET.API /// public void LoadURL(string url, LoadURLOptions options) { - BridgeConnector.Socket.Emit("browserWindow-loadURL", Id, url, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowLoadURL", Id, url, JObject.FromObject(options, _jsonSerializer)); } /// @@ -1009,7 +1777,7 @@ namespace ElectronNET.API /// public void Reload() { - BridgeConnector.Socket.Emit("browserWindow-reload", Id); + BridgeConnector.Socket.Emit("browserWindowReload", Id); } public IReadOnlyCollection Items { get { return _items.AsReadOnly(); } } @@ -1023,7 +1791,7 @@ namespace ElectronNET.API public void SetMenu(MenuItem[] menuItems) { menuItems.AddMenuItemsId(); - BridgeConnector.Socket.Emit("browserWindow-setMenu", JArray.FromObject(menuItems, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetMenu", JArray.FromObject(menuItems, _jsonSerializer)); _items.AddRange(menuItems); BridgeConnector.Socket.Off("windowMenuItemClicked"); @@ -1046,7 +1814,7 @@ namespace ElectronNET.API /// public void SetProgressBar(int progress) { - BridgeConnector.Socket.Emit("browserWindow-setProgressBar", Id, progress); + BridgeConnector.Socket.Emit("browserWindowSetProgressBar", Id, progress); } /// @@ -1063,7 +1831,7 @@ namespace ElectronNET.API /// public void SetProgressBar(int progress, ProgressBarOptions progressBarOptions) { - BridgeConnector.Socket.Emit("browserWindow-setProgressBar", Id, progress, JObject.FromObject(progressBarOptions, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetProgressBar", Id, progress, JObject.FromObject(progressBarOptions, _jsonSerializer)); } /// @@ -1072,7 +1840,7 @@ namespace ElectronNET.API /// public void SetHasShadow(bool hasShadow) { - BridgeConnector.Socket.Emit("browserWindow-setHasShadow", Id, hasShadow); + BridgeConnector.Socket.Emit("browserWindowSetHasShadow", Id, hasShadow); } /// @@ -1091,11 +1859,70 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)hasShadow); }); - BridgeConnector.Socket.Emit("browserWindow-hasShadow", Id); + BridgeConnector.Socket.Emit("browserWindowHasShadow", Id); return taskCompletionSource.Task; } + public IReadOnlyCollection ThumbarButtons { get { return _thumbarButtons.AsReadOnly(); } } + private List _thumbarButtons = new List(); + + /// + /// Add a thumbnail toolbar with a specified set of buttons to the thumbnail + /// image of a window in a taskbar button layout. Returns a Boolean object + /// indicates whether the thumbnail has been added successfully. + /// + /// The number of buttons in thumbnail toolbar should be no greater than 7 due + /// to the limited room.Once you setup the thumbnail toolbar, the toolbar cannot + /// be removed due to the platform’s limitation.But you can call the API with an + /// empty array to clean the buttons. + /// + /// + /// Whether the buttons were added successfully. + public Task SetThumbarButtonsAsync(ThumbarButton[] thumbarButtons) + { + var taskCompletionSource = new TaskCompletionSource(); + + BridgeConnector.Socket.On("browserWindowSetThumbarButtons-completed", (success) => { + BridgeConnector.Socket.Off("browserWindowSetThumbarButtons-completed"); + + taskCompletionSource.SetResult((bool)success); + }); + + thumbarButtons.AddThumbarButtonsId(); + BridgeConnector.Socket.Emit("browserWindowSetThumbarButtons", Id, JArray.FromObject(thumbarButtons, _jsonSerializer)); + _thumbarButtons.Clear(); + _thumbarButtons.AddRange(thumbarButtons); + + BridgeConnector.Socket.Off("thumbarButtonClicked"); + BridgeConnector.Socket.On("thumbarButtonClicked", (id) => { + ThumbarButton thumbarButton = _thumbarButtons.GetThumbarButton(id.ToString()); + thumbarButton?.Click(); + }); + + return taskCompletionSource.Task; + } + + /// + /// Sets the region of the window to show as the thumbnail image displayed when hovering over + /// the window in the taskbar. You can reset the thumbnail to be the entire window by specifying + /// an empty region: {x: 0, y: 0, width: 0, height: 0}. + /// + /// + public void SetThumbnailClip(Rectangle rectangle) + { + BridgeConnector.Socket.Emit("browserWindowSetThumbnailClip", Id, rectangle); + } + + /// + /// Sets the toolTip that is displayed when hovering over the window thumbnail in the taskbar. + /// + /// + public void SetThumbnailToolTip(string tooltip) + { + BridgeConnector.Socket.Emit("browserWindowSetThumbnailToolTip", Id, tooltip); + } + /// /// Sets the properties for the window’s taskbar button. /// @@ -1105,7 +1932,7 @@ namespace ElectronNET.API /// public void SetAppDetails(AppDetailsOptions options) { - BridgeConnector.Socket.Emit("browserWindow-setAppDetails", Id, JObject.FromObject(options, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetAppDetails", Id, JObject.FromObject(options, _jsonSerializer)); } /// @@ -1113,7 +1940,7 @@ namespace ElectronNET.API /// public void ShowDefinitionForSelection() { - BridgeConnector.Socket.Emit("browserWindow-showDefinitionForSelection", Id); + BridgeConnector.Socket.Emit("browserWindowShowDefinitionForSelection", Id); } /// @@ -1125,7 +1952,7 @@ namespace ElectronNET.API /// public void SetAutoHideMenuBar(bool hide) { - BridgeConnector.Socket.Emit("browserWindow-setAutoHideMenuBar", Id, hide); + BridgeConnector.Socket.Emit("browserWindowSetAutoHideMenuBar", Id, hide); } /// @@ -1142,7 +1969,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isMenuBarAutoHide); }); - BridgeConnector.Socket.Emit("browserWindow-isMenuBarAutoHide", Id); + BridgeConnector.Socket.Emit("browserWindowIsMenuBarAutoHide", Id); return taskCompletionSource.Task; } @@ -1154,7 +1981,7 @@ namespace ElectronNET.API /// public void SetMenuBarVisibility(bool visible) { - BridgeConnector.Socket.Emit("browserWindow-setMenuBarVisibility", Id, visible); + BridgeConnector.Socket.Emit("browserWindowSetMenuBarVisibility", Id, visible); } /// @@ -1171,7 +1998,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isMenuBarVisible); }); - BridgeConnector.Socket.Emit("browserWindow-isMenuBarVisible", Id); + BridgeConnector.Socket.Emit("browserWindowIsMenuBarVisible", Id); return taskCompletionSource.Task; } @@ -1184,7 +2011,7 @@ namespace ElectronNET.API /// public void SetVisibleOnAllWorkspaces(bool visible) { - BridgeConnector.Socket.Emit("browserWindow-setVisibleOnAllWorkspaces", Id, visible); + BridgeConnector.Socket.Emit("browserWindowSetVisibleOnAllWorkspaces", Id, visible); } /// @@ -1203,7 +2030,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult((bool)isVisibleOnAllWorkspaces); }); - BridgeConnector.Socket.Emit("browserWindow-isVisibleOnAllWorkspaces", Id); + BridgeConnector.Socket.Emit("browserWindowIsVisibleOnAllWorkspaces", Id); return taskCompletionSource.Task; } @@ -1217,7 +2044,7 @@ namespace ElectronNET.API /// public void SetIgnoreMouseEvents(bool ignore) { - BridgeConnector.Socket.Emit("browserWindow-setIgnoreMouseEvents", Id, ignore); + BridgeConnector.Socket.Emit("browserWindowSetIgnoreMouseEvents", Id, ignore); } /// @@ -1229,7 +2056,7 @@ namespace ElectronNET.API /// public void SetContentProtection(bool enable) { - BridgeConnector.Socket.Emit("browserWindow-setContentProtection", Id, enable); + BridgeConnector.Socket.Emit("browserWindowSetContentProtection", Id, enable); } /// @@ -1238,7 +2065,7 @@ namespace ElectronNET.API /// public void SetFocusable(bool focusable) { - BridgeConnector.Socket.Emit("browserWindow-setFocusable", Id, focusable); + BridgeConnector.Socket.Emit("browserWindowSetFocusable", Id, focusable); } /// @@ -1248,7 +2075,7 @@ namespace ElectronNET.API /// public void SetParentWindow(BrowserWindow parent) { - BridgeConnector.Socket.Emit("browserWindow-setParentWindow", Id, JObject.FromObject(parent, _jsonSerializer)); + BridgeConnector.Socket.Emit("browserWindowSetParentWindow", Id, JObject.FromObject(parent, _jsonSerializer)); } /// @@ -1267,7 +2094,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(browserWindow); }); - BridgeConnector.Socket.Emit("browserWindow-getParentWindow", Id); + BridgeConnector.Socket.Emit("browserWindowGetParentWindow", Id); return taskCompletionSource.Task; } @@ -1295,7 +2122,7 @@ namespace ElectronNET.API taskCompletionSource.SetResult(browserWindows); }); - BridgeConnector.Socket.Emit("browserWindow-getChildWindows", Id); + BridgeConnector.Socket.Emit("browserWindowGetChildWindows", Id); return taskCompletionSource.Task; } @@ -1306,7 +2133,7 @@ namespace ElectronNET.API /// public void SetAutoHideCursor(bool autoHide) { - BridgeConnector.Socket.Emit("browserWindow-setAutoHideCursor", Id, autoHide); + BridgeConnector.Socket.Emit("browserWindowSetAutoHideCursor", Id, autoHide); } /// @@ -1318,7 +2145,7 @@ namespace ElectronNET.API /// See the macOS documentation for more details. public void SetVibrancy(string type) { - BridgeConnector.Socket.Emit("browserWindow-setVibrancy", Id, type); + BridgeConnector.Socket.Emit("browserWindowSetVibrancy", Id, type); } private JsonSerializer _jsonSerializer = new JsonSerializer() diff --git a/ElectronNET.API/Entities/ThumbarButton.cs b/ElectronNET.API/Entities/ThumbarButton.cs new file mode 100644 index 0000000..219592f --- /dev/null +++ b/ElectronNET.API/Entities/ThumbarButton.cs @@ -0,0 +1,40 @@ +using Newtonsoft.Json; +using System; + +namespace ElectronNET.API.Entities +{ + public class ThumbarButton + { + public string Id { get; internal set; } + + [JsonIgnore] + public Action Click { get; set; } + + /// + /// Control specific states and behaviors of the button. By default, it is ["enabled"]. + /// + /// enabled - The button is active and available to the user. + /// disabled - The button is disabled.It is present, but has a visual state indicating it will not respond to user action. + /// dismissonclick - When the button is clicked, the thumbnail window closes immediately. + /// nobackground - Do not draw a button border, use only the image. + /// hidden - The button is not shown to the user. + /// noninteractive - The button is enabled but not interactive; no pressed button state is drawn.This value is intended for instances where the button is used in a notification. + /// + public string[] Flags { get; set; } + + /// + /// The icon showing in thumbnail toolbar. + /// + public string Icon { get; set; } + + /// + /// The text of the button's tooltip. + /// + public string Tooltip { get; set; } + + public ThumbarButton(string icon) + { + Icon = icon; + } + } +} \ No newline at end of file diff --git a/ElectronNET.API/Extensions/ThumbarButtonExtensions.cs b/ElectronNET.API/Extensions/ThumbarButtonExtensions.cs new file mode 100644 index 0000000..3b15554 --- /dev/null +++ b/ElectronNET.API/Extensions/ThumbarButtonExtensions.cs @@ -0,0 +1,39 @@ +using ElectronNET.API.Entities; +using System; +using System.Collections.Generic; + +namespace ElectronNET.API.Extensions +{ + internal static class ThumbarButtonExtensions + { + public static ThumbarButton[] AddThumbarButtonsId(this ThumbarButton[] thumbarButtons) + { + for (int index = 0; index < thumbarButtons.Length; index++) + { + var thumbarButton = thumbarButtons[index]; + + if (string.IsNullOrEmpty(thumbarButton.Id)) + { + thumbarButton.Id = Guid.NewGuid().ToString(); + } + } + + return thumbarButtons; + } + + public static ThumbarButton GetThumbarButton(this List thumbarButtons, string id) + { + ThumbarButton result = new ThumbarButton(""); + + foreach (var item in thumbarButtons) + { + if (item.Id == id) + { + result = item; + } + } + + return result; + } + } +} diff --git a/ElectronNET.Host/api/browserWindows.js b/ElectronNET.Host/api/browserWindows.js index c7e4161..43e30df 100644 --- a/ElectronNET.Host/api/browserWindows.js +++ b/ElectronNET.Host/api/browserWindows.js @@ -1,6 +1,7 @@ "use strict"; exports.__esModule = true; var electron_1 = require("electron"); +var path = require('path'); var windows = []; module.exports = function (socket) { socket.on('register-browserWindow-ready-to-show', function (id) { @@ -8,6 +9,151 @@ module.exports = function (socket) { socket.emit('browserWindow-ready-to-show'); }); }); + socket.on('register-browserWindow-page-title-updated', function (id) { + getWindowById(id).on('page-title-updated', function (event, title) { + socket.emit('browserWindow-page-title-updated', title); + }); + }); + socket.on('register-browserWindow-close', function (id) { + getWindowById(id).on('close', function () { + socket.emit('browserWindow-close'); + }); + }); + socket.on('register-browserWindow-closed', function (id) { + getWindowById(id).on('closed', function () { + socket.emit('browserWindow-closed'); + }); + }); + socket.on('register-browserWindow-session-end', function (id) { + getWindowById(id).on('session-end', function () { + socket.emit('browserWindow-session-end'); + }); + }); + socket.on('register-browserWindow-unresponsive', function (id) { + getWindowById(id).on('unresponsive', function () { + socket.emit('browserWindow-unresponsive'); + }); + }); + socket.on('register-browserWindow-responsive', function (id) { + getWindowById(id).on('responsive', function () { + socket.emit('browserWindow-responsive'); + }); + }); + socket.on('register-browserWindow-blur', function (id) { + getWindowById(id).on('blur', function () { + socket.emit('browserWindow-blur'); + }); + }); + socket.on('register-browserWindow-focus', function (id) { + getWindowById(id).on('focus', function () { + socket.emit('browserWindow-focus'); + }); + }); + socket.on('register-browserWindow-show', function (id) { + getWindowById(id).on('show', function () { + socket.emit('browserWindow-show'); + }); + }); + socket.on('register-browserWindow-hide', function (id) { + getWindowById(id).on('hide', function () { + socket.emit('browserWindow-hide'); + }); + }); + socket.on('register-browserWindow-maximize', function (id) { + getWindowById(id).on('maximize', function () { + socket.emit('browserWindow-maximize'); + }); + }); + socket.on('register-browserWindow-unmaximize', function (id) { + getWindowById(id).on('unmaximize', function () { + socket.emit('browserWindow-unmaximize'); + }); + }); + socket.on('register-browserWindow-minimize', function (id) { + getWindowById(id).on('minimize', function () { + socket.emit('browserWindow-minimize'); + }); + }); + socket.on('register-browserWindow-restore', function (id) { + getWindowById(id).on('restore', function () { + socket.emit('browserWindow-restore'); + }); + }); + socket.on('register-browserWindow-resize', function (id) { + getWindowById(id).on('resize', function () { + socket.emit('browserWindow-resize'); + }); + }); + socket.on('register-browserWindow-move', function (id) { + getWindowById(id).on('move', function () { + socket.emit('browserWindow-move'); + }); + }); + socket.on('register-browserWindow-moved', function (id) { + getWindowById(id).on('moved', function () { + socket.emit('browserWindow-moved'); + }); + }); + socket.on('register-browserWindow-enter-full-screen', function (id) { + getWindowById(id).on('enter-full-screen', function () { + socket.emit('browserWindow-enter-full-screen'); + }); + }); + socket.on('register-browserWindow-leave-full-screen', function (id) { + getWindowById(id).on('leave-full-screen', function () { + socket.emit('browserWindow-leave-full-screen'); + }); + }); + socket.on('register-browserWindow-enter-html-full-screen', function (id) { + getWindowById(id).on('enter-html-full-screen', function () { + socket.emit('browserWindow-enter-html-full-screen'); + }); + }); + socket.on('register-browserWindow-leave-html-full-screen', function (id) { + getWindowById(id).on('leave-html-full-screen', function () { + socket.emit('browserWindow-leave-html-full-screen'); + }); + }); + socket.on('register-browserWindow-app-command', function (id) { + getWindowById(id).on('app-command', function (event, command) { + socket.emit('browserWindow-app-command', command); + }); + }); + socket.on('register-browserWindow-scroll-touch-begin', function (id) { + getWindowById(id).on('scroll-touch-begin', function () { + socket.emit('browserWindow-scroll-touch-begin'); + }); + }); + socket.on('register-browserWindow-scroll-touch-end', function (id) { + getWindowById(id).on('scroll-touch-end', function () { + socket.emit('browserWindow-scroll-touch-end'); + }); + }); + socket.on('register-browserWindow-scroll-touch-edge', function (id) { + getWindowById(id).on('scroll-touch-edge', function () { + socket.emit('browserWindow-scroll-touch-edge'); + }); + }); + socket.on('register-browserWindow-swipe', function (id) { + getWindowById(id).on('swipe', function (event, direction) { + socket.emit('browserWindow-swipe', direction); + }); + }); + socket.on('register-browserWindow-sheet-begin', function (id) { + getWindowById(id).on('sheet-begin', function () { + socket.emit('browserWindow-sheet-begin'); + }); + }); + socket.on('register-browserWindow-sheet-end', function (id) { + getWindowById(id).on('sheet-end', function () { + socket.emit('browserWindow-sheet-end'); + }); + }); + socket.on('register-browserWindow-new-window-for-tab', function (id) { + getWindowById(id).on('new-window-for-tab', function () { + socket.emit('browserWindow-new-window-for-tab'); + }); + }); socket.on('createBrowserWindow', function (options, loadUrl) { var window = new electron_1.BrowserWindow(options); window.on('closed', function (sender) { @@ -36,191 +182,191 @@ module.exports = function (socket) { windows.push(window); socket.emit('BrowserWindowCreated', window.id); }); - socket.on('browserWindow-destroy', function (id) { + socket.on('browserWindowDestroy', function (id) { getWindowById(id).destroy(); }); - socket.on('browserWindow-close', function (id) { + socket.on('browserWindowClose', function (id) { getWindowById(id).close(); }); - socket.on('browserWindow-focus', function (id) { + socket.on('browserWindowFocus', function (id) { getWindowById(id).focus(); }); - socket.on('browserWindow-blur', function (id) { + socket.on('browserWindowBlur', function (id) { getWindowById(id).blur(); }); - socket.on('browserWindow-isFocused', function (id) { + socket.on('browserWindowIsFocused', function (id) { var isFocused = getWindowById(id).isFocused(); socket.emit('browserWindow-isFocused-completed', isFocused); }); - socket.on('browserWindow-isDestroyed', function (id) { + socket.on('browserWindowIsDestroyed', function (id) { var isDestroyed = getWindowById(id).isDestroyed(); socket.emit('browserWindow-isDestroyed-completed', isDestroyed); }); - socket.on('browserWindow-show', function (id) { + socket.on('browserWindowShow', function (id) { getWindowById(id).show(); }); - socket.on('browserWindow-showInactive', function (id) { + socket.on('browserWindowShowInactive', function (id) { getWindowById(id).showInactive(); }); - socket.on('browserWindow-hide', function (id) { + socket.on('browserWindowHide', function (id) { getWindowById(id).hide(); }); - socket.on('browserWindow-isVisible', function (id) { + socket.on('browserWindowIsVisible', function (id) { var isVisible = getWindowById(id).isVisible(); socket.emit('browserWindow-isVisible-completed', isVisible); }); - socket.on('browserWindow-isModal', function (id) { + socket.on('browserWindowIsModal', function (id) { var isModal = getWindowById(id).isModal(); socket.emit('browserWindow-isModal-completed', isModal); }); - socket.on('browserWindow-maximize', function (id) { + socket.on('browserWindowMaximize', function (id) { getWindowById(id).maximize(); }); - socket.on('browserWindow-unmaximize', function (id) { + socket.on('browserWindowUnmaximize', function (id) { getWindowById(id).unmaximize(); }); - socket.on('browserWindow-isMaximized', function (id) { + socket.on('browserWindowIsMaximized', function (id) { var isMaximized = getWindowById(id).isMaximized(); socket.emit('browserWindow-isMaximized-completed', isMaximized); }); - socket.on('browserWindow-minimize', function (id) { + socket.on('browserWindowMinimize', function (id) { getWindowById(id).minimize(); }); - socket.on('browserWindow-restore', function (id) { + socket.on('browserWindowRestore', function (id) { getWindowById(id).restore(); }); - socket.on('browserWindow-isMinimized', function (id) { + socket.on('browserWindowIsMinimized', function (id) { var isMinimized = getWindowById(id).isMinimized(); socket.emit('browserWindow-isMinimized-completed', isMinimized); }); - socket.on('browserWindow-setFullScreen', function (id, fullscreen) { + socket.on('browserWindowSetFullScreen', function (id, fullscreen) { getWindowById(id).setFullScreen(fullscreen); }); - socket.on('browserWindow-isFullScreen', function (id) { + socket.on('browserWindowIsFullScreen', function (id) { var isFullScreen = getWindowById(id).isFullScreen(); socket.emit('browserWindow-isFullScreen-completed', isFullScreen); }); - socket.on('browserWindow-setAspectRatio', function (id, aspectRatio, extraSize) { + socket.on('browserWindowSetAspectRatio', function (id, aspectRatio, extraSize) { getWindowById(id).setAspectRatio(aspectRatio, extraSize); }); - socket.on('browserWindow-previewFile', function (id, path, displayname) { + socket.on('browserWindowPreviewFile', function (id, path, displayname) { getWindowById(id).previewFile(path, displayname); }); - socket.on('browserWindow-closeFilePreview', function (id) { + socket.on('browserWindowCloseFilePreview', function (id) { getWindowById(id).closeFilePreview(); }); - socket.on('browserWindow-setBounds', function (id, bounds, animate) { + socket.on('browserWindowSetBounds', function (id, bounds, animate) { getWindowById(id).setBounds(bounds, animate); }); - socket.on('browserWindow-getBounds', function (id) { + socket.on('browserWindowGetBounds', function (id) { var rectangle = getWindowById(id).getBounds(); socket.emit('browserWindow-getBounds-completed', rectangle); }); - socket.on('browserWindow-setContentBounds', function (id, bounds, animate) { + socket.on('browserWindowSetContentBounds', function (id, bounds, animate) { getWindowById(id).setContentBounds(bounds, animate); }); - socket.on('browserWindow-getContentBounds', function (id) { + socket.on('browserWindowGetContentBounds', function (id) { var rectangle = getWindowById(id).getContentBounds(); socket.emit('browserWindow-getContentBounds-completed', rectangle); }); - socket.on('browserWindow-setSize', function (id, width, height, animate) { + socket.on('browserWindowSetSize', function (id, width, height, animate) { getWindowById(id).setSize(width, height, animate); }); - socket.on('browserWindow-getSize', function (id) { + socket.on('browserWindowGetSize', function (id) { var size = getWindowById(id).getSize(); socket.emit('browserWindow-getSize-completed', size); }); - socket.on('browserWindow-setContentSize', function (id, width, height, animate) { + socket.on('browserWindowSetContentSize', function (id, width, height, animate) { getWindowById(id).setContentSize(width, height, animate); }); - socket.on('browserWindow-getContentSize', function (id) { + socket.on('browserWindowGetContentSize', function (id) { var size = getWindowById(id).getContentSize(); socket.emit('browserWindow-getContentSize-completed', size); }); - socket.on('browserWindow-setMinimumSize', function (id, width, height) { + socket.on('browserWindowSetMinimumSize', function (id, width, height) { getWindowById(id).setMinimumSize(width, height); }); - socket.on('browserWindow-getMinimumSize', function (id) { + socket.on('browserWindowGetMinimumSize', function (id) { var size = getWindowById(id).getMinimumSize(); socket.emit('browserWindow-getMinimumSize-completed', size); }); - socket.on('browserWindow-setMaximumSize', function (id, width, height) { + socket.on('browserWindowSetMaximumSize', function (id, width, height) { getWindowById(id).setMaximumSize(width, height); }); - socket.on('browserWindow-getMaximumSize', function (id) { + socket.on('browserWindowGetMaximumSize', function (id) { var size = getWindowById(id).getMaximumSize(); socket.emit('browserWindow-getMaximumSize-completed', size); }); - socket.on('browserWindow-setResizable', function (id, resizable) { + socket.on('browserWindowSetResizable', function (id, resizable) { getWindowById(id).setResizable(resizable); }); - socket.on('browserWindow-isResizable', function (id) { + socket.on('browserWindowIsResizable', function (id) { var resizable = getWindowById(id).isResizable(); socket.emit('browserWindow-isResizable-completed', resizable); }); - socket.on('browserWindow-setMovable', function (id, movable) { + socket.on('browserWindowSetMovable', function (id, movable) { getWindowById(id).setMovable(movable); }); - socket.on('browserWindow-isMovable', function (id) { + socket.on('browserWindowIsMovable', function (id) { var movable = getWindowById(id).isMovable(); socket.emit('browserWindow-isMovable-completed', movable); }); - socket.on('browserWindow-setMinimizable', function (id, minimizable) { + socket.on('browserWindowSetMinimizable', function (id, minimizable) { getWindowById(id).setMinimizable(minimizable); }); - socket.on('browserWindow-isMinimizable', function (id) { + socket.on('browserWindowIsMinimizable', function (id) { var minimizable = getWindowById(id).isMinimizable(); socket.emit('browserWindow-isMinimizable-completed', minimizable); }); - socket.on('browserWindow-setMaximizable', function (id, maximizable) { + socket.on('browserWindowSetMaximizable', function (id, maximizable) { getWindowById(id).setMaximizable(maximizable); }); - socket.on('browserWindow-isMaximizable', function (id) { + socket.on('browserWindowIsMaximizable', function (id) { var maximizable = getWindowById(id).isMaximizable(); socket.emit('browserWindow-isMaximizable-completed', maximizable); }); - socket.on('browserWindow-setFullScreenable', function (id, fullscreenable) { + socket.on('browserWindowSetFullScreenable', function (id, fullscreenable) { getWindowById(id).setFullScreenable(fullscreenable); }); - socket.on('browserWindow-isFullScreenable', function (id) { + socket.on('browserWindowIsFullScreenable', function (id) { var fullscreenable = getWindowById(id).isFullScreenable(); socket.emit('browserWindow-isFullScreenable-completed', fullscreenable); }); - socket.on('browserWindow-setClosable', function (id, closable) { + socket.on('browserWindowSetClosable', function (id, closable) { getWindowById(id).setClosable(closable); }); - socket.on('browserWindow-isClosable', function (id) { + socket.on('browserWindowIsClosable', function (id) { var closable = getWindowById(id).isClosable(); socket.emit('browserWindow-isClosable-completed', closable); }); - socket.on('browserWindow-setAlwaysOnTop', function (id, flag, level, relativeLevel) { + socket.on('browserWindowSetAlwaysOnTop', function (id, flag, level, relativeLevel) { getWindowById(id).setAlwaysOnTop(flag, level, relativeLevel); }); - socket.on('browserWindow-isAlwaysOnTop', function (id) { + socket.on('browserWindowIsAlwaysOnTop', function (id) { var isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); socket.emit('browserWindow-isAlwaysOnTop-completed', isAlwaysOnTop); }); - socket.on('browserWindow-center', function (id) { + socket.on('browserWindowCenter', function (id) { getWindowById(id).center(); }); - socket.on('browserWindow-setPosition', function (id, x, y, animate) { + socket.on('browserWindowSetPosition', function (id, x, y, animate) { getWindowById(id).setPosition(x, y, animate); }); - socket.on('browserWindow-getPosition', function (id) { + socket.on('browserWindowGetPosition', function (id) { var position = getWindowById(id).getPosition(); socket.emit('browserWindow-getPosition-completed', position); }); - socket.on('browserWindow-setTitle', function (id, title) { + socket.on('browserWindowSetTitle', function (id, title) { getWindowById(id).setTitle(title); }); - socket.on('browserWindow-getTitle', function (id) { + socket.on('browserWindowGetTitle', function (id) { var title = getWindowById(id).getTitle(); socket.emit('browserWindow-getTitle-completed', title); }); - socket.on('browserWindow-setTitle', function (id, title) { + socket.on('browserWindowSetTitle', function (id, title) { getWindowById(id).setTitle(title); }); - socket.on('browserWindow-setSheetOffset', function (id, offsetY, offsetX) { + socket.on('browserWindowSetSheetOffset', function (id, offsetY, offsetX) { if (offsetX) { getWindowById(id).setSheetOffset(offsetY, offsetX); } @@ -228,46 +374,46 @@ module.exports = function (socket) { getWindowById(id).setSheetOffset(offsetY); } }); - socket.on('browserWindow-flashFrame', function (id, flag) { + socket.on('browserWindowFlashFrame', function (id, flag) { getWindowById(id).flashFrame(flag); }); - socket.on('browserWindow-setSkipTaskbar', function (id, skip) { + socket.on('browserWindowSetSkipTaskbar', function (id, skip) { getWindowById(id).setSkipTaskbar(skip); }); - socket.on('browserWindow-setKiosk', function (id, flag) { + socket.on('browserWindowSetKiosk', function (id, flag) { getWindowById(id).setKiosk(flag); }); - socket.on('browserWindow-isKiosk', function (id) { + socket.on('browserWindowIsKiosk', function (id) { var isKiosk = getWindowById(id).isKiosk(); socket.emit('browserWindow-isKiosk-completed', isKiosk); }); - socket.on('browserWindow-setRepresentedFilename', function (id, filename) { + socket.on('browserWindowSetRepresentedFilename', function (id, filename) { getWindowById(id).setRepresentedFilename(filename); }); - socket.on('browserWindow-getRepresentedFilename', function (id) { + socket.on('browserWindowGetRepresentedFilename', function (id) { var pathname = getWindowById(id).getRepresentedFilename(); socket.emit('browserWindow-getRepresentedFilename-completed', pathname); }); - socket.on('browserWindow-setDocumentEdited', function (id, edited) { + socket.on('browserWindowSetDocumentEdited', function (id, edited) { getWindowById(id).setDocumentEdited(edited); }); - socket.on('browserWindow-isDocumentEdited', function (id) { + socket.on('browserWindowIsDocumentEdited', function (id) { var edited = getWindowById(id).isDocumentEdited(); socket.emit('browserWindow-isDocumentEdited-completed', edited); }); - socket.on('browserWindow-focusOnWebView', function (id) { + socket.on('browserWindowFocusOnWebView', function (id) { getWindowById(id).focusOnWebView(); }); - socket.on('browserWindow-blurWebView', function (id) { + socket.on('browserWindowBlurWebView', function (id) { getWindowById(id).blurWebView(); }); - socket.on('browserWindow-loadURL', function (id, url, options) { + socket.on('browserWindowLoadURL', function (id, url, options) { getWindowById(id).loadURL(url, options); }); - socket.on('browserWindow-reload', function (id) { + socket.on('browserWindowReload', function (id) { getWindowById(id).reload(); }); - socket.on('browserWindow-setMenu', function (id, menuItems) { + socket.on('browserWindowSetMenu', function (id, menuItems) { var menu = null; if (menuItems) { menu = electron_1.Menu.buildFromTemplate(menuItems); @@ -287,61 +433,78 @@ module.exports = function (socket) { } }); } - socket.on('browserWindow-setProgressBar', function (id, progress) { + socket.on('browserWindowSetProgressBar', function (id, progress) { getWindowById(id).setProgressBar(progress); }); - socket.on('browserWindow-setHasShadow', function (id, hasShadow) { + socket.on('browserWindowSetHasShadow', function (id, hasShadow) { getWindowById(id).setHasShadow(hasShadow); }); - socket.on('browserWindow-hasShadow', function (id) { + socket.on('browserWindowHasShadow', function (id) { var hasShadow = getWindowById(id).hasShadow(); socket.emit('browserWindow-hasShadow-completed', hasShadow); }); - socket.on('browserWindow-setAppDetails', function (id, options) { + socket.on('browserWindowSetThumbarButtons', function (id, thumbarButtons) { + thumbarButtons.forEach(function (thumbarButton) { + var imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); + thumbarButton.icon = electron_1.nativeImage.createFromPath(imagePath); + thumbarButton.click = function () { + socket.emit("thumbarButtonClicked", thumbarButton["id"]); + }; + }); + var success = getWindowById(id).setThumbarButtons(thumbarButtons); + socket.emit('browserWindowSetThumbarButtons-completed', success); + }); + socket.on('browserWindowSetThumbnailClip', function (id, rectangle) { + getWindowById(id).setThumbnailClip(rectangle); + }); + socket.on('browserWindowSetThumbnailToolTip', function (id, toolTip) { + getWindowById(id).setThumbnailToolTip(toolTip); + }); + socket.on('browserWindowSetAppDetails', function (id, options) { getWindowById(id).setAppDetails(options); }); - socket.on('browserWindow-showDefinitionForSelection', function (id) { + socket.on('browserWindowShowDefinitionForSelection', function (id) { getWindowById(id).showDefinitionForSelection(); }); - socket.on('browserWindow-setAutoHideMenuBar', function (id, hide) { + socket.on('browserWindowSetAutoHideMenuBar', function (id, hide) { getWindowById(id).setAutoHideMenuBar(hide); }); - socket.on('browserWindow-isMenuBarAutoHide', function (id) { + socket.on('browserWindowIsMenuBarAutoHide', function (id) { var isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); socket.emit('browserWindow-isMenuBarAutoHide-completed', isMenuBarAutoHide); }); - socket.on('browserWindow-setMenuBarVisibility', function (id, visible) { + socket.on('browserWindowSetMenuBarVisibility', function (id, visible) { getWindowById(id).setMenuBarVisibility(visible); }); - socket.on('browserWindow-isMenuBarVisible', function (id) { + socket.on('browserWindowIsMenuBarVisible', function (id) { var isMenuBarVisible = getWindowById(id).isMenuBarVisible(); socket.emit('browserWindow-isMenuBarVisible-completed', isMenuBarVisible); }); - socket.on('browserWindow-setVisibleOnAllWorkspaces', function (id, visible) { + socket.on('browserWindowSetVisibleOnAllWorkspaces', function (id, visible) { getWindowById(id).setVisibleOnAllWorkspaces(visible); }); - socket.on('browserWindow-isVisibleOnAllWorkspaces', function (id) { + socket.on('browserWindowIsVisibleOnAllWorkspaces', function (id) { var isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); socket.emit('browserWindow-isVisibleOnAllWorkspaces-completed', isVisibleOnAllWorkspaces); }); - socket.on('browserWindow-setIgnoreMouseEvents', function (id, ignore) { + socket.on('browserWindowSetIgnoreMouseEvents', function (id, ignore) { getWindowById(id).setIgnoreMouseEvents(ignore); }); - socket.on('browserWindow-setContentProtection', function (id, enable) { + socket.on('browserWindowSetContentProtection', function (id, enable) { getWindowById(id).setContentProtection(enable); }); - socket.on('browserWindow-setFocusable', function (id, focusable) { + socket.on('browserWindowSetFocusable', function (id, focusable) { getWindowById(id).setFocusable(focusable); }); - socket.on('browserWindow-setParentWindow', function (id, parent) { + socket.on('browserWindowSetParentWindow', function (id, parent) { var browserWindow = electron_1.BrowserWindow.fromId(parent.id); getWindowById(id).setParentWindow(browserWindow); }); - socket.on('browserWindow-getParentWindow', function (id) { + socket.on('browserWindowGetParentWindow', function (id) { var browserWindow = getWindowById(id).getParentWindow(); socket.emit('browserWindow-getParentWindow-completed', browserWindow.id); }); - socket.on('browserWindow-getChildWindows', function (id) { + socket.on('browserWindowGetChildWindows', function (id) { var browserWindows = getWindowById(id).getChildWindows(); var ids = []; browserWindows.forEach(function (x) { @@ -349,10 +512,10 @@ module.exports = function (socket) { }); socket.emit('browserWindow-getChildWindows-completed', ids); }); - socket.on('browserWindow-setAutoHideCursor', function (id, autoHide) { + socket.on('browserWindowSetAutoHideCursor', function (id, autoHide) { getWindowById(id).setAutoHideCursor(autoHide); }); - socket.on('browserWindow-setVibrancy', function (id, type) { + socket.on('browserWindowSetVibrancy', function (id, type) { getWindowById(id).setVibrancy(type); }); function getWindowById(id) { diff --git a/ElectronNET.Host/api/browserWindows.js.map b/ElectronNET.Host/api/browserWindows.js.map index 117d108..67fa517 100644 --- a/ElectronNET.Host/api/browserWindows.js.map +++ b/ElectronNET.Host/api/browserWindows.js.map @@ -1 +1 @@ -{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"browserWindows.js","sourceRoot":"","sources":["browserWindows.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ElectronNET.Host/api/browserWindows.ts b/ElectronNET.Host/api/browserWindows.ts index fe59047..ce57873 100644 --- a/ElectronNET.Host/api/browserWindows.ts +++ b/ElectronNET.Host/api/browserWindows.ts @@ -1,4 +1,5 @@ -import { BrowserWindow, Menu } from "electron"; +import { BrowserWindow, Menu, nativeImage } from "electron"; +const path = require('path'); const windows: Electron.BrowserWindow[] = [] module.exports = (socket: SocketIO.Server) => { @@ -8,6 +9,180 @@ module.exports = (socket: SocketIO.Server) => { }); }); + socket.on('register-browserWindow-page-title-updated', (id) => { + getWindowById(id).on('page-title-updated', (event, title) => { + socket.emit('browserWindow-page-title-updated', title); + }); + }); + + socket.on('register-browserWindow-close', (id) => { + getWindowById(id).on('close', () => { + socket.emit('browserWindow-close'); + }); + }); + + socket.on('register-browserWindow-closed', (id) => { + getWindowById(id).on('closed', () => { + socket.emit('browserWindow-closed'); + }); + }); + + socket.on('register-browserWindow-session-end', (id) => { + getWindowById(id).on('session-end', () => { + socket.emit('browserWindow-session-end'); + }); + }); + + socket.on('register-browserWindow-unresponsive', (id) => { + getWindowById(id).on('unresponsive', () => { + socket.emit('browserWindow-unresponsive'); + }); + }); + + socket.on('register-browserWindow-responsive', (id) => { + getWindowById(id).on('responsive', () => { + socket.emit('browserWindow-responsive'); + }); + }); + + socket.on('register-browserWindow-blur', (id) => { + getWindowById(id).on('blur', () => { + socket.emit('browserWindow-blur'); + }); + }); + + socket.on('register-browserWindow-focus', (id) => { + getWindowById(id).on('focus', () => { + socket.emit('browserWindow-focus'); + }); + }); + + socket.on('register-browserWindow-show', (id) => { + getWindowById(id).on('show', () => { + socket.emit('browserWindow-show'); + }); + }); + + socket.on('register-browserWindow-hide', (id) => { + getWindowById(id).on('hide', () => { + socket.emit('browserWindow-hide'); + }); + }); + + socket.on('register-browserWindow-maximize', (id) => { + getWindowById(id).on('maximize', () => { + socket.emit('browserWindow-maximize'); + }); + }); + + socket.on('register-browserWindow-unmaximize', (id) => { + getWindowById(id).on('unmaximize', () => { + socket.emit('browserWindow-unmaximize'); + }); + }); + + socket.on('register-browserWindow-minimize', (id) => { + getWindowById(id).on('minimize', () => { + socket.emit('browserWindow-minimize'); + }); + }); + + socket.on('register-browserWindow-restore', (id) => { + getWindowById(id).on('restore', () => { + socket.emit('browserWindow-restore'); + }); + }); + + socket.on('register-browserWindow-resize', (id) => { + getWindowById(id).on('resize', () => { + socket.emit('browserWindow-resize'); + }); + }); + + socket.on('register-browserWindow-move', (id) => { + getWindowById(id).on('move', () => { + socket.emit('browserWindow-move'); + }); + }); + + socket.on('register-browserWindow-moved', (id) => { + getWindowById(id).on('moved', () => { + socket.emit('browserWindow-moved'); + }); + }); + + socket.on('register-browserWindow-enter-full-screen', (id) => { + getWindowById(id).on('enter-full-screen', () => { + socket.emit('browserWindow-enter-full-screen'); + }); + }); + + socket.on('register-browserWindow-leave-full-screen', (id) => { + getWindowById(id).on('leave-full-screen', () => { + socket.emit('browserWindow-leave-full-screen'); + }); + }); + + socket.on('register-browserWindow-enter-html-full-screen', (id) => { + getWindowById(id).on('enter-html-full-screen', () => { + socket.emit('browserWindow-enter-html-full-screen'); + }); + }); + + socket.on('register-browserWindow-leave-html-full-screen', (id) => { + getWindowById(id).on('leave-html-full-screen', () => { + socket.emit('browserWindow-leave-html-full-screen'); + }); + }); + + socket.on('register-browserWindow-app-command', (id) => { + getWindowById(id).on('app-command', (event, command) => { + socket.emit('browserWindow-app-command', command); + }); + }); + + socket.on('register-browserWindow-scroll-touch-begin', (id) => { + getWindowById(id).on('scroll-touch-begin', () => { + socket.emit('browserWindow-scroll-touch-begin'); + }); + }); + + socket.on('register-browserWindow-scroll-touch-end', (id) => { + getWindowById(id).on('scroll-touch-end', () => { + socket.emit('browserWindow-scroll-touch-end'); + }); + }); + + socket.on('register-browserWindow-scroll-touch-edge', (id) => { + getWindowById(id).on('scroll-touch-edge', () => { + socket.emit('browserWindow-scroll-touch-edge'); + }); + }); + + socket.on('register-browserWindow-swipe', (id) => { + getWindowById(id).on('swipe', (event, direction) => { + socket.emit('browserWindow-swipe', direction); + }); + }); + + socket.on('register-browserWindow-sheet-begin', (id) => { + getWindowById(id).on('sheet-begin', () => { + socket.emit('browserWindow-sheet-begin'); + }); + }); + + socket.on('register-browserWindow-sheet-end', (id) => { + getWindowById(id).on('sheet-end', () => { + socket.emit('browserWindow-sheet-end'); + }); + }); + + socket.on('register-browserWindow-new-window-for-tab', (id) => { + getWindowById(id).on('new-window-for-tab', () => { + socket.emit('browserWindow-new-window-for-tab'); + }); + }); + socket.on('createBrowserWindow', (options, loadUrl) => { let window = new BrowserWindow(options); @@ -36,267 +211,267 @@ module.exports = (socket: SocketIO.Server) => { socket.emit('BrowserWindowCreated', window.id); }); - socket.on('browserWindow-destroy', (id) => { + socket.on('browserWindowDestroy', (id) => { getWindowById(id).destroy(); }); - socket.on('browserWindow-close', (id) => { + socket.on('browserWindowClose', (id) => { getWindowById(id).close(); }); - socket.on('browserWindow-focus', (id) => { + socket.on('browserWindowFocus', (id) => { getWindowById(id).focus(); }); - socket.on('browserWindow-blur', (id) => { + socket.on('browserWindowBlur', (id) => { getWindowById(id).blur(); }); - socket.on('browserWindow-isFocused', (id) => { + socket.on('browserWindowIsFocused', (id) => { const isFocused = getWindowById(id).isFocused(); socket.emit('browserWindow-isFocused-completed', isFocused); }); - socket.on('browserWindow-isDestroyed', (id) => { + socket.on('browserWindowIsDestroyed', (id) => { const isDestroyed = getWindowById(id).isDestroyed(); socket.emit('browserWindow-isDestroyed-completed', isDestroyed); }); - socket.on('browserWindow-show', (id) => { + socket.on('browserWindowShow', (id) => { getWindowById(id).show(); }); - socket.on('browserWindow-showInactive', (id) => { + socket.on('browserWindowShowInactive', (id) => { getWindowById(id).showInactive(); }); - socket.on('browserWindow-hide', (id) => { + socket.on('browserWindowHide', (id) => { getWindowById(id).hide(); }); - socket.on('browserWindow-isVisible', (id) => { + socket.on('browserWindowIsVisible', (id) => { const isVisible = getWindowById(id).isVisible(); socket.emit('browserWindow-isVisible-completed', isVisible); }); - socket.on('browserWindow-isModal', (id) => { + socket.on('browserWindowIsModal', (id) => { const isModal = getWindowById(id).isModal(); socket.emit('browserWindow-isModal-completed', isModal); }); - socket.on('browserWindow-maximize', (id) => { + socket.on('browserWindowMaximize', (id) => { getWindowById(id).maximize(); }); - socket.on('browserWindow-unmaximize', (id) => { + socket.on('browserWindowUnmaximize', (id) => { getWindowById(id).unmaximize(); }); - socket.on('browserWindow-isMaximized', (id) => { + socket.on('browserWindowIsMaximized', (id) => { const isMaximized = getWindowById(id).isMaximized(); socket.emit('browserWindow-isMaximized-completed', isMaximized); }); - socket.on('browserWindow-minimize', (id) => { + socket.on('browserWindowMinimize', (id) => { getWindowById(id).minimize(); }); - socket.on('browserWindow-restore', (id) => { + socket.on('browserWindowRestore', (id) => { getWindowById(id).restore(); }); - socket.on('browserWindow-isMinimized', (id) => { + socket.on('browserWindowIsMinimized', (id) => { const isMinimized = getWindowById(id).isMinimized(); socket.emit('browserWindow-isMinimized-completed', isMinimized); }); - socket.on('browserWindow-setFullScreen', (id, fullscreen) => { + socket.on('browserWindowSetFullScreen', (id, fullscreen) => { getWindowById(id).setFullScreen(fullscreen); }); - socket.on('browserWindow-isFullScreen', (id) => { + socket.on('browserWindowIsFullScreen', (id) => { const isFullScreen = getWindowById(id).isFullScreen(); socket.emit('browserWindow-isFullScreen-completed', isFullScreen); }); - socket.on('browserWindow-setAspectRatio', (id, aspectRatio, extraSize) => { + socket.on('browserWindowSetAspectRatio', (id, aspectRatio, extraSize) => { getWindowById(id).setAspectRatio(aspectRatio, extraSize); }); - socket.on('browserWindow-previewFile', (id, path, displayname) => { + socket.on('browserWindowPreviewFile', (id, path, displayname) => { getWindowById(id).previewFile(path, displayname); }); - socket.on('browserWindow-closeFilePreview', (id) => { + socket.on('browserWindowCloseFilePreview', (id) => { getWindowById(id).closeFilePreview(); }); - socket.on('browserWindow-setBounds', (id, bounds, animate) => { + socket.on('browserWindowSetBounds', (id, bounds, animate) => { getWindowById(id).setBounds(bounds, animate); }); - socket.on('browserWindow-getBounds', (id) => { + socket.on('browserWindowGetBounds', (id) => { const rectangle = getWindowById(id).getBounds(); socket.emit('browserWindow-getBounds-completed', rectangle); }); - socket.on('browserWindow-setContentBounds', (id, bounds, animate) => { + socket.on('browserWindowSetContentBounds', (id, bounds, animate) => { getWindowById(id).setContentBounds(bounds, animate); }); - socket.on('browserWindow-getContentBounds', (id) => { + socket.on('browserWindowGetContentBounds', (id) => { const rectangle = getWindowById(id).getContentBounds(); socket.emit('browserWindow-getContentBounds-completed', rectangle); }); - socket.on('browserWindow-setSize', (id, width, height, animate) => { + socket.on('browserWindowSetSize', (id, width, height, animate) => { getWindowById(id).setSize(width, height, animate); }); - socket.on('browserWindow-getSize', (id) => { + socket.on('browserWindowGetSize', (id) => { const size = getWindowById(id).getSize(); socket.emit('browserWindow-getSize-completed', size); }); - socket.on('browserWindow-setContentSize', (id, width, height, animate) => { + socket.on('browserWindowSetContentSize', (id, width, height, animate) => { getWindowById(id).setContentSize(width, height, animate); }); - socket.on('browserWindow-getContentSize', (id) => { + socket.on('browserWindowGetContentSize', (id) => { const size = getWindowById(id).getContentSize(); socket.emit('browserWindow-getContentSize-completed', size); }); - socket.on('browserWindow-setMinimumSize', (id, width, height) => { + socket.on('browserWindowSetMinimumSize', (id, width, height) => { getWindowById(id).setMinimumSize(width, height); }); - socket.on('browserWindow-getMinimumSize', (id) => { + socket.on('browserWindowGetMinimumSize', (id) => { const size = getWindowById(id).getMinimumSize(); socket.emit('browserWindow-getMinimumSize-completed', size); }); - socket.on('browserWindow-setMaximumSize', (id, width, height) => { + socket.on('browserWindowSetMaximumSize', (id, width, height) => { getWindowById(id).setMaximumSize(width, height); }); - socket.on('browserWindow-getMaximumSize', (id) => { + socket.on('browserWindowGetMaximumSize', (id) => { const size = getWindowById(id).getMaximumSize(); socket.emit('browserWindow-getMaximumSize-completed', size); }); - socket.on('browserWindow-setResizable', (id, resizable) => { + socket.on('browserWindowSetResizable', (id, resizable) => { getWindowById(id).setResizable(resizable); }); - socket.on('browserWindow-isResizable', (id) => { + socket.on('browserWindowIsResizable', (id) => { const resizable = getWindowById(id).isResizable(); socket.emit('browserWindow-isResizable-completed', resizable); }); - socket.on('browserWindow-setMovable', (id, movable) => { + socket.on('browserWindowSetMovable', (id, movable) => { getWindowById(id).setMovable(movable); }); - socket.on('browserWindow-isMovable', (id) => { + socket.on('browserWindowIsMovable', (id) => { const movable = getWindowById(id).isMovable(); socket.emit('browserWindow-isMovable-completed', movable); }); - socket.on('browserWindow-setMinimizable', (id, minimizable) => { + socket.on('browserWindowSetMinimizable', (id, minimizable) => { getWindowById(id).setMinimizable(minimizable); }); - socket.on('browserWindow-isMinimizable', (id) => { + socket.on('browserWindowIsMinimizable', (id) => { const minimizable = getWindowById(id).isMinimizable(); socket.emit('browserWindow-isMinimizable-completed', minimizable); }); - socket.on('browserWindow-setMaximizable', (id, maximizable) => { + socket.on('browserWindowSetMaximizable', (id, maximizable) => { getWindowById(id).setMaximizable(maximizable); }); - socket.on('browserWindow-isMaximizable', (id) => { + socket.on('browserWindowIsMaximizable', (id) => { const maximizable = getWindowById(id).isMaximizable(); socket.emit('browserWindow-isMaximizable-completed', maximizable); }); - socket.on('browserWindow-setFullScreenable', (id, fullscreenable) => { + socket.on('browserWindowSetFullScreenable', (id, fullscreenable) => { getWindowById(id).setFullScreenable(fullscreenable); }); - socket.on('browserWindow-isFullScreenable', (id) => { + socket.on('browserWindowIsFullScreenable', (id) => { const fullscreenable = getWindowById(id).isFullScreenable(); socket.emit('browserWindow-isFullScreenable-completed', fullscreenable); }); - socket.on('browserWindow-setClosable', (id, closable) => { + socket.on('browserWindowSetClosable', (id, closable) => { getWindowById(id).setClosable(closable); }); - socket.on('browserWindow-isClosable', (id) => { + socket.on('browserWindowIsClosable', (id) => { const closable = getWindowById(id).isClosable(); socket.emit('browserWindow-isClosable-completed', closable); }); - socket.on('browserWindow-setAlwaysOnTop', (id, flag, level, relativeLevel) => { + socket.on('browserWindowSetAlwaysOnTop', (id, flag, level, relativeLevel) => { getWindowById(id).setAlwaysOnTop(flag, level, relativeLevel); }); - socket.on('browserWindow-isAlwaysOnTop', (id) => { + socket.on('browserWindowIsAlwaysOnTop', (id) => { const isAlwaysOnTop = getWindowById(id).isAlwaysOnTop(); socket.emit('browserWindow-isAlwaysOnTop-completed', isAlwaysOnTop); }); - socket.on('browserWindow-center', (id) => { + socket.on('browserWindowCenter', (id) => { getWindowById(id).center(); }); - socket.on('browserWindow-setPosition', (id, x, y, animate) => { + socket.on('browserWindowSetPosition', (id, x, y, animate) => { getWindowById(id).setPosition(x, y, animate); }); - socket.on('browserWindow-getPosition', (id) => { + socket.on('browserWindowGetPosition', (id) => { const position = getWindowById(id).getPosition(); socket.emit('browserWindow-getPosition-completed', position); }); - socket.on('browserWindow-setTitle', (id, title) => { + socket.on('browserWindowSetTitle', (id, title) => { getWindowById(id).setTitle(title); }); - socket.on('browserWindow-getTitle', (id) => { + socket.on('browserWindowGetTitle', (id) => { const title = getWindowById(id).getTitle(); socket.emit('browserWindow-getTitle-completed', title); }); - socket.on('browserWindow-setTitle', (id, title) => { + socket.on('browserWindowSetTitle', (id, title) => { getWindowById(id).setTitle(title); }); - socket.on('browserWindow-setSheetOffset', (id, offsetY, offsetX) => { + socket.on('browserWindowSetSheetOffset', (id, offsetY, offsetX) => { if(offsetX) { getWindowById(id).setSheetOffset(offsetY, offsetX); } else { @@ -304,61 +479,61 @@ module.exports = (socket: SocketIO.Server) => { } }); - socket.on('browserWindow-flashFrame', (id, flag) => { + socket.on('browserWindowFlashFrame', (id, flag) => { getWindowById(id).flashFrame(flag); }); - socket.on('browserWindow-setSkipTaskbar', (id, skip) => { + socket.on('browserWindowSetSkipTaskbar', (id, skip) => { getWindowById(id).setSkipTaskbar(skip); }); - socket.on('browserWindow-setKiosk', (id, flag) => { + socket.on('browserWindowSetKiosk', (id, flag) => { getWindowById(id).setKiosk(flag); }); - socket.on('browserWindow-isKiosk', (id) => { + socket.on('browserWindowIsKiosk', (id) => { const isKiosk = getWindowById(id).isKiosk(); socket.emit('browserWindow-isKiosk-completed', isKiosk); }); - socket.on('browserWindow-setRepresentedFilename', (id, filename) => { + socket.on('browserWindowSetRepresentedFilename', (id, filename) => { getWindowById(id).setRepresentedFilename(filename); }); - socket.on('browserWindow-getRepresentedFilename', (id) => { + socket.on('browserWindowGetRepresentedFilename', (id) => { const pathname = getWindowById(id).getRepresentedFilename(); socket.emit('browserWindow-getRepresentedFilename-completed', pathname); }); - socket.on('browserWindow-setDocumentEdited', (id, edited) => { + socket.on('browserWindowSetDocumentEdited', (id, edited) => { getWindowById(id).setDocumentEdited(edited); }); - socket.on('browserWindow-isDocumentEdited', (id) => { + socket.on('browserWindowIsDocumentEdited', (id) => { const edited = getWindowById(id).isDocumentEdited(); socket.emit('browserWindow-isDocumentEdited-completed', edited); }); - socket.on('browserWindow-focusOnWebView', (id) => { + socket.on('browserWindowFocusOnWebView', (id) => { getWindowById(id).focusOnWebView(); }); - socket.on('browserWindow-blurWebView', (id) => { + socket.on('browserWindowBlurWebView', (id) => { getWindowById(id).blurWebView(); }); - socket.on('browserWindow-loadURL', (id, url, options) => { + socket.on('browserWindowLoadURL', (id, url, options) => { getWindowById(id).loadURL(url, options); }); - socket.on('browserWindow-reload', (id) => { + socket.on('browserWindowReload', (id) => { getWindowById(id).reload(); }); - socket.on('browserWindow-setMenu', (id, menuItems) => { + socket.on('browserWindowSetMenu', (id, menuItems) => { let menu = null; if(menuItems) { @@ -384,83 +559,104 @@ module.exports = (socket: SocketIO.Server) => { }); } - socket.on('browserWindow-setProgressBar', (id, progress) => { + socket.on('browserWindowSetProgressBar', (id, progress) => { getWindowById(id).setProgressBar(progress); }); - socket.on('browserWindow-setHasShadow', (id, hasShadow) => { + socket.on('browserWindowSetHasShadow', (id, hasShadow) => { getWindowById(id).setHasShadow(hasShadow); }); - socket.on('browserWindow-hasShadow', (id) => { + socket.on('browserWindowHasShadow', (id) => { const hasShadow = getWindowById(id).hasShadow(); socket.emit('browserWindow-hasShadow-completed', hasShadow); }); + + socket.on('browserWindowSetThumbarButtons', (id, thumbarButtons: Electron.ThumbarButton[]) => { + thumbarButtons.forEach(thumbarButton => { + const imagePath = path.join(__dirname.replace('api', ''), 'bin', thumbarButton.icon.toString()); + thumbarButton.icon = nativeImage.createFromPath(imagePath); + thumbarButton.click = () => { + socket.emit("thumbarButtonClicked", thumbarButton["id"]); + }; + }); + + const success = getWindowById(id).setThumbarButtons(thumbarButtons); + socket.emit('browserWindowSetThumbarButtons-completed', success); + }); + + socket.on('browserWindowSetThumbnailClip', (id, rectangle) => { + getWindowById(id).setThumbnailClip(rectangle); + }); + + socket.on('browserWindowSetThumbnailToolTip', (id, toolTip) => { + getWindowById(id).setThumbnailToolTip(toolTip); + }); - socket.on('browserWindow-setAppDetails', (id, options) => { + socket.on('browserWindowSetAppDetails', (id, options) => { getWindowById(id).setAppDetails(options); }); - socket.on('browserWindow-showDefinitionForSelection', (id) => { + socket.on('browserWindowShowDefinitionForSelection', (id) => { getWindowById(id).showDefinitionForSelection(); }); - socket.on('browserWindow-setAutoHideMenuBar', (id, hide) => { + socket.on('browserWindowSetAutoHideMenuBar', (id, hide) => { getWindowById(id).setAutoHideMenuBar(hide); }); - socket.on('browserWindow-isMenuBarAutoHide', (id) => { + socket.on('browserWindowIsMenuBarAutoHide', (id) => { const isMenuBarAutoHide = getWindowById(id).isMenuBarAutoHide(); socket.emit('browserWindow-isMenuBarAutoHide-completed', isMenuBarAutoHide); }); - socket.on('browserWindow-setMenuBarVisibility', (id, visible) => { + socket.on('browserWindowSetMenuBarVisibility', (id, visible) => { getWindowById(id).setMenuBarVisibility(visible); }); - socket.on('browserWindow-isMenuBarVisible', (id) => { + socket.on('browserWindowIsMenuBarVisible', (id) => { const isMenuBarVisible = getWindowById(id).isMenuBarVisible(); socket.emit('browserWindow-isMenuBarVisible-completed', isMenuBarVisible); }); - socket.on('browserWindow-setVisibleOnAllWorkspaces', (id, visible) => { + socket.on('browserWindowSetVisibleOnAllWorkspaces', (id, visible) => { getWindowById(id).setVisibleOnAllWorkspaces(visible); }); - socket.on('browserWindow-isVisibleOnAllWorkspaces', (id) => { + socket.on('browserWindowIsVisibleOnAllWorkspaces', (id) => { const isVisibleOnAllWorkspaces = getWindowById(id).isVisibleOnAllWorkspaces(); socket.emit('browserWindow-isVisibleOnAllWorkspaces-completed', isVisibleOnAllWorkspaces); }); - socket.on('browserWindow-setIgnoreMouseEvents', (id, ignore) => { + socket.on('browserWindowSetIgnoreMouseEvents', (id, ignore) => { getWindowById(id).setIgnoreMouseEvents(ignore); }); - socket.on('browserWindow-setContentProtection', (id, enable) => { + socket.on('browserWindowSetContentProtection', (id, enable) => { getWindowById(id).setContentProtection(enable); }); - socket.on('browserWindow-setFocusable', (id, focusable) => { + socket.on('browserWindowSetFocusable', (id, focusable) => { getWindowById(id).setFocusable(focusable); }); - socket.on('browserWindow-setParentWindow', (id, parent) => { + socket.on('browserWindowSetParentWindow', (id, parent) => { const browserWindow = BrowserWindow.fromId(parent.id); getWindowById(id).setParentWindow(browserWindow); }); - socket.on('browserWindow-getParentWindow', (id) => { + socket.on('browserWindowGetParentWindow', (id) => { const browserWindow = getWindowById(id).getParentWindow(); socket.emit('browserWindow-getParentWindow-completed', browserWindow.id); }); - socket.on('browserWindow-getChildWindows', (id) => { + socket.on('browserWindowGetChildWindows', (id) => { const browserWindows = getWindowById(id).getChildWindows(); const ids = []; @@ -472,11 +668,11 @@ module.exports = (socket: SocketIO.Server) => { socket.emit('browserWindow-getChildWindows-completed', ids); }); - socket.on('browserWindow-setAutoHideCursor', (id, autoHide) => { + socket.on('browserWindowSetAutoHideCursor', (id, autoHide) => { getWindowById(id).setAutoHideCursor(autoHide); }); - socket.on('browserWindow-setVibrancy', (id, type) => { + socket.on('browserWindowSetVibrancy', (id, type) => { getWindowById(id).setVibrancy(type); }); diff --git a/ElectronNET.WebApp/Startup.cs b/ElectronNET.WebApp/Startup.cs index ad5260f..017d9a7 100644 --- a/ElectronNET.WebApp/Startup.cs +++ b/ElectronNET.WebApp/Startup.cs @@ -71,12 +71,33 @@ namespace ElectronNET.WebApp Electron.Menu.SetApplicationMenu(menuItems); Electron.Tray.Show("/Assets/electron_32x32.png", menuItems); - var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions { + var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions + { Show = false }); - browserWindow.ReadyToShow += () => { + browserWindow.OnReadyToShow += async () => + { browserWindow.Show(); + + await browserWindow.SetThumbarButtonsAsync(new ThumbarButton[] { + new ThumbarButton("/Assets/electron.ico") + { + Tooltip = "Hello World", + Click = async () => { + await Electron.Dialog.ShowMessageBoxAsync(new MessageBoxOptions("Hallo von Thumbar Button!")); + } + }, + new ThumbarButton("/Assets/electron.ico") + { + Tooltip = "Hello World 2", + Click = async () => { + await Electron.Dialog.ShowMessageBoxAsync(new MessageBoxOptions("Hallo von Thumbar Button 2!")); + } + } + }); + + browserWindow.SetThumbnailToolTip("Electron.NET rocks!"); }; } }