interface ScratchPaintState {
    bitBrushSize: number;
    bitEraserSize: number;
    brushMode: { brushSize: number };
    clipboard: { items: Base[]; pasteOffset: number };
    color: {
        eyeDropper: {
            active: boolean;
            callback: (color: string) => void;
            previousTool: Mode;
        };
        fillColor: ColorStyle;
        strokeColor: ColorStyle;
        strokeWidth: number;
    };
    cursor: Cursor;
    eraserMode: { brushSize: number };
    fillBitmapShapes: boolean;
    fillMode: { colorIndex: ColorIndex; gradientType: null | GradientType };
    font: string;
    format: null | Format;
    hoveredItemId: null | number;
    layout: { rtl: boolean };
    modals: Record<ScratchPaint.Modal, boolean>;
    mode: Mode;
    selectedItems: Base[];
    textEditTarget: null | number;
    undo: { pointer: number; stack: UndoSnapshot[] };
    viewBounds: Matrix;
    zoomLevels: { currentZoomLevelId: string } & Record<string, Matrix>;
}

Properties

bitBrushSize: number
bitEraserSize: number
brushMode: { brushSize: number }
clipboard: { items: Base[]; pasteOffset: number }
color: {
    eyeDropper: {
        active: boolean;
        callback: (color: string) => void;
        previousTool: Mode;
    };
    fillColor: ColorStyle;
    strokeColor: ColorStyle;
    strokeWidth: number;
}
cursor: Cursor
eraserMode: { brushSize: number }
fillBitmapShapes: boolean
fillMode: { colorIndex: ColorIndex; gradientType: null | GradientType }
font: string
format: null | Format
hoveredItemId: null | number
layout: { rtl: boolean }
modals: Record<ScratchPaint.Modal, boolean>
mode: Mode
selectedItems: Base[]
textEditTarget: null | number
undo: { pointer: number; stack: UndoSnapshot[] }
viewBounds: Matrix
zoomLevels: { currentZoomLevelId: string } & Record<string, Matrix>