UNPKG

ascii-ui

Version:

Graphic terminal emulator for HTML canvas elements

33 lines (32 loc) 1.21 kB
import { Terminal, TilePosition, TileSize } from './Terminal'; import { WidgetContainer } from './WidgetContainer'; export declare type WidgetConstructor<WidgetClass> = new (terminal: Terminal, options?: any, parent?: WidgetContainer) => WidgetClass; export interface WidgetOptions { col?: number; line?: number; width?: number; height?: number; focusable?: boolean; tabIndex?: number; } export declare abstract class Widget<OptionsType extends WidgetOptions = WidgetOptions> { static defaultOptions: WidgetOptions; protected terminal: Terminal; protected parent?: WidgetContainer; protected options: OptionsType; protected focused: boolean; protected allocated: boolean; constructor(terminal: Terminal, options?: OptionsType, parent?: WidgetContainer); destruct(): void; getParent(): WidgetContainer; setOptions(options: OptionsType): void; getSize(): TileSize; getPosition(): TilePosition; isAt(column: number, line: number): boolean; isFocusable(): boolean; focus(): boolean; blur(): boolean; isFocused(): boolean; abstract render(): void; protected abstract updateOptions(changedOptions: OptionsType): void; }