import { utils } from "pixi.js"; import { DAlignHorizontal } from "./d-align-horizontal"; import { DAlignVertical } from "./d-align-vertical"; import { DBaseStateSet } from "./d-base-state-set"; import { DDynamicText } from "./d-dynamic-text"; import { DThemeFont } from "./d-font"; import { DStateAwareOrValueMightBe } from "./d-state-aware"; import { DTextPieceAlign } from "./d-text-piece-align"; import { DTextPieceStyle, DTextPieceStyleOptions } from "./d-text-piece-style"; import { DDynamicTextStyleWordWrap } from "./d-dynamic-text-style-word-wrap"; export interface DTextPieceTextAlignOptions { vertical?: keyof typeof DAlignVertical | DAlignVertical; horizontal?: keyof typeof DAlignHorizontal | DAlignHorizontal; } export type DTextPieceFormatter = (value: VALUE, caller: any) => string; export interface DTextPieceOptions { value?: DStateAwareOrValueMightBe; color?: DStateAwareOrValueMightBe; alpha?: DStateAwareOrValueMightBe; style?: DTextPieceStyleOptions; align?: DTextPieceTextAlignOptions; formatter?: DTextPieceFormatter; } export interface DThemeTextPiece extends DThemeFont { getTextFormatter(): DTextPieceFormatter; /** * Returns a new text value. * Called to initialize a text value if a text value is not given. */ newTextValue(): DStateAwareOrValueMightBe; /** * Returns a text value. * Called to get a text vale if there is no text value. * * @param state a state */ getTextValue(state: DBaseStateSet): VALUE | undefined; getTextAlignVertical(): DAlignVertical; getTextAlignHorizontal(): DAlignHorizontal; getTextStyleClipping(): boolean; getTextStyleFitting(): boolean; getTextStyleWordWrap(): DDynamicTextStyleWordWrap; isOverflowMaskEnabled(): boolean; } export interface DTextPiece extends utils.EventEmitter { value: DStateAwareOrValueMightBe; getValue(): DStateAwareOrValueMightBe; setValue(value: DStateAwareOrValueMightBe, forcibly?: boolean): void; compute(forcibly?: boolean): void; formatter: DTextPieceFormatter; readonly computed: VALUE | undefined; color: DStateAwareOrValueMightBe; alpha: DStateAwareOrValueMightBe; readonly align: DTextPieceAlign; readonly style: DTextPieceStyle; readonly object: DDynamicText | null | undefined; show(): this; hide(): this; isShown(): boolean; destroy(): this; }