@opentui/core
Version:
OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)
104 lines (103 loc) • 4.01 kB
TypeScript
import { Renderable, type RenderableOptions } from "../Renderable";
import { Selection, type LocalSelectionBounds } from "../lib/selection";
import { TextBuffer } from "../text-buffer";
import { TextBufferView } from "../text-buffer-view";
import { RGBA } from "../lib/RGBA";
import { type RenderContext, type LineInfoProvider } from "../types";
import type { OptimizedBuffer } from "../buffer";
import type { LineInfo } from "../zig";
export interface TextBufferOptions extends RenderableOptions<TextBufferRenderable> {
fg?: string | RGBA;
bg?: string | RGBA;
selectionBg?: string | RGBA;
selectionFg?: string | RGBA;
selectable?: boolean;
attributes?: number;
wrapMode?: "none" | "char" | "word";
tabIndicator?: string | number;
tabIndicatorColor?: string | RGBA;
truncate?: boolean;
}
export declare abstract class TextBufferRenderable extends Renderable implements LineInfoProvider {
selectable: boolean;
protected _defaultFg: RGBA;
protected _defaultBg: RGBA;
protected _defaultAttributes: number;
protected _selectionBg: RGBA | undefined;
protected _selectionFg: RGBA | undefined;
protected _wrapMode: "none" | "char" | "word";
protected lastLocalSelection: LocalSelectionBounds | null;
protected _tabIndicator?: string | number;
protected _tabIndicatorColor?: RGBA;
protected _scrollX: number;
protected _scrollY: number;
protected _truncate: boolean;
protected textBuffer: TextBuffer;
protected textBufferView: TextBufferView;
protected _defaultOptions: {
fg: RGBA;
bg: RGBA;
selectionBg: undefined;
selectionFg: undefined;
selectable: true;
attributes: number;
wrapMode: "none" | "char" | "word";
tabIndicator: undefined;
tabIndicatorColor: undefined;
truncate: false;
};
constructor(ctx: RenderContext, options: TextBufferOptions);
protected onMouseEvent(event: any): void;
protected handleScroll(event: any): void;
get lineInfo(): LineInfo;
get lineCount(): number;
get virtualLineCount(): number;
get scrollY(): number;
set scrollY(value: number);
get scrollX(): number;
set scrollX(value: number);
get scrollWidth(): number;
get scrollHeight(): number;
get maxScrollY(): number;
get maxScrollX(): number;
protected updateViewportOffset(): void;
get plainText(): string;
get textLength(): number;
get fg(): RGBA;
set fg(value: RGBA | string | undefined);
get selectionBg(): RGBA | undefined;
set selectionBg(value: RGBA | string | undefined);
get selectionFg(): RGBA | undefined;
set selectionFg(value: RGBA | string | undefined);
get bg(): RGBA;
set bg(value: RGBA | string | undefined);
get attributes(): number;
set attributes(value: number);
get wrapMode(): "none" | "char" | "word";
set wrapMode(value: "none" | "char" | "word");
get tabIndicator(): string | number | undefined;
set tabIndicator(value: string | number | undefined);
get tabIndicatorColor(): RGBA | undefined;
set tabIndicatorColor(value: RGBA | string | undefined);
get truncate(): boolean;
set truncate(value: boolean);
protected onResize(width: number, height: number): void;
protected refreshLocalSelection(): boolean;
private updateLocalSelection;
protected updateTextInfo(): void;
private setupMeasureFunc;
shouldStartSelection(x: number, y: number): boolean;
onSelectionChanged(selection: Selection | null): boolean;
getSelectedText(): string;
hasSelection(): boolean;
getSelection(): {
start: number;
end: number;
} | null;
render(buffer: OptimizedBuffer, deltaTime: number): void;
protected renderSelf(buffer: OptimizedBuffer): void;
destroy(): void;
protected onFgChanged(newColor: RGBA): void;
protected onBgChanged(newColor: RGBA): void;
protected onAttributesChanged(newAttributes: number): void;
}