mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-05 01:25:38 -05:00
Merge from vscode 1eb87b0e9ce9886afeaecec22b31abd0d9b7939f (#7282)
* Merge from vscode 1eb87b0e9ce9886afeaecec22b31abd0d9b7939f * fix various icon issues * fix preview features
This commit is contained in:
17
src/vs/platform/electron/electron-browser/electronService.ts
Normal file
17
src/vs/platform/electron/electron-browser/electronService.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IElectronService } from 'vs/platform/electron/node/electron';
|
||||
import { IMainProcessService } from 'vs/platform/ipc/electron-browser/mainProcessService';
|
||||
import { createSimpleChannelProxy } from 'vs/platform/ipc/node/simpleIpcProxy';
|
||||
|
||||
export class ElectronService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
constructor(@IMainProcessService mainProcessService: IMainProcessService) {
|
||||
return createSimpleChannelProxy<IElectronService>(mainProcessService.getChannel('electron'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { IElectronService } from 'vs/platform/electron/node/electron';
|
||||
import { IWindowsMainService, ICodeWindow } from 'vs/platform/windows/electron-main/windows';
|
||||
import { MessageBoxOptions, MessageBoxReturnValue, shell } from 'electron';
|
||||
|
||||
export class ElectronMainService implements IElectronService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
constructor(
|
||||
@IWindowsMainService private readonly windowsMainService: IWindowsMainService
|
||||
) {
|
||||
}
|
||||
|
||||
//#region Window
|
||||
|
||||
private get window(): ICodeWindow | undefined {
|
||||
return this.windowsMainService.getFocusedWindow() || this.windowsMainService.getLastActiveWindow();
|
||||
}
|
||||
|
||||
async windowCount(): Promise<number> {
|
||||
return this.windowsMainService.getWindowCount();
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Other
|
||||
|
||||
async showMessageBox(options: MessageBoxOptions): Promise<MessageBoxReturnValue> {
|
||||
const result = await this.windowsMainService.showMessageBox(options, this.window);
|
||||
|
||||
return {
|
||||
response: result.button,
|
||||
checkboxChecked: !!result.checkboxChecked
|
||||
};
|
||||
}
|
||||
|
||||
async showItemInFolder(path: string): Promise<void> {
|
||||
shell.showItemInFolder(path);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
}
|
||||
23
src/vs/platform/electron/node/electron.ts
Normal file
23
src/vs/platform/electron/node/electron.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { MessageBoxOptions, MessageBoxReturnValue } from 'electron';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
|
||||
export const IElectronService = createDecorator<IElectronService>('electronService');
|
||||
|
||||
export interface IElectronService {
|
||||
|
||||
_serviceBrand: undefined;
|
||||
|
||||
// Window
|
||||
windowCount(): Promise<number>;
|
||||
|
||||
// Dialogs
|
||||
showMessageBox(options: MessageBoxOptions): Promise<MessageBoxReturnValue>;
|
||||
|
||||
// OS
|
||||
showItemInFolder(path: string): Promise<void>;
|
||||
}
|
||||
Reference in New Issue
Block a user