/// /** @noSelfInFile */ /** @noSelfInFile */ import { Handle } from "./handle"; /** * Warcraft III's UI uses a proprietary format known as FDF (Frame Definition Files). * This class provides the ability to manipulate and create them dynamically through code. * * @example Create a simple button. * ```ts * const gameui = Frame.fromOrigin(ORIGIN_FRAME_GAME_UI, 0); * if (gameui) { * // Create a "GLUEBUTTON" named "Facebutton", the clickable Button, for game UI * const buttonFrame = Frame.createType("FaceButton", gameui, 0, "GLUEBUTTON", ""); * if (buttonFrame) { * // Create a BACKDROP named "FaceButtonIcon", the visible image, for buttonFrame. * const buttonIconFrame = Frame.createType("FaceButton", buttonFrame, 0, "BACKDROP", ""); * // buttonIconFrame will mimic buttonFrame in size and position * buttonIconFrame?.setAllPoints(buttonFrame); * // Set a Texture * buttonIconFrame?.setTexture("ReplaceableTextures\\CommandButtons\\BTNSelectHeroOn", 0, true); * // Place the buttonFrame to the center of the screen * buttonFrame.setAbsPoint(FRAMEPOINT_CENTER, 0.4, 0.3); * // Give that buttonFrame a size * buttonFrame.setSize(0.05, 0.05); * } *} *``` * * There are many aspects to modifying the UI and it can become complicated, so here are some * guides: * * https://www.hiveworkshop.com/threads/ui-frames-starting-guide.318603/ * https://www.hiveworkshop.com/pastebin/913bd439799b3d917e5b522dd9ef458f20598/ * https://www.hiveworkshop.com/tags/ui-fdf/ */ export declare class Frame extends Handle { /** * @deprecated use `Frame.create` instead. * @param name The name of the frame to be accessed with `Frame.fromName`. * @param owner The parent frame. * @param priority * @param createContext The ID assigned to a frame to be accessed with `Frame.fromName`. This value does not have to be unique and can be overwritten. */ constructor(name: string, owner: Frame, priority: number, createContext: number); /** * @deprecated use `Frame.createSimple` instead. * * https://www.hiveworkshop.com/threads/ui-simpleframes.320385/ * @param name The name of the frame to be accessed with `Frame.fromName`. * @param priority * @param owner The parent frame. * @param createContext The ID assigned to a frame to be accessed with `Frame.fromName`. This value does not have to be unique and can be overwritten. */ constructor(name: string, owner: Frame, priority: number); /** * @deprecated use `Frame.createType` instead. * @param name The name of the frame to be accessed with `Frame.fromName`. * @param owner The parent frame. * @param priority * @param createContext The ID assigned to a frame to be accessed with `Frame.fromName`. This value does not have to be unique and can be overwritten. * @param typeName The type of Frame. * @param inherits The name of the Frame it inherits. */ constructor(name: string, owner: Frame, priority: number, createContext: number, typeName: string, inherits: string); /** * Creates a Frame. * @param name The name of the frame to be accessed with `Frame.fromName`. * @param owner The parent frame. * @param priority Should be a natural number (greater equal to 0). * @param createContext The ID assigned to a frame to be accessed with `Frame.fromName`. This value does not have to be unique and can be overwritten. */ static create(name: string, owner: Frame, priority: number, createContext: number): Frame | undefined; /** * Creates a SimpleFrame. * * https://www.hiveworkshop.com/threads/ui-simpleframes.320385/ * @param name The name of the frame to be accessed with `Frame.fromName`. * @param owner The parent frame. * @param createContext The ID assigned to a frame to be accessed with `Frame.fromName`. This value does not have to be unique and can be overwritten. */ static createSimple(name: string, owner: Frame, createContext: number): Frame | undefined; /** * Create a Frame by type. * @param name The name of the frame to be accessed with `Frame.fromName`. * @param owner The parent frame. * @param createContext The ID assigned to a frame to be accessed with `Frame.fromName`. This value does not have to be unique and can be overwritten. * @param typeName The type of Frame. * @param inherits The name of the Frame it inherits. */ static createType(name: string, owner: Frame, createContext: number, typeName: string, inherits: string): Frame | undefined; set alpha(alpha: number); get alpha(): number; get children(): Frame[]; get childrenCount(): number; set enabled(flag: boolean); get enabled(): boolean; set height(height: number); get height(): number; /** * @deprecated use `getParent` and `setParent` instead. */ set parent(parent: Frame); get parent(): Frame; set text(text: string); get text(): string; set textSizeLimit(size: number); get textSizeLimit(): number; set value(value: number); get value(): number; set visible(flag: boolean); get visible(): boolean; set width(width: number); get width(): number; addText(text: string): this; cageMouse(enable: boolean): this; clearPoints(): this; click(): this; destroy(): this; getChild(index: number): Frame | undefined; setAbsPoint(point: framepointtype, x: number, y: number): this; setAllPoints(relative: Frame): this; setAlpha(alpha: number): this; setEnabled(flag: boolean): this; setFocus(flag: boolean): this; setFont(filename: string, height: number, flags: number): this; setHeight(height: number): this; setLevel(level: number): this; setMinMaxValue(minValue: number, maxValue: number): this; setModel(modelFile: string, cameraIndex: number): this; getParent(): Frame | undefined; setParent(parent: Frame): this; setPoint(point: framepointtype, relative: Frame, relativePoint: framepointtype, x: number, y: number): this; setScale(scale: number): this; setSize(width: number, height: number): this; setSpriteAnimate(primaryProp: number, flags: number): this; setStepSize(stepSize: number): this; setText(text: string): this; setTextColor(color: number): this; setTextSizeLimit(size: number): this; setTexture(texFile: string, flag: number, blend: boolean): this; setTooltip(tooltip: Frame): this; setValue(value: number): this; setVertexColor(color: number): this; setVisible(flag: boolean): this; setWidth(width: number): this; static autoPosition(enable: boolean): void; static fromEvent(): Frame | undefined; static fromHandle(handle: framehandle | undefined): Frame | undefined; static fromName(name: string, createContext: number): Frame | undefined; static fromOrigin(frameType: originframetype, index: number): Frame | undefined; static getEventHandle(): frameeventtype | undefined; static getEventText(): number; static getEventValue(): number; static hideOrigin(enable: boolean): void; static loadTOC(filename: string): boolean; }