/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { GestureEvent } from 'vs/base/browser/touch'; export interface IListVirtualDelegate { getHeight(element: T): number; getTemplateId(element: T): string; hasDynamicHeight?(element: T): boolean; } export interface IListRenderer { templateId: string; renderTemplate(container: HTMLElement): TTemplateData; renderElement(element: T, index: number, templateData: TTemplateData): void; disposeElement(element: T, index: number, templateData: TTemplateData): void; disposeTemplate(templateData: TTemplateData): void; } export interface IListEvent { elements: T[]; indexes: number[]; browserEvent?: UIEvent; } export interface IListMouseEvent { browserEvent: MouseEvent; element: T | undefined; index: number; } export interface IListTouchEvent { browserEvent: TouchEvent; element: T | undefined; index: number; } export interface IListGestureEvent { browserEvent: GestureEvent; element: T | undefined; index: number; } export interface IListContextMenuEvent { browserEvent: UIEvent; element: T | undefined; index: number; anchor: HTMLElement | { x: number; y: number; } | undefined; }