lazy-widgets
Version:
Typescript retained mode GUI for the HTML canvas API
37 lines (36 loc) • 1.35 kB
TypeScript
export declare const enum TextInputHandlerEventType {
Dismiss = 0,
Input = 1,
MoveCursor = 2
}
export type TextInputHandlerEventData = [
type: TextInputHandlerEventType.Dismiss
] | [
type: TextInputHandlerEventType.Input,
text: string,
selectStart: number,
selectEnd: number
] | [
type: TextInputHandlerEventType.MoveCursor,
selectStart: number,
selectEnd: number
];
export type TextInputHandlerListener = (...eventData: TextInputHandlerEventData & {
0: TextInputHandlerEventType;
}) => void;
export declare abstract class TextInputHandler {
readonly listener: TextInputHandlerListener;
readonly domElems: ReadonlyArray<HTMLElement>;
/**
* Create a new text input handler. Note that the signature of this
* constructor in base classes must have a single `listener` argument. Must
* not change the current focus.
*/
constructor(listener: TextInputHandlerListener, domElems: ReadonlyArray<HTMLElement>);
/** Update the text and selection of the input. Should focus the input. */
abstract askInput(currentText: string, selectStart: number, selectEnd: number): void;
/** Change selection of input. */
abstract select(selectStart: number, selectEnd: number): void;
/** Dismiss input handler. Must call super if overridden. */
dismiss(): void;
}