UNPKG

sussudio

Version:

An unofficial VS Code Internal API

38 lines (37 loc) 1.65 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IActionViewItem } from "./ui/actionbar/actionbar.mjs"; import { AnchorAlignment, AnchorAxisAlignment } from "./ui/contextview/contextview.mjs"; import { IAction, IActionRunner } from "../common/actions.mjs"; import { ResolvedKeybinding } from "../common/keybindings.mjs"; export interface IContextMenuEvent { readonly shiftKey?: boolean; readonly ctrlKey?: boolean; readonly altKey?: boolean; readonly metaKey?: boolean; } export interface IContextMenuDelegate { getAnchor(): HTMLElement | { x: number; y: number; width?: number; height?: number; }; getActions(): readonly IAction[]; getCheckedActionsRepresentation?(action: IAction): 'radio' | 'checkbox'; getActionViewItem?(action: IAction): IActionViewItem | undefined; getActionsContext?(event?: IContextMenuEvent): unknown; getKeyBinding?(action: IAction): ResolvedKeybinding | undefined; getMenuClassName?(): string; onHide?(didCancel: boolean): void; actionRunner?: IActionRunner; autoSelectFirstItem?: boolean; anchorAlignment?: AnchorAlignment; anchorAxisAlignment?: AnchorAxisAlignment; domForShadowRoot?: HTMLElement; } export interface IContextMenuProvider { showContextMenu(delegate: IContextMenuDelegate): void; }