import { IControl } from "../UiControl"; import { ButtonType, ButtonStyle, AlignType, VisualTextLayout, CustomDrawStage, Rect, Std5State } from "../UiCommon"; import { IVisual } from "../UiVisual"; import { WindowLike } from "./UiWindow"; import { DrawTextFlag, IPainter, PainterState } from "../UiPainter"; import { Vec4 } from "../../Math"; export declare enum ButtonCustomDrawBehavior { DoDefault = 0, Skip = 1, NewTextColor = 16, NewRect = 32, NewFormat = 64 } export declare class ButtonCustomDrawResult { Behavior: ButtonCustomDrawBehavior; NewTextColor: Vec4; NewRect: Rect; NewFormat: DrawTextFlag; } export declare enum ButtonCustomDrawPart { Button = 0, ButtonMain = 1, ButtonSecondary = 2, ButtonDrop = 3, Text = 4 } export declare class ButtonCustomDraw { Painter: IPainter; Part: ButtonCustomDrawPart; Stage: CustomDrawStage; RectButton: Rect; Rect: Rect; Text: string; TextFlag: DrawTextFlag; State: PainterState; static FromNative(r: ButtonCustomDraw): ButtonCustomDraw; } export interface IButton extends IControl { new (window: WindowLike, key?: string | number): IButton; SetText(s: string): Button; GetText(): string; SetButtonType(n: ButtonType): Button; GetButtonType(): ButtonType; SetButtonStyle(n: ButtonStyle): Button; GetButtonStyle(): ButtonStyle; SetDrop(c: IControl): IControl; GetDrop(): IControl; SetAlignHorz(n: AlignType): Button; GetAlignHorz(): AlignType; SetVisualTextLayout(n: VisualTextLayout): Button; GetVisualTextLayout(): VisualTextLayout; SetVisual(v: IVisual): IVisual; GetVisual(): IVisual; OnClick(fn: (sender: Button) => void): Button; OnDrop(fn: (sender: Button) => void): Button; OnCustomDraw(fn: (sender: Button, cdp: ButtonCustomDraw) => ButtonCustomDrawResult): Button; } declare const Button_base: IButton; export declare class Button extends Button_base { private m_Drop; private m_Visual; SetDrop(c: IControl): IControl; SetVisual(v: IVisual): IVisual; OnCustomDraw(fn: (sender: Button, cdp: ButtonCustomDraw) => ButtonCustomDrawResult): Button; } export {};