A backend-provided object. Each Context instance can display a node tree on the screen.

In Composed Mode, Context provides the core rendering context for glass-easel.

interface Context {
    dropBackendAfterRelease?: boolean;
    mode: Composed;
    addPriorEventListener?(listener): void;
    addStyleSheetProperty?(sheetIndex, ruleIndex, inlineStyle, callback): void;
    addStyleSheetRule?(mediaQueryStr, selector, callback): void;
    appendStyleSheetPath(path, styleScope?): number;
    createContext?(options, cb): void;
    createElement(logicalName, stylingName): glassEasel.composedBackend.Element;
    createFragment(): glassEasel.composedBackend.Element;
    createMediaQueryObserver?(status, listener): Observer;
    createTextNode(content): glassEasel.composedBackend.Element;
    destroy(): void;
    disableStyleSheet(index): void;
    elementFromPoint?(left, top, cb): void;
    getActiveElement?(cb): void;
    getDevicePixelRatio(): number;
    getFocusedNode?(cb): void;
    getRootNode(): glassEasel.composedBackend.Element;
    getStyleSheetIndexForNewRules?(callback): void;
    getTheme(): string;
    getWindowHeight(): number;
    getWindowWidth(): number;
    modifyStyleSheetRuleSelector?(sheetIndex, ruleIndex, selector, callback): void;
    onEvent(listener): void;
    onThemeChange?(cb): void;
    onWindowResize?(cb): void;
    performanceTraceEnd?(id, cb): void;
    performanceTraceStart?(): number;
    registerStyleSheetContent(path, content): void;
    removePriorEventListener?(listener): void;
    removeStyleSheetProperty?(sheetIndex, ruleIndex, propertyIndex, callback): void;
    render(cb): void;
    replaceStyleSheetAllProperties?(sheetIndex, ruleIndex, inlineStyle, callback): void;
    replaceStyleSheetProperty?(sheetIndex, ruleIndex, propertyIndex, inlineStyle, callback): void;
    resetStyleSheetRule?(sheetIndex, ruleIndex, callback): void;
    setFocusedNode?(target): void;
    setStyleSheetPropertyDisabled?(sheetIndex, ruleIndex, propertyIndex, disabled, callback): void;
    startOverlayInspect?(cb): void;
    stopOverlayInspect?(): void;
}

Hierarchy

Implemented by

Properties

dropBackendAfterRelease?: boolean
mode: Composed

Protocol mode. Always BackendMode.Composed in this protocol.

Methods

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • inlineStyle: string
    • callback: ((propertyIndex) => void)
        • (propertyIndex): void
        • Parameters

          • propertyIndex: null | number

          Returns void

    Returns void

  • Parameters

    • mediaQueryStr: string
    • selector: string
    • callback: ((ruleIndex) => void)
        • (ruleIndex): void
        • Parameters

          • ruleIndex: null | number

          Returns void

    Returns void

  • Insert a style sheet item whose content comes from the specified path. styleScope is an optional scope identifier. Returns the new style sheet index. If styleScope is not a positive integer, it is treated as empty (globally effective).

    Parameters

    • path: string
    • Optional styleScope: number

    Returns number

  • Parameters

    • status: MediaQueryStatus
    • listener: ((res) => void)
        • (res): void
        • Parameters

          • res: {
                matches: boolean;
            }
            • matches: boolean

          Returns void

    Returns Observer

  • Destroy this Context instance. glass-easel does not call this directly; other modules should call it.

    Returns void

  • Disable an inserted style sheet.

    Parameters

    • index: number

    Returns void

  • Parameters

    • left: number
    • top: number
    • cb: ((node) => void)

    Returns void

  • Parameters

    • cb: ((node) => void)

    Returns void

  • Get the device pixel ratio of this Context.

    Returns number

  • Parameters

    • cb: ((node) => void)
        • (node): void
        • Parameters

          Returns void

    Returns void

  • Parameters

    • callback: ((sheetIndex) => void)
        • (sheetIndex): void
        • Parameters

          • sheetIndex: number

          Returns void

    Returns void

  • Get the current theme of this Context, typically "light" or "dark".

    Returns string

  • Get the display area height of this Context.

    Returns number

  • Get the display area width of this Context.

    Returns number

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • selector: string
    • callback: ((ruleIndex) => void)
        • (ruleIndex): void
        • Parameters

          • ruleIndex: null | number

          Returns void

    Returns void

  • Set the global event callback. This callback is the only one. Composed Mode only; for Shadow Mode see the other onEvent signature.

    Parameters

    Returns void

  • Parameters

    • cb: ((res) => void)
        • (res): void
        • Parameters

          • res: {
                theme: string;
            }
            • theme: string

          Returns void

    Returns void

  • Parameters

    • cb: ((res) => void)
        • (res): void
        • Parameters

          • res: {
                devicePixelRatio: number;
                height: number;
                width: number;
            }
            • devicePixelRatio: number
            • height: number
            • width: number

          Returns void

    Returns void

  • Parameters

    • id: number
    • cb: ((stats) => void)
        • (stats): void
        • Parameters

          • stats: {
                endTimestamp: number;
                startTimestamp: number;
            }
            • endTimestamp: number
            • startTimestamp: number

          Returns void

    Returns void

  • Returns number

  • Register a style sheet. path is the style sheet path, content is the corresponding CSS style sheet in a format the backend can interpret. If the CSS contains @import or similar references, the referenced content may also be registered via another registerStyleSheetContent call, either before or after this one.

    Parameters

    • path: string
    • content: unknown

    Returns void

  • Parameters

    Returns void

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • propertyIndex: number
    • callback: ((propertyIndex) => void)
        • (propertyIndex): void
        • Parameters

          • propertyIndex: null | number

          Returns void

    Returns void

  • Wait for the next render to complete (align with the backend vsync). The backend must ensure the callback is asynchronous. Setting new properties inside the callback should trigger CSS transitions.

    Parameters

    • cb: ((err) => void)
        • (err): void
        • Parameters

          • err: null | Error

          Returns void

    Returns void

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • inlineStyle: string
    • callback: ((propertyIndex) => void)
        • (propertyIndex): void
        • Parameters

          • propertyIndex: null | number

          Returns void

    Returns void

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • propertyIndex: number
    • inlineStyle: string
    • callback: ((propertyIndex) => void)
        • (propertyIndex): void
        • Parameters

          • propertyIndex: null | number

          Returns void

    Returns void

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • callback: ((ruleIndex) => void)
        • (ruleIndex): void
        • Parameters

          • ruleIndex: null | number

          Returns void

    Returns void

  • Returns void

  • Parameters

    • sheetIndex: number
    • ruleIndex: number
    • propertyIndex: number
    • disabled: boolean
    • callback: ((propertyIndex) => void)
        • (propertyIndex): void
        • Parameters

          • propertyIndex: null | number

          Returns void

    Returns void

  • Parameters

    • cb: ((event, node) => void)
        • (event, node): void
        • Parameters

          Returns void

    Returns void

  • Returns void