warscript
Version:
A typescript library for Warcraft III using Warpack.
141 lines (140 loc) • 6.2 kB
TypeScript
/// <reference types="@typescript-to-lua/language-extensions" />
/** @noSelfInFile */
import { Handle, HandleDestructor } from "./handle";
import { Player } from "./player";
import { Event, TriggerEvent } from "../../event";
import { Color } from "./color";
type Collector<T extends any[]> = () => LuaMultiReturn<T>;
declare class FrameEvent<T extends any[] = []> extends TriggerEvent<[Player, ...T]> {
static readonly playerCollector: Collector<[Player]>;
constructor(frame: Frame, eventType: jframeeventtype, c: Collector<[Player, ...T]>);
}
type FrameSubclass<T extends Frame> = (new (frame: jframehandle) => T) & typeof Frame;
export type FramePoint = jframepointtype;
export declare namespace FramePoint {
const TOP_LEFT: FramePoint;
const TOP: FramePoint;
const TOP_RIGHT: FramePoint;
const LEFT: FramePoint;
const CENTER: FramePoint;
const RIGHT: FramePoint;
const BOTTOM_LEFT: FramePoint;
const BOTTOM: FramePoint;
const BOTTOM_RIGHT: FramePoint;
}
export declare class Frame extends Handle<jframehandle> {
static readonly GAME_UI: Frame;
static readonly CONSOLE_UI: Frame;
static readonly CONSOLE_UI_BACKDROP: Frame;
static readonly WORLD: Frame;
static readonly CHAT: Frame;
static readonly TIME_OF_DAY_CLOCK: Frame;
static get leftBorder(): Frame;
static get rightBorder(): Frame;
static get minX(): number;
static get maxX(): number;
static readonly centerX: number;
static readonly minY: number;
static readonly maxY: number;
static readonly centerY: number;
static isMouseOnWorld(player?: Player): boolean;
protected onDestroy(): HandleDestructor;
private events?;
private mouseInside?;
private hideCounter;
private disableCounter;
private _scale?;
private getEvent;
get visible(): boolean;
set visible(visible: boolean);
get enabled(): boolean;
set enabled(enabled: boolean);
get parent(): Frame;
set parent(parent: Frame);
get text(): string;
set text(text: string);
set textSizeLimit(size: number);
get textSizeLimit(): number;
set value(value: number);
get value(): number;
set height(height: number);
get height(): number;
set width(width: number);
get width(): number;
set alpha(alpha: number);
get alpha(): number;
get scale(): number;
set scale(v: number);
get name(): string;
get onClick(): Event<[Player]>;
get onCheckboxChecked(): FrameEvent;
get onCheckboxUnchecked(): FrameEvent;
get onEnter(): FrameEvent;
get onMouseDoubleClick(): FrameEvent;
get onMouseDown(): Event<[Player, jmousebuttontype]>;
get onMouseEnter(): FrameEvent;
get onMouseLeave(): FrameEvent;
get onMouseUp(): FrameEvent;
get onMouseWheel(): FrameEvent<[number]>;
get popupMenuItemChangeEvent(): FrameEvent<[
popupMenu: Frame,
previousValue: number,
newValue: number
]>;
get valueChangeLocalEvent(): Event<[
editBox: Frame,
previousValue: number,
newValue: number
]>;
get onSliderValueChanged(): FrameEvent<[number]>;
get onEditBoxTextChange(): FrameEvent<[string]>;
get onEditBoxTextChangeLocal(): Event<[
editBox: Frame,
previousValue: string,
newValue: string
]>;
get onEnable(): Event;
get onDisable(): Event;
/** Increments the inner hide counter. The frame is hidden whenever the counter is above 0. */
hide(): void;
/** Decrements the inner hide counter. The frame is shown whenever the counter is 0. */
show(): void;
/** Increments the inner disable counter. The frame is disabled whenever the counter is above 0. */
disable(): void;
/** Decrements the inner disable counter. The frame is hidden whenever the counter is 0. */
enable(): void;
addText(text: string): void;
clearAllPoints(): void;
getChild(index: number): Frame;
getChildrenCount(): number;
setSize(width: number, height: number): void;
setPoint(point: jframepointtype, relative: Frame, relativePoint: jframepointtype, x: number, y: number): void;
setAbsPoint(point: jframepointtype, x: number, y: number): void;
setAllPoints(other: Frame): void;
setFont(filename: string, height: number, flags: number): void;
setTexture(filename: string, flag: number, blend: boolean): void;
setTextAlignment(vert: jtextaligntype, horz: jtextaligntype): void;
setVertexColor(color: Color): void;
setTextColor(color: Color): void;
setTooltip(tooltip: Frame): void;
setMinMaxValue(minValue: number, maxValue: number): void;
setStepSize(stepSize: number): void;
setFocus(flag: boolean): void;
resetFocus(): void;
click(): void;
private static onKeyPressEvent?;
static get onKeyPress(): Event<[Player, joskeytype, oskeymeta]>;
private static onKeyReleaseEvent?;
static get onKeyRelease(): Event<[Player, joskeytype, oskeymeta]>;
static get onMouseUp(): Event<[Player, jmousebuttontype, number, number]>;
private static onMouseDownEvent?;
static get onMouseDown(): Event<[Player, jmousebuttontype, number, number]>;
static get onMouseMove(): Event<[player: Player, x: number, y: number]>;
static get onMouseMoveLocal(): Event<[x: number, y: number]>;
static createSimple<T extends Frame>(this: FrameSubclass<T>, name: string, parent?: Frame, createContext?: number): T;
static create<T extends Frame>(this: FrameSubclass<T>, name: string, parent: Frame, priority?: number, createContext?: number): T;
static createByType<T extends Frame>(this: FrameSubclass<T>, typeName: "BACKDROP" | "BUTTON" | "CHATDISPLAY" | "CHECKBOX" | "CONTROL" | "DIALOG" | "EDITBOX" | "FRAME" | "GLUEBUTTON" | "GLUECHECKBOX" | "GLUETEXTBUTTON" | "HIGHLIGHT" | "LISTBOX" | "MENU" | "POPUPMENU" | "SCROLLBAR" | "SLIDER" | "TEXT" | "TEXTAREA" | "TEXTBUTTON", name: string, parent: Frame, inherits?: string, createContext?: number): T;
static byName<T extends Frame>(this: FrameSubclass<T>, name: string, context?: number): T;
static byOrigin<T extends Frame>(this: FrameSubclass<T>, frameType: joriginframetype, index?: number): T;
}
export {};