phaser3-rex-plugins
Version:
167 lines (151 loc) • 3.99 kB
TypeScript
// import * as Phaser from 'phaser';
import Scrollable from '../utils/scrollable/Scrollable';
import CanvasInput from '../canvasinput/CanvasInput';
export default TextAreaInput;
declare namespace TextAreaInput {
/**
* Configuration options for creating a TextAreaInput.
*/
interface IConfig extends Scrollable.IConfig {
/**
* Spacing configuration for the TextAreaInput layout.
*/
space?: {
/**
* Left padding.
*/
left?: number,
/**
* Right padding.
*/
right?: number,
/**
* Top padding.
*/
top?: number,
/**
* Bottom padding.
*/
bottom?: number,
/**
* Spacing configuration for the text container.
*/
text?: number | {
/**
* Left padding.
*/
left?: number,
/**
* Right padding.
*/
right?: number,
/**
* Top padding.
*/
top?: number,
/**
* Bottom padding.
*/
bottom?: number,
},
/**
* Space above the header.
*/
header?: number,
/**
* Space below the footer.
*/
footer?: number,
},
/**
* Disable the scroller when set to false.
*/
scroller?: false,
/**
* Text input configuration or game object.
*/
text?: CanvasInput.IConfig | Phaser.GameObjects.GameObject,
/**
* Keep the area scrollable even when content fits.
*/
alwaysScrollable?: boolean,
/**
* Initial content string.
*/
content?: string
}
}
/**
* A scrollable text area input with editable content.
*/
declare class TextAreaInput extends Scrollable {
/**
* Create a TextAreaInput.
*
* @param scene - The Phaser.Scene that owns this TextAreaInput.
* @param config - Configuration options for the TextAreaInput.
*/
constructor(
scene: Phaser.Scene,
config?: TextAreaInput.IConfig
);
/**
* Replace the text content.
*
* @param text - The text to set.
* @returns This TextAreaInput instance.
*/
setText(text: string): this;
/**
* Append text content.
*
* @param text - The text to append.
* @returns This TextAreaInput instance.
*/
appendText(text: string): this;
/**
* Current text content.
*/
text: string;
/**
* Current input value.
*/
value: string;
/**
* Enable or disable read-only mode.
*
* @param enable - Whether to enable read-only mode.
* @returns This TextAreaInput instance.
*/
setReadOnly(enable?: boolean): this;
/**
* Whether the input is read-only.
*/
readOnly: boolean;
/**
* Scroll to a specific line index.
*
* @param lineIndex - The target line index.
* @returns This TextAreaInput instance.
*/
scrollToLine(lineIndex: number): this;
/**
* Scroll to the next line.
*
* @param lineCount - The number of lines to move.
* @returns This TextAreaInput instance.
*/
scrollToNextLine(lineCount?: number): this;
/**
* Current line index.
*/
readonly lineIndex: number;
/**
* Height of a line.
*/
readonly lineHeight: number;
/**
* Total number of lines.
*/
readonly linesCount: number;
}