@turbowarp/types-tw
    Preparing search index...

    Interface ScratchGUIState

    interface ScratchGUIState {
        alerts: {
            alertsList: {
                alertId?: Alert;
                alertType: AlertType;
                closeButton?: boolean;
                content?: Element;
                extensionId?: string;
                iconSpinner?: boolean;
                iconURL?: string;
                level: AlertLevel;
                message?: string;
                showDownload?: boolean;
                showReconnect?: boolean;
                showSaveNow?: boolean;
            }[];
            visible: boolean;
        };
        assetDrag: {
            currentOffset: { x: number; y: number }
            | null;
            dragging: boolean;
            dragType?: DragType;
            img: string | null;
            index?: number;
            payload?: DragPayload;
        };
        blockDrag: boolean;
        cards: {
            activeDeckId: string
            | null;
            content: Record<Deck, unknown>;
            dragging: boolean;
            expanded: boolean;
            step: number;
            visible: boolean;
            x: number;
            y: number;
        };
        colorPicker: { active: boolean; callback(color: string): void };
        connectionModal: { extensionId: string | null };
        customProcedures: {
            active: boolean;
            callback: ((mutation: Element) => void) | null;
            mutator: Element | null;
        };
        editorTab: { activeTabIndex: ActiveTabIndex };
        fontsLoaded: boolean;
        hoveredTarget: { receivedBlocks: boolean; sprite: string | null };
        menus: Record<ScratchGUI.Menu, boolean>;
        micIndicator: boolean;
        modals: Record<ScratchGUI.Modal, boolean>;
        mode: {
            hasEverEnteredEditor: boolean;
            isFullScreen: boolean;
            isPlayerOnly: boolean;
            showBranding: boolean;
        };
        monitorLayout: {
            monitors: Record<
                string,
                {
                    lowerEnd: { x: number; y: number };
                    upperStart: { x: number; y: number };
                },
            >;
            savedMonitorPositions: Record<string, { x: number; y: number }>;
        };
        monitors: OrderedMap;
        projectChanged: boolean;
        projectState: {
            error: unknown;
            loadingState: LoadingState;
            projectData: ProjectData
            | null;
            projectId: string;
        };
        projectTitle: string;
        restoreDeletion: {
            deletedItem: ""
            | DeletedItemType;
            restoreFun: (() => void) | null;
        };
        stageSize: { stageSize: StageDisplaySize };
        targets: {
            editingTarget?: string | null;
            highlightedTargetId: string | null;
            highlightedTargetTime: number | null;
            sprites: Record<string, RenderedTarget & { order: number }>;
            stage: {} | RenderedTarget;
        };
        timeout: { autoSaveTimeoutId: number
        | null };
        toolbox: { toolboxXML: string };
        vm: VM;
        vmStatus: { running: boolean; started: boolean; turbo: boolean };
        workspaceMetrics: {
            targets: Record<
                string,
                { scale: number; scrollX: number; scrollY: number },
            >;
        };
    }
    Index

    Properties

    alerts: {
        alertsList: {
            alertId?: Alert;
            alertType: AlertType;
            closeButton?: boolean;
            content?: Element;
            extensionId?: string;
            iconSpinner?: boolean;
            iconURL?: string;
            level: AlertLevel;
            message?: string;
            showDownload?: boolean;
            showReconnect?: boolean;
            showSaveNow?: boolean;
        }[];
        visible: boolean;
    }
    assetDrag: {
        currentOffset: { x: number; y: number } | null;
        dragging: boolean;
        dragType?: DragType;
        img: string | null;
        index?: number;
        payload?: DragPayload;
    }
    blockDrag: boolean
    cards: {
        activeDeckId: string | null;
        content: Record<Deck, unknown>;
        dragging: boolean;
        expanded: boolean;
        step: number;
        visible: boolean;
        x: number;
        y: number;
    }
    colorPicker: { active: boolean; callback(color: string): void }
    connectionModal: { extensionId: string | null }
    customProcedures: {
        active: boolean;
        callback: ((mutation: Element) => void) | null;
        mutator: Element | null;
    }
    editorTab: { activeTabIndex: ActiveTabIndex }
    fontsLoaded: boolean
    hoveredTarget: { receivedBlocks: boolean; sprite: string | null }
    menus: Record<ScratchGUI.Menu, boolean>
    micIndicator: boolean
    modals: Record<ScratchGUI.Modal, boolean>
    mode: {
        hasEverEnteredEditor: boolean;
        isFullScreen: boolean;
        isPlayerOnly: boolean;
        showBranding: boolean;
    }
    monitorLayout: {
        monitors: Record<
            string,
            {
                lowerEnd: { x: number; y: number };
                upperStart: { x: number; y: number };
            },
        >;
        savedMonitorPositions: Record<string, { x: number; y: number }>;
    }
    monitors: OrderedMap
    projectChanged: boolean
    projectState: {
        error: unknown;
        loadingState: LoadingState;
        projectData: ProjectData | null;
        projectId: string;
    }
    projectTitle: string
    restoreDeletion: {
        deletedItem: "" | DeletedItemType;
        restoreFun: (() => void) | null;
    }
    stageSize: { stageSize: StageDisplaySize }

    Type Declaration

    • stageSize: StageDisplaySize

      Will only be large or small. Large constrained is determined elsewhere.

    targets: {
        editingTarget?: string | null;
        highlightedTargetId: string | null;
        highlightedTargetTime: number | null;
        sprites: Record<string, RenderedTarget & { order: number }>;
        stage: {} | RenderedTarget;
    }
    timeout: { autoSaveTimeoutId: number | null }
    toolbox: { toolboxXML: string }
    vm: VM
    vmStatus: { running: boolean; started: boolean; turbo: boolean }
    workspaceMetrics: {
        targets: Record<
            string,
            { scale: number; scrollX: number; scrollY: number },
        >;
    }