Dotloom TypeScript API
    Preparing search index...

    Interface Tool

    A tool: a small state machine driven by pointer and keyboard input (idle → start → preview → commit | cancel). Tools only issue engine commands.

    interface Tool {
        cursor?: string;
        id: string;
        label: string;
        shortcut?: string;
        snaps?: boolean;
        activate?(ctx: ToolContext): void;
        cancel?(ctx: ToolContext, reason: CancelReason): void | Promise<void>;
        capturesKeyboard?(): boolean;
        deactivate?(ctx: ToolContext): void;
        doubleClick?(ctx: ToolContext, p: ToolPointer): void | Promise<void>;
        key?(ctx: ToolContext, key: InputKey): boolean | Promise<boolean>;
        pointerDown?(ctx: ToolContext, p: ToolPointer): void | Promise<void>;
        pointerMove?(ctx: ToolContext, p: ToolPointer): void | Promise<void>;
        pointerUp?(ctx: ToolContext, p: ToolPointer): void | Promise<void>;
        value?(ctx: ToolContext, text: string): boolean | Promise<boolean>;
    }

    Implemented by

    Index
    cursor?: string
    id: string
    label: string

    i18n key or plain label.

    shortcut?: string

    Single-key shortcut (e.g. l).

    snaps?: boolean

    Whether pointer positions are snapped (default true).