import { INativeOpenDialogOptions, IDevToolsOptions, IEnterWorkspaceResult, IMessageBoxOptions, ISaveDialogOptions, IOpenDialogOptions, IOpenSettings, IMessageBoxResult, IUriToOpen, IWorkspaceIdentifier, INewWindowOptions, ICrashReporterStartOptions, } from '../generated-model'; import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; import { ISingleFolderWorkspaceIdentifier } from '../workspace'; import { Event } from '@vscode-alt/monaco-editor/esm/vs/base/common/event'; interface IVscodeWindowService { _serviceBrand: any; readonly onDidChangeFocus: Event; readonly onDidChangeMaximize: Event; readonly hasFocus: boolean; readonly windowId: number; pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise; pickFileAndOpen(options: INativeOpenDialogOptions): Promise; pickFolderAndOpen(options: INativeOpenDialogOptions): Promise; pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise; reloadWindow(args?: any /** ParsedArgs */): Promise; openDevTools(options?: IDevToolsOptions): Promise; toggleDevTools(): Promise; closeWorkspace(): Promise; // updateTouchBar(items: ISerializableCommandAction[][]): Promise; enterWorkspace(path: URI): Promise; toggleFullScreen(): Promise; setRepresentedFilename(fileName: string): Promise; // getRecentlyOpened(): Promise; focusWindow(): Promise; closeWindow(): Promise; openWindow(uris: IUriToOpen[], options?: IOpenSettings): Promise; isFocused(): Promise; setDocumentEdited(flag: boolean): Promise; isMaximized(): Promise; maximizeWindow(): Promise; unmaximizeWindow(): Promise; minimizeWindow(): Promise; onWindowTitleDoubleClick(): Promise; showMessageBox(options: IMessageBoxOptions): Promise; showSaveDialog(options: ISaveDialogOptions): Promise; showOpenDialog(options: IOpenDialogOptions): Promise; resolveProxy(url: string): Promise; } export interface IWindowService extends Pick { } interface IVscodeWindowsService { // onWindowOpen: Event; // onWindowFocus: Event; // onWindowBlur: Event; // onWindowMaximize: Event; // onWindowUnmaximize: Event; // onRecentlyOpenedChange: Event; // Dialogs pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise; pickFileAndOpen(options: INativeOpenDialogOptions): Promise; pickFolderAndOpen(options: INativeOpenDialogOptions): Promise; pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise; showMessageBox(windowId: number, options: IMessageBoxOptions): Promise; showSaveDialog(windowId: number, options: ISaveDialogOptions): Promise; showOpenDialog(windowId: number, options: IOpenDialogOptions): Promise; reloadWindow(windowId: number, args?: any /** ParsedArgs */): Promise; openDevTools(windowId: number, options?: IDevToolsOptions): Promise; toggleDevTools(windowId: number): Promise; closeWorkspace(windowId: number): Promise; enterWorkspace(windowId: number, path: URI): Promise; toggleFullScreen(windowId: number): Promise; setRepresentedFilename(windowId: number, fileName: string): Promise; addRecentlyOpened(recents): Promise; removeFromRecentlyOpened(paths: URI[]): Promise; clearRecentlyOpened(): Promise; // getRecentlyOpened(windowId: number): Promise; focusWindow(windowId: number): Promise; closeWindow(windowId: number): Promise; isFocused(windowId: number): Promise; isMaximized(windowId: number): Promise; maximizeWindow(windowId: number): Promise; unmaximizeWindow(windowId: number): Promise; minimizeWindow(windowId: number): Promise; onWindowTitleDoubleClick(windowId: number): Promise; setDocumentEdited(windowId: number, flag: boolean): Promise; quit(): Promise; relaunch(options: { addArgs?: string[], removeArgs?: string[] }): Promise; // macOS Native Tabs newWindowTab(): Promise; showPreviousWindowTab(): Promise; showNextWindowTab(): Promise; moveWindowTabToNewWindow(): Promise; mergeAllWindowTabs(): Promise; toggleWindowTabsBar(): Promise; // macOS TouchBar // updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): Promise; // Shared process whenSharedProcessReady(): Promise; toggleSharedProcess(): Promise; // Global methods openWindow(windowId: number, uris: IUriToOpen[], options: IOpenSettings): Promise; openNewWindow(options?: INewWindowOptions): Promise; getWindows(): Promise<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]>; getWindowCount(): Promise; log(severity: string, ...messages: string[]): Promise; showItemInFolder(path: URI): Promise; getActiveWindowId(): Promise; // This needs to be handled from browser process to prevent // foreground ordering issues on Windows openExternal(url: string): Promise; // TODO: this is a bit backwards startCrashReporter(config: ICrashReporterStartOptions): Promise; openAboutDialog(): Promise; resolveProxy(windowId: number, url: string): Promise; } export interface IWindowsService extends Pick { }