windows.ts 4.1 KB
Newer Older
J
Joao Moreno 已提交
1 2 3 4 5 6 7 8 9
/*---------------------------------------------------------------------------------------------
 *  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';
J
Joao Moreno 已提交
10
import Event from 'vs/base/common/event';
J
Joao Moreno 已提交
11 12 13 14 15 16 17

export const IWindowsService = createDecorator<IWindowsService>('windowsService');

export interface IWindowsService {

	_serviceBrand: any;

J
Joao Moreno 已提交
18
	onWindowOpen: Event<number>;
J
Joao Moreno 已提交
19 20
	onWindowFocus: Event<number>;

J
Joao Moreno 已提交
21
	openFileFolderPicker(windowId: number, forceNewWindow?: boolean): TPromise<void>;
22
	openFilePicker(windowId: number, forceNewWindow?: boolean, path?: string): TPromise<void>;
J
Joao Moreno 已提交
23
	openFolderPicker(windowId: number, forceNewWindow?: boolean): TPromise<void>;
24
	reloadWindow(windowId: number): TPromise<void>;
J
Joao Moreno 已提交
25
	openDevTools(windowId: number): TPromise<void>;
J
Joao Moreno 已提交
26
	toggleDevTools(windowId: number): TPromise<void>;
J
Joao Moreno 已提交
27
	// TODO@joao: rename, shouldn't this be closeWindow?
28
	// @ben: no, this actually leaves the window open but changes it to have no workspace opened
J
Joao Moreno 已提交
29
	closeFolder(windowId: number): TPromise<void>;
J
Joao Moreno 已提交
30
	toggleFullScreen(windowId: number): TPromise<void>;
31
	setRepresentedFilename(windowId: number, fileName: string): TPromise<void>;
32
	addToRecentlyOpen(paths: { path: string, isFile?: boolean }[]): TPromise<void>;
B
Benjamin Pasero 已提交
33
	removeFromRecentlyOpen(paths: string[]): TPromise<void>;
J
Joao Moreno 已提交
34
	getRecentlyOpen(windowId: number): TPromise<{ files: string[]; folders: string[]; }>;
J
Joao Moreno 已提交
35
	focusWindow(windowId: number): TPromise<void>;
36 37 38
	isMaximized(windowId: number): TPromise<boolean>;
	maximizeWindow(windowId: number): TPromise<void>;
	unmaximizeWindow(windowId: number): TPromise<void>;
J
Joao Moreno 已提交
39
	setDocumentEdited(windowId: number, flag: boolean): TPromise<void>;
J
Joao Moreno 已提交
40
	toggleMenuBar(windowId: number): TPromise<void>;
41
	quit(): TPromise<void>;
42

J
Joao Moreno 已提交
43
	// Global methods
44
	openWindow(paths: string[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean }): TPromise<void>;
J
Joao Moreno 已提交
45
	openNewWindow(): TPromise<void>;
J
Joao Moreno 已提交
46
	showWindow(windowId: number): TPromise<void>;
J
Joao Moreno 已提交
47
	getWindows(): TPromise<{ id: number; path: string; title: string; }[]>;
48
	getWindowCount(): TPromise<number>;
J
Joao Moreno 已提交
49
	log(severity: string, ...messages: string[]): TPromise<void>;
50 51
	// TODO@joao: what?
	closeExtensionHostWindow(extensionDevelopmentPath: string): TPromise<void>;
J
Joao Moreno 已提交
52
	showItemInFolder(path: string): TPromise<void>;
J
Joao Moreno 已提交
53

54
	// This needs to be handled from browser process to prevent
J
Joao Moreno 已提交
55 56
	// foreground ordering issues on Windows
	openExternal(url: string): TPromise<void>;
57 58 59

	// TODO: this is a bit backwards
	startCrashReporter(config: Electron.CrashReporterStartOptions): TPromise<void>;
J
Joao Moreno 已提交
60 61 62 63 64 65 66 67
}

export const IWindowService = createDecorator<IWindowService>('windowService');

export interface IWindowService {

	_serviceBrand: any;

J
Joao Moreno 已提交
68
	getCurrentWindowId(): number;
J
Joao Moreno 已提交
69
	openFileFolderPicker(forceNewWindow?: boolean): TPromise<void>;
70
	openFilePicker(forceNewWindow?: boolean, path?: string): TPromise<void>;
J
Joao Moreno 已提交
71
	openFolderPicker(forceNewWindow?: boolean): TPromise<void>;
72
	reloadWindow(): TPromise<void>;
J
Joao Moreno 已提交
73
	openDevTools(): TPromise<void>;
J
Joao Moreno 已提交
74
	toggleDevTools(): TPromise<void>;
J
Joao Moreno 已提交
75
	closeFolder(): TPromise<void>;
J
Joao Moreno 已提交
76
	toggleFullScreen(): TPromise<void>;
77
	setRepresentedFilename(fileName: string): TPromise<void>;
78
	addToRecentlyOpen(paths: { path: string, isFile?: boolean }[]): TPromise<void>;
B
Benjamin Pasero 已提交
79
	removeFromRecentlyOpen(paths: string[]): TPromise<void>;
J
Joao Moreno 已提交
80
	getRecentlyOpen(): TPromise<{ files: string[]; folders: string[]; }>;
J
Joao Moreno 已提交
81
	focusWindow(): TPromise<void>;
J
Joao Moreno 已提交
82
	setDocumentEdited(flag: boolean): TPromise<void>;
J
Joao Moreno 已提交
83
	toggleMenuBar(): TPromise<void>;
84 85 86
	isMaximized(): TPromise<boolean>;
	maximizeWindow(): TPromise<void>;
	unmaximizeWindow(): TPromise<void>;
87 88 89 90
}

export interface IWindowSettings {
	openFilesInNewWindow: boolean;
91
	openFoldersInNewWindow: boolean;
92 93 94 95
	reopenFolders: 'all' | 'one' | 'none';
	restoreFullscreen: boolean;
	zoomLevel: number;
	titleBarStyle: 'native' | 'custom';
96
	autoDetectHighContrast: boolean;
97
}