UNPKG

ascii-ui

Version:

Graphic terminal emulator for HTML canvas elements

50 lines (49 loc) 1.87 kB
import { CharStyle, Terminal, TileSize } from '../Terminal'; import { Widget, WidgetConstructor, WidgetOptions } from '../Widget'; import { BidirectionalIterator, WidgetContainer } from '../WidgetContainer'; export interface GridOptions extends WidgetOptions { rows: number; columns: number; fullSize?: boolean; borders?: boolean; borderStyle?: GridBorderOptions; calculateGridSpace?(available: number, cells: number, isRow: boolean, terminal: Terminal): number[]; } export interface GridBorderOptions extends CharStyle { top?: string; right?: string; bottom?: string; left?: string; topLeft?: string; topRight?: string; bottomRight?: string; bottomLeft?: string; noTop?: string; noRight?: string; noBottom?: string; noLeft?: string; cross?: string; } export declare class Grid extends Widget<GridOptions> implements WidgetContainer { static defaultOptions: GridOptions; private readonly attachedWidgets; private columnStarts; private rowStarts; private borderTiles; constructor(terminal: Terminal, options: GridOptions, parent?: WidgetContainer); destruct(): void; render(): void; align(): void; attachWidget<WidgetType>(col: number, line: number, width: number, height: number, WidgetClass: WidgetConstructor<WidgetType>, options: any): WidgetType; dettachWidget(widget: Widget): boolean; getWidgetAt(column: number, line: number): Widget; [Symbol.iterator](startWidget?: Widget | number): BidirectionalIterator<Widget>; getWidgetGrid(column: number, line: number): Widget; getCellSize(column: number, line: number): TileSize; protected updateOptions(changes: GridOptions): void; private calculateBorders; private renderBorders; private alignWidgets; private recalculateCellSizes; private resizedEventHandler; }