/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; import { TPromise } from 'vs/base/common/winjs.base'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import Event from 'vs/base/common/event'; export const IWindowsService = createDecorator('windowsService'); export interface IWindowsService { _serviceBrand: any; onWindowOpen: Event; onWindowFocus: Event; openFileFolderPicker(windowId: number, forceNewWindow?: boolean): TPromise; openFilePicker(windowId: number, forceNewWindow?: boolean, path?: string): TPromise; openFolderPicker(windowId: number, forceNewWindow?: boolean): TPromise; reloadWindow(windowId: number): TPromise; openDevTools(windowId: number): TPromise; toggleDevTools(windowId: number): TPromise; // TODO@joao: rename, shouldn't this be closeWindow? // @ben: no, this actually leaves the window open but changes it to have no workspace opened closeFolder(windowId: number): TPromise; toggleFullScreen(windowId: number): TPromise; setRepresentedFilename(windowId: number, fileName: string): TPromise; addToRecentlyOpen(paths: { path: string, isFile?: boolean }[]): TPromise; removeFromRecentlyOpen(paths: string[]): TPromise; getRecentlyOpen(windowId: number): TPromise<{ files: string[]; folders: string[]; }>; focusWindow(windowId: number): TPromise; isMaximized(windowId: number): TPromise; maximizeWindow(windowId: number): TPromise; unmaximizeWindow(windowId: number): TPromise; setDocumentEdited(windowId: number, flag: boolean): TPromise; toggleMenuBar(windowId: number): TPromise; quit(): TPromise; // Global methods openWindow(paths: string[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean }): TPromise; openNewWindow(): TPromise; showWindow(windowId: number): TPromise; getWindows(): TPromise<{ id: number; path: string; title: string; }[]>; getWindowCount(): TPromise; log(severity: string, ...messages: string[]): TPromise; // TODO@joao: what? closeExtensionHostWindow(extensionDevelopmentPath: string): TPromise; showItemInFolder(path: string): TPromise; // This needs to be handled from browser process to prevent // foreground ordering issues on Windows openExternal(url: string): TPromise; // TODO: this is a bit backwards startCrashReporter(config: Electron.CrashReporterStartOptions): TPromise; } export const IWindowService = createDecorator('windowService'); export interface IWindowService { _serviceBrand: any; getCurrentWindowId(): number; openFileFolderPicker(forceNewWindow?: boolean): TPromise; openFilePicker(forceNewWindow?: boolean, path?: string): TPromise; openFolderPicker(forceNewWindow?: boolean): TPromise; reloadWindow(): TPromise; openDevTools(): TPromise; toggleDevTools(): TPromise; closeFolder(): TPromise; toggleFullScreen(): TPromise; setRepresentedFilename(fileName: string): TPromise; addToRecentlyOpen(paths: { path: string, isFile?: boolean }[]): TPromise; removeFromRecentlyOpen(paths: string[]): TPromise; getRecentlyOpen(): TPromise<{ files: string[]; folders: string[]; }>; focusWindow(): TPromise; setDocumentEdited(flag: boolean): TPromise; toggleMenuBar(): TPromise; isMaximized(): TPromise; maximizeWindow(): TPromise; unmaximizeWindow(): TPromise; } export interface IWindowSettings { openFilesInNewWindow: boolean; openFoldersInNewWindow: boolean; reopenFolders: 'all' | 'one' | 'none'; restoreFullscreen: boolean; zoomLevel: number; titleBarStyle: 'native' | 'custom'; autoDetectHighContrast: boolean; }