/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IDisposable } from '../../../../vs/base/common/lifecycle'; import { createDecorator } from '../../../../vs/platform/instantiation/common/instantiation'; import { IContextMenuDelegate } from '../../../../vs/base/browser/contextmenu'; import { AnchorAlignment, AnchorAxisAlignment, IContextViewProvider, } from '../../../../vs/base/browser/ui/contextview/contextview'; export const IContextViewService = createDecorator('contextViewService'); export interface IContextViewService extends IContextViewProvider { readonly _serviceBrand: undefined; showContextView( delegate: IContextViewDelegate, container?: HTMLElement, shadowRoot?: boolean ): IDisposable; hideContextView(data?: any): void; getContextViewElement(): HTMLElement; } export interface IContextViewDelegate { canRelayout?: boolean; // Default: true getAnchor(): | HTMLElement | { x: number; y: number; width?: number; height?: number }; render(container: HTMLElement): IDisposable; onHide?(data?: any): void; focus?(): void; anchorAlignment?: AnchorAlignment; anchorAxisAlignment?: AnchorAxisAlignment; } export const IContextMenuService = createDecorator('contextMenuService'); export interface IContextMenuService { readonly _serviceBrand: undefined; showContextMenu(delegate: IContextMenuDelegate): void; }