UNPKG

pxt-core

Version:

Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors

48 lines (47 loc) 2.14 kB
import * as Blockly from "blockly"; interface MatrixDisplayProps { cellWidth: number; cellHeight: number; cellLabel: string; cellHorizontalMargin: number; cellVerticalMargin: number; cornerRadius: number; cellStroke?: string; cellFill?: string; padLeft?: number; scale?: number; } export declare abstract class FieldMatrix extends Blockly.Field { protected cells: SVGRectElement[][]; protected matrixSvg: SVGSVGElement; private keyDownBinding; private blurBinding; protected selected: [x: number, y: number] | undefined; protected abstract numMatrixCols: number; protected abstract numMatrixRows: number; protected abstract clearSelectionOnBlur: boolean; protected forceFocusVisible: boolean; protected returnEphemeralFocusFn: Blockly.ReturnEphemeralFocus | undefined; protected createMatrixDisplay({ cellWidth, cellHeight, cellLabel, cellHorizontalMargin, cellVerticalMargin, cornerRadius, cellFill, cellStroke, padLeft, scale }: MatrixDisplayProps): void; protected handleArrowUp(x: number, y: number): void; protected handleArrowDown(x: number, y: number): void; protected handleArrowLeft(x: number, y: number): void; protected handleArrowRight(x: number, y: number): void; private addKeyDownHandler; private addBlurHandler; protected focusCell(x: number, y: number): void; private setCellSelection; protected clearCellSelection(): void; private setFocusIndicator; protected clearFocusIndicator(): void; protected addKeyboardFocusHandlers(): void; protected attachEventHandlersToMatrix(): void; protected returnEphemeralFocus(): void; protected removeKeyboardFocusHandlers(): void; protected getCellId: (x: number, y: number) => string; protected abstract attachPointerEventHandlersToCell(x: number, y: number, cellRect: SVGElement): void; protected abstract useTwoToneFocusIndicator(x: number, y: number): boolean; protected abstract toggleCell(x: number, y: number, value?: boolean): void; protected abstract getCellToggled(x: number, y: number): boolean; } export {};