This commit is contained in:
Benjamin Pasero 2018-06-18 09:59:51 +02:00 committed by GitHub
parent d32c949d4a
commit aaff78b996
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 29 additions and 22 deletions

View File

@ -23,7 +23,7 @@ import { isLinux, isMacintosh, isWindows } from 'vs/base/common/platform';
import { ICodeWindow, IWindowState, WindowMode } from 'vs/platform/windows/electron-main/windows';
import { IWorkspaceIdentifier, IWorkspacesMainService } from 'vs/platform/workspaces/common/workspaces';
import { IBackupMainService } from 'vs/platform/backup/common/backup';
import { ICommandAction } from 'vs/platform/actions/common/actions';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import { mark, exportEntries } from 'vs/base/common/performance';
import { resolveMarketplaceHeaders } from 'vs/platform/extensionManagement/node/extensionGalleryService';
@ -916,7 +916,7 @@ export class CodeWindow implements ICodeWindow {
}
}
public updateTouchBar(groups: ICommandAction[][]): void {
public updateTouchBar(groups: ISerializableCommandAction[][]): void {
if (!isMacintosh) {
return; // only supported on macOS
}
@ -945,7 +945,7 @@ export class CodeWindow implements ICodeWindow {
this._win.setTouchBar(new TouchBar({ items: this.touchBarGroups }));
}
private createTouchBarGroup(items: ICommandAction[] = []): Electron.TouchBarSegmentedControl {
private createTouchBarGroup(items: ISerializableCommandAction[] = []): Electron.TouchBarSegmentedControl {
// Group Segments
const segments = this.createTouchBarGroupSegments(items);
@ -963,11 +963,11 @@ export class CodeWindow implements ICodeWindow {
return control;
}
private createTouchBarGroupSegments(items: ICommandAction[] = []): ITouchBarSegment[] {
private createTouchBarGroupSegments(items: ISerializableCommandAction[] = []): ITouchBarSegment[] {
const segments: ITouchBarSegment[] = items.map(item => {
let icon: Electron.NativeImage;
if (item.iconLocation && item.iconLocation.dark.scheme === 'file') {
icon = nativeImage.createFromPath(item.iconLocation.dark.fsPath);
icon = nativeImage.createFromPath(URI.revive(item.iconLocation.dark).fsPath);
if (icon.isEmpty()) {
icon = void 0;
}

View File

@ -13,21 +13,28 @@ import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/commo
import { ICommandService } from 'vs/platform/commands/common/commands';
import { IDisposable } from 'vs/base/common/lifecycle';
import { Event } from 'vs/base/common/event';
import URI from 'vs/base/common/uri';
import URI, { UriComponents } from 'vs/base/common/uri';
export interface ILocalizedString {
value: string;
original: string;
}
export interface ICommandAction {
export interface IBaseCommandAction {
id: string;
title: string | ILocalizedString;
category?: string | ILocalizedString;
}
export interface ICommandAction extends IBaseCommandAction {
iconLocation?: { dark: URI; light?: URI; };
precondition?: ContextKeyExpr;
}
export interface ISerializableCommandAction extends IBaseCommandAction {
iconLocation?: { dark: UriComponents; light?: UriComponents; };
}
export interface IMenuItem {
command: ICommandAction;
alt?: ICommandAction;

View File

@ -13,7 +13,7 @@ import { IProcessEnvironment } from 'vs/base/common/platform';
import { ParsedArgs } from 'vs/platform/environment/common/environment';
import { IWorkspaceIdentifier, IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
import { IRecentlyOpened } from 'vs/platform/history/common/history';
import { ICommandAction } from 'vs/platform/actions/common/actions';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import { PerformanceEntry } from 'vs/base/common/performance';
import { LogLevel } from 'vs/platform/log/common/log';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
@ -144,7 +144,7 @@ export interface IWindowsService {
toggleWindowTabsBar(): TPromise<void>;
// macOS TouchBar
updateTouchBar(windowId: number, items: ICommandAction[][]): TPromise<void>;
updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): TPromise<void>;
// Shared process
whenSharedProcessReady(): TPromise<void>;
@ -192,7 +192,7 @@ export interface IWindowService {
openDevTools(options?: IDevToolsOptions): TPromise<void>;
toggleDevTools(): TPromise<void>;
closeWorkspace(): TPromise<void>;
updateTouchBar(items: ICommandAction[][]): TPromise<void>;
updateTouchBar(items: ISerializableCommandAction[][]): TPromise<void>;
createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): TPromise<IEnterWorkspaceResult>;
saveAndEnterWorkspace(path: string): TPromise<IEnterWorkspaceResult>;
toggleFullScreen(): TPromise<void>;

View File

@ -11,7 +11,7 @@ import { IChannel, eventToCall, eventFromCall } from 'vs/base/parts/ipc/common/i
import { IWindowsService, INativeOpenDialogOptions, IEnterWorkspaceResult, CrashReporterStartOptions, IMessageBoxResult, MessageBoxOptions, SaveDialogOptions, OpenDialogOptions, IDevToolsOptions } from 'vs/platform/windows/common/windows';
import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier, IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
import { IRecentlyOpened } from 'vs/platform/history/common/history';
import { ICommandAction } from 'vs/platform/actions/common/actions';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import URI from 'vs/base/common/uri';
import { ParsedArgs } from 'vs/platform/environment/common/environment';
@ -42,7 +42,7 @@ export interface IWindowsChannel extends IChannel {
call(command: 'moveWindowTabToNewWindow', arg: number): TPromise<void>;
call(command: 'mergeAllWindowTabs', arg: number): TPromise<void>;
call(command: 'toggleWindowTabsBar', arg: number): TPromise<void>;
call(command: 'updateTouchBar', arg: [number, ICommandAction[][]]): TPromise<void>;
call(command: 'updateTouchBar', arg: [number, ISerializableCommandAction[][]]): TPromise<void>;
call(command: 'focusWindow', arg: number): TPromise<void>;
call(command: 'closeWindow', arg: number): TPromise<void>;
call(command: 'isFocused', arg: number): TPromise<boolean>;
@ -345,7 +345,7 @@ export class WindowsChannelClient implements IWindowsService {
return this.channel.call('startCrashReporter', config);
}
updateTouchBar(windowId: number, items: ICommandAction[][]): TPromise<void> {
updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): TPromise<void> {
return this.channel.call('updateTouchBar', [windowId, items]);
}

View File

@ -9,7 +9,7 @@ import { Event, filterEvent, mapEvent, anyEvent } from 'vs/base/common/event';
import { TPromise } from 'vs/base/common/winjs.base';
import { IWindowService, IWindowsService, INativeOpenDialogOptions, IEnterWorkspaceResult, IMessageBoxResult, IWindowConfiguration, IDevToolsOptions } from 'vs/platform/windows/common/windows';
import { IRecentlyOpened } from 'vs/platform/history/common/history';
import { ICommandAction } from 'vs/platform/actions/common/actions';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import { IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
import { ParsedArgs } from 'vs/platform/environment/common/environment';
@ -137,7 +137,7 @@ export class WindowService implements IWindowService {
return this.windowsService.showOpenDialog(this.windowId, options);
}
updateTouchBar(items: ICommandAction[][]): TPromise<void> {
updateTouchBar(items: ISerializableCommandAction[][]): TPromise<void> {
return this.windowsService.updateTouchBar(this.windowId, items);
}
}

View File

@ -12,7 +12,7 @@ import { Event } from 'vs/base/common/event';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { IProcessEnvironment } from 'vs/base/common/platform';
import { IWorkspaceIdentifier, IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
import { ICommandAction } from 'vs/platform/actions/common/actions';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
export interface IWindowState {
width?: number;
@ -64,7 +64,7 @@ export interface ICodeWindow {
getRepresentedFilename(): string;
onWindowTitleDoubleClick(): void;
updateTouchBar(items: ICommandAction[][]): void;
updateTouchBar(items: ISerializableCommandAction[][]): void;
setReady(): void;
serializeWindowState(): IWindowState;

View File

@ -20,7 +20,7 @@ import { ILifecycleService } from 'vs/platform/lifecycle/electron-main/lifecycle
import { IWindowsMainService, ISharedProcess } from 'vs/platform/windows/electron-main/windows';
import { IHistoryMainService, IRecentlyOpened } from 'vs/platform/history/common/history';
import { IWorkspaceIdentifier, IWorkspaceFolderCreationData } from 'vs/platform/workspaces/common/workspaces';
import { ICommandAction } from 'vs/platform/actions/common/actions';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import { Schemas } from 'vs/base/common/network';
import { mnemonicButtonLabel } from 'vs/base/common/labels';
import { isWindows } from 'vs/base/common/platform';
@ -139,7 +139,7 @@ export class WindowsService implements IWindowsService, IURLHandler, IDisposable
return TPromise.as(null);
}
updateTouchBar(windowId: number, items: ICommandAction[][]): TPromise<void> {
updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): TPromise<void> {
this.logService.trace('windowsService#updateTouchBar', windowId);
const codeWindow = this.windowsMainService.getWindowById(windowId);

View File

@ -53,7 +53,7 @@ import { IWorkspaceIdentifier, ISingleFolderWorkspaceIdentifier, isSingleFolderW
import { IRecentlyOpened } from 'vs/platform/history/common/history';
import { ITextResourceConfigurationService } from 'vs/editor/common/services/resourceConfiguration';
import { IPosition, Position as EditorPosition } from 'vs/editor/common/core/position';
import { ICommandAction, IMenuService, MenuId, IMenu } from 'vs/platform/actions/common/actions';
import { IMenuService, MenuId, IMenu, ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import { IHashService } from 'vs/workbench/services/hash/common/hashService';
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { MockContextKeyService, MockKeybindingService } from 'vs/platform/keybinding/test/common/mockKeybindingService';
@ -1059,7 +1059,7 @@ export class TestWindowService implements IWindowService {
return TPromise.wrap(void 0);
}
updateTouchBar(items: ICommandAction[][]): Promise<void> {
updateTouchBar(items: ISerializableCommandAction[][]): Promise<void> {
return TPromise.as(void 0);
}
}
@ -1266,7 +1266,7 @@ export class TestWindowsService implements IWindowsService {
return TPromise.as(void 0);
}
updateTouchBar(windowId: number, items: ICommandAction[][]): Promise<void> {
updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): Promise<void> {
return TPromise.as(void 0);
}