// Type definitions for Electron v0.37.2 // Project: http://electron.atom.io/ // Definitions by: jedmao , rhysd // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// /// /// /// /// declare namespace Electron { /** * The BrowserWindow class gives you ability to create a browser window. * You can also create a window without chrome by using Frameless Window API. */ class BrowserWindow extends EventEmitter { constructor(options?: BrowserWindowOptions); /** * @returns All opened browser windows. */ static getAllWindows(): BrowserWindow[]; /** * @returns The window that is focused in this application. */ static getFocusedWindow(): BrowserWindow; /** * Find a window according to the webContents it owns. */ static fromWebContents(webContents: WebContents): BrowserWindow; /** * Find a window according to its ID. */ static fromId(id: number): BrowserWindow; /** * Adds devtools extension located at path. The extension will be remembered * so you only need to call this API once, this API is not for programming use. * @returns The extension's name. */ static addDevToolsExtension(path: string): string; /** * Remove a devtools extension. * @param name The name of the devtools extension to remove. */ static removeDevToolsExtension(name: string): void; /** * The WebContents object this window owns, all web page related events and * operations would be done via it. * Note: Users should never store this object because it may become null when * the renderer process (web page) has crashed. */ webContents: WebContents; /** * Get the WebContents of devtools of this window. * Note: Users should never store this object because it may become null when * the devtools has been closed. */ devToolsWebContents: WebContents; /** * Get the unique ID of this window. */ id: number; /** * Force closing the window, the unload and beforeunload event won't be emitted * for the web page, and close event would also not be emitted for this window, * but it would guarantee the closed event to be emitted. * You should only use this method when the renderer process (web page) has crashed. */ destroy(): void; /** * Try to close the window, this has the same effect with user manually clicking * the close button of the window. The web page may cancel the close though, * see the close event. */ close(): void; /** * Focus on the window. */ focus(): void; /** * @returns Whether the window is focused. */ isFocused(): boolean; /** * Shows and gives focus to the window. */ show(): void; /** * Shows the window but doesn't focus on it. */ showInactive(): void; /** * Hides the window. */ hide(): void; /** * @returns Whether the window is visible to the user. */ isVisible(): boolean; /** * Maximizes the window. */ maximize(): void; /** * Unmaximizes the window. */ unmaximize(): void; /** * @returns Whether the window is maximized. */ isMaximized(): boolean; /** * Minimizes the window. On some platforms the minimized window will be * shown in the Dock. */ minimize(): void; /** * Restores the window from minimized state to its previous state. */ restore(): void; /** * @returns Whether the window is minimized. */ isMinimized(): boolean; /** * Sets whether the window should be in fullscreen mode. */ setFullScreen(flag: boolean): void; /** * @returns Whether the window is in fullscreen mode. */ isFullScreen(): boolean; /** * Resizes and moves the window to width, height, x, y. */ setBounds(options: Rectangle): void; /** * @returns The window's width, height, x and y values. */ getBounds(): Rectangle; /** * Resizes the window to width and height. */ setSize(width: number, height: number): void; /** * @returns The window's width and height. */ getSize(): number[]; /** * Resizes the window's client area (e.g. the web page) to width and height. */ setContentSize(width: number, height: number): void; /** * @returns The window's client area's width and height. */ getContentSize(): number[]; /** * Sets the minimum size of window to width and height. */ setMinimumSize(width: number, height: number): void; /** * @returns The window's minimum width and height. */ getMinimumSize(): number[]; /** * Sets the maximum size of window to width and height. */ setMaximumSize(width: number, height: number): void; /** * @returns The window's maximum width and height. */ getMaximumSize(): number[]; /** * Sets whether the window can be manually resized by user. */ setResizable(resizable: boolean): void; /** * @returns Whether the window can be manually resized by user. */ isResizable(): boolean; /** * Sets whether the window should show always on top of other windows. After * setting this, the window is still a normal window, not a toolbox window * which can not be focused on. */ setAlwaysOnTop(flag: boolean): void; /** * @returns Whether the window is always on top of other windows. */ isAlwaysOnTop(): boolean; /** * Moves window to the center of the screen. */ center(): void; /** * Moves window to x and y. */ setPosition(x: number, y: number): void; /** * @returns The window's current position. */ getPosition(): number[]; /** * Changes the title of native window to title. */ setTitle(title: string): void; /** * Note: The title of web page can be different from the title of the native window. * @returns The title of the native window. */ getTitle(): string; /** * Starts or stops flashing the window to attract user's attention. */ flashFrame(flag: boolean): void; /** * Makes the window do not show in Taskbar. */ setSkipTaskbar(skip: boolean): void; /** * Enters or leaves the kiosk mode. */ setKiosk(flag: boolean): void; /** * @returns Whether the window is in kiosk mode. */ isKiosk(): boolean; /** * Sets the pathname of the file the window represents, and the icon of the * file will show in window's title bar. * Note: This API is available only on OS X. */ setRepresentedFilename(filename: string): void; /** * Note: This API is available only on OS X. * @returns The pathname of the file the window represents. */ getRepresentedFilename(): string; /** * Specifies whether the window’s document has been edited, and the icon in * title bar will become grey when set to true. * Note: This API is available only on OS X. */ setDocumentEdited(edited: boolean): void; /** * Note: This API is available only on OS X. * @returns Whether the window's document has been edited. */ isDocumentEdited(): boolean; reloadIgnoringCache(): void; /** * Starts inspecting element at position (x, y). */ inspectElement(x: number, y: number): void; focusOnWebView(): void; blurWebView(): void; /** * Captures the snapshot of page within rect, upon completion the callback * will be called. Omitting the rect would capture the whole visible page. * Note: Be sure to read documents on remote buffer in remote if you are going * to use this API in renderer process. * @param callback Supplies the image that stores data of the snapshot. */ capturePage(rect: Rectangle, callback: (image: NativeImage) => void): void; capturePage(callback: (image: NativeImage) => void): void; /** * Same with webContents.print([options]) */ print(options?: { silent?: boolean; printBackground?: boolean; }): void; /** * Same with webContents.printToPDF([options]) */ printToPDF(options: { marginsType?: number; pageSize?: string; printBackground?: boolean; printSelectionOnly?: boolean; landscape?: boolean; }, callback: (error: Error, data: Buffer) => void): void; /** * Same with webContents.loadURL(url). */ loadURL(url: string, options?: { httpReferrer?: string; userAgent?: string; extraHeaders?: string; }): void; /** * Same with webContents.reload. */ reload(): void; /** * Sets the menu as the window top menu. * Note: This API is not available on OS X. */ setMenu(menu: Menu): void; /** * Sets the progress value in the progress bar. * On Linux platform, only supports Unity desktop environment, you need to * specify the *.desktop file name to desktopName field in package.json. * By default, it will assume app.getName().desktop. * @param progress Valid range is [0, 1.0]. If < 0, the progress bar is removed. * If greater than 0, it becomes indeterminate. */ setProgressBar(progress: number): void; /** * Sets a 16px overlay onto the current Taskbar icon, usually used to convey * some sort of application status or to passively notify the user. * Note: This API is only available on Windows 7 or above. * @param overlay The icon to display on the bottom right corner of the Taskbar * icon. If this parameter is null, the overlay is cleared * @param description Provided to Accessibility screen readers. */ setOverlayIcon(overlay: NativeImage, description: string): void; /** * Shows pop-up dictionary that searches the selected word on the page. * Note: This API is available only on OS X. */ showDefinitionForSelection(): void; /** * Sets whether the window menu bar should hide itself automatically. Once set * the menu bar will only show when users press the single Alt key. * If the menu bar is already visible, calling setAutoHideMenuBar(true) won't * hide it immediately. */ setAutoHideMenuBar(hide: boolean): void; /** * @returns Whether menu bar automatically hides itself. */ isMenuBarAutoHide(): boolean; /** * Sets whether the menu bar should be visible. If the menu bar is auto-hide, * users can still bring up the menu bar by pressing the single Alt key. */ setMenuBarVisibility(visibile: boolean): void; /** * @returns Whether the menu bar is visible. */ isMenuBarVisible(): boolean; /** * Sets whether the window should be visible on all workspaces. * Note: This API does nothing on Windows. */ setVisibleOnAllWorkspaces(visible: boolean): void; /** * Note: This API always returns false on Windows. * @returns Whether the window is visible on all workspaces. */ isVisibleOnAllWorkspaces(): boolean; } interface WebPreferences { nodeIntegration?: boolean; preload?: string; session?: Session; partition?: string; zoomFactor?: number; javascript?: boolean; webSecurity?: boolean; allowDisplayingInsecureContent?: boolean; allowRunningInsecureContent?: boolean; images?: boolean; textAreasAreResizable?: boolean; webgl?: boolean; webaudio?: boolean; plugins?: boolean; experimentalFeatures?: boolean; experimentalCanvasFeatures?: boolean; directWrite?: boolean; blinkFeatures?: string; } interface BrowserWindowOptions extends Rectangle { useContentSize?: boolean; center?: boolean; minWidth?: number; minHeight?: number; maxWidth?: number; maxHeight?: number; resizable?: boolean; alwaysOnTop?: boolean; fullscreen?: boolean; skipTaskbar?: boolean; kiosk?: boolean; title?: string; icon?: NativeImage|string; show?: boolean; frame?: boolean; acceptFirstMouse?: boolean; disableAutoHideCursor?: boolean; autoHideMenuBar?: boolean; enableLargerThanScreen?: boolean; backgroundColor?: string; darkTheme?: boolean; preload?: string; transparent?: boolean; type?: string; titleBarStyle?: string; webPreferences?: WebPreferences; } interface Rectangle { x?: number; y?: number; width?: number; height?: number; } }