/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Event } from 'vs/base/common/event'; import { MessageBoxOptions, MessageBoxReturnValue, OpenDevToolsOptions, SaveDialogOptions, OpenDialogOptions, OpenDialogReturnValue, SaveDialogReturnValue, CrashReporterStartOptions } from 'electron'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IWindowOpenable, IOpenEmptyWindowOptions, IOpenedWindow } from 'vs/platform/windows/common/windows'; import { INativeOpenDialogOptions } from 'vs/platform/dialogs/node/dialogs'; import { ISerializableMenuItemAction } from 'vs/platform/actions/common/actions'; import { INativeOpenWindowOptions } from 'vs/platform/windows/node/window'; export const IElectronService = createDecorator('electronService'); export interface IElectronService { _serviceBrand: undefined; // Events readonly onWindowOpen: Event; readonly onWindowMaximize: Event; readonly onWindowUnmaximize: Event; readonly onWindowFocus: Event; readonly onWindowBlur: Event; // Window getWindows(): Promise; getWindowCount(): Promise; getActiveWindowId(): Promise; openWindow(options?: IOpenEmptyWindowOptions): Promise; openWindow(toOpen: IWindowOpenable[], options?: INativeOpenWindowOptions): Promise; toggleFullScreen(): Promise; handleTitleDoubleClick(): Promise; isMaximized(): Promise; maximizeWindow(): Promise; unmaximizeWindow(): Promise; minimizeWindow(): Promise; focusWindow(options?: { windowId?: number }): Promise; // Dialogs showMessageBox(options: MessageBoxOptions): Promise; showSaveDialog(options: SaveDialogOptions): Promise; showOpenDialog(options: OpenDialogOptions): Promise; pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise; pickFileAndOpen(options: INativeOpenDialogOptions): Promise; pickFolderAndOpen(options: INativeOpenDialogOptions): Promise; pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise; // OS showItemInFolder(path: string): Promise; setRepresentedFilename(path: string): Promise; setDocumentEdited(edited: boolean): Promise; openExternal(url: string): Promise; updateTouchBar(items: ISerializableMenuItemAction[][]): Promise; // macOS Touchbar newWindowTab(): Promise; showPreviousWindowTab(): Promise; showNextWindowTab(): Promise; moveWindowTabToNewWindow(): Promise; mergeAllWindowTabs(): Promise; toggleWindowTabsBar(): Promise; // Lifecycle relaunch(options?: { addArgs?: string[], removeArgs?: string[] }): Promise; reload(options?: { disableExtensions?: boolean }): Promise; closeWindow(): Promise; quit(): Promise; // Development openDevTools(options?: OpenDevToolsOptions): Promise; toggleDevTools(): Promise; startCrashReporter(options: CrashReporterStartOptions): Promise; // Connectivity resolveProxy(url: string): Promise; }