/*--------------------------------------------------------------------------------------------- * 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, MouseInputEvent } from 'vs/base/parts/sandbox/common/electronTypes'; import { IOpenedWindow, IWindowOpenable, IOpenEmptyWindowOptions, IOpenWindowOptions, IColorScheme } from 'vs/platform/windows/common/windows'; import { INativeOpenDialogOptions } from 'vs/platform/dialogs/common/dialogs'; import { ISerializableCommandAction } from 'vs/platform/actions/common/actions'; import { URI } from 'vs/base/common/uri'; export interface ICPUProperties { model: string; speed: number; } export interface IOSProperties { type: string; release: string; arch: string; platform: string; cpus: ICPUProperties[]; } export interface IOSStatistics { totalmem: number; freemem: number; loadavg: number[]; } export interface ICommonNativeHostService { readonly _serviceBrand: undefined; // Properties readonly windowId: number; // Events readonly onDidOpenWindow: Event; readonly onDidMaximizeWindow: Event; readonly onDidUnmaximizeWindow: Event; readonly onDidFocusWindow: Event; readonly onDidBlurWindow: Event; readonly onDidResumeOS: Event; readonly onDidChangeColorScheme: Event; readonly onDidChangePassword: Event<{ service: string, account: string }>; // Window getWindows(): Promise; getWindowCount(): Promise; getActiveWindowId(): Promise; openWindow(options?: IOpenEmptyWindowOptions): Promise; openWindow(toOpen: IWindowOpenable[], options?: IOpenWindowOptions): Promise; toggleFullScreen(): Promise; handleTitleDoubleClick(): Promise; isMaximized(): Promise; maximizeWindow(): Promise; unmaximizeWindow(): Promise; minimizeWindow(): Promise; setMinimumSize(width: number | undefined, height: number | undefined): Promise; /** * Make the window focused. * * @param options Pass `force: true` if you want to make the window take * focus even if the application does not have focus currently. This option * should only be used if it is necessary to steal focus from the current * focused application which may not be VSCode. */ focusWindow(options?: { windowId?: number, force?: boolean }): 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; moveItemToTrash(fullPath: string, deleteOnFail?: boolean): Promise; isAdmin(): Promise; writeElevated(source: URI, target: URI, options?: { overwriteReadonly?: boolean }): Promise; getOSProperties(): Promise; getOSStatistics(): Promise; getOSVirtualMachineHint(): Promise; // Process killProcess(pid: number, code: string): Promise; // Clipboard readClipboardText(type?: 'selection' | 'clipboard'): Promise; writeClipboardText(text: string, type?: 'selection' | 'clipboard'): Promise; readClipboardFindText(): Promise; writeClipboardFindText(text: string): Promise; writeClipboardBuffer(format: string, buffer: Uint8Array, type?: 'selection' | 'clipboard'): Promise; readClipboardBuffer(format: string): Promise; hasClipboard(format: string, type?: 'selection' | 'clipboard'): Promise; // macOS Touchbar newWindowTab(): Promise; showPreviousWindowTab(): Promise; showNextWindowTab(): Promise; moveWindowTabToNewWindow(): Promise; mergeAllWindowTabs(): Promise; toggleWindowTabsBar(): Promise; updateTouchBar(items: ISerializableCommandAction[][]): Promise; // Lifecycle notifyReady(): Promise relaunch(options?: { addArgs?: string[], removeArgs?: string[] }): Promise; reload(options?: { disableExtensions?: boolean }): Promise; closeWindow(): Promise; closeWindowById(windowId: number): Promise; quit(): Promise; exit(code: number): Promise; // Development openDevTools(options?: OpenDevToolsOptions): Promise; toggleDevTools(): Promise; toggleSharedProcessWindow(): Promise; sendInputEvent(event: MouseInputEvent): Promise; // Connectivity resolveProxy(url: string): Promise; // Registry (windows only) windowsGetStringRegKey(hive: 'HKEY_CURRENT_USER' | 'HKEY_LOCAL_MACHINE' | 'HKEY_CLASSES_ROOT' | 'HKEY_USERS' | 'HKEY_CURRENT_CONFIG', path: string, name: string): Promise; // Credentials getPassword(service: string, account: string): Promise; setPassword(service: string, account: string, password: string): Promise; deletePassword(service: string, account: string): Promise; findPassword(service: string): Promise; findCredentials(service: string): Promise> }