mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
412 lines
12 KiB
TypeScript
412 lines
12 KiB
TypeScript
// Type definitions for Electron v0.37.2
|
||
// Project: http://electron.atom.io/
|
||
// Definitions by: jedmao <https://github.com/jedmao/>, rhysd <https://rhysd.github.io>
|
||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||
|
||
/// <reference path="../node/node.d.ts" />
|
||
/// <reference path="github-electron.event-emitter.d.ts" />
|
||
/// <reference path="github-electron.menu.d.ts" />
|
||
/// <reference path="github-electron.session.d.ts" />
|
||
/// <reference path="github-electron.web-contents.d.ts" />
|
||
|
||
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;
|
||
}
|
||
}
|