import { UpdateTouchInputBoundUC } from "../../TouchController/UC/UpdateTouchInputBound";
import { makeEmulateDisplaySizeHook } from "../../zSpace/UC/EmulateDisplaySizeHook";
import { makeFramedScreen, makeFramedScreenContainer, } from "../Entities";
import { makeFramedContainerPM, makeFramedScreenSizePM } from "../PM";
import { StandardLayoutUC } from "../UCs";
export const SLIDE_INFO_FRAMED_CONTAINER_ID = "slideInfo";
export const RENDER_CANVAS_FRAMED_CONTAINER_ID = "renderCanvas";
export const INSPECTOR_FRAMED_CONTAINER_ID = "inspector";
export const TOOLBAR_FRAMED_CONTAINER_ID = "toolbar";
export const LOWER_LETTERBOX_FRAMED_CONTAINER_ID = "lowerLetterBox";
export const UPPER_LETTERBOX_FRAMED_CONTAINER_ID = "upperLetterBox";
export const LEFT_LETTERBOX_FRAMED_CONTAINER_ID = "leftLetterBox";
export const RIGHT_LETTERBOX_FRAMED_CONTAINER_ID = "rightLetterBox";
export function setupStandardFramedScreen(appObjects, options) {
    const frameScreenAO = appObjects.getOrCreate("FramedScreen");
    const framedScreen = makeFramedScreen(frameScreenAO);
    makeFramedScreenSizePM(frameScreenAO);
    makeContainer(SLIDE_INFO_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    const canvas = makeContainer(RENDER_CANVAS_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    makeContainer(INSPECTOR_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    makeContainer(TOOLBAR_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    makeContainer(LOWER_LETTERBOX_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    makeContainer(UPPER_LETTERBOX_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    makeContainer(LEFT_LETTERBOX_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    makeContainer(RIGHT_LETTERBOX_FRAMED_CONTAINER_ID, framedScreen, appObjects);
    new UpdateTouchInputBoundUC(canvas.appObject);
    makeEmulateDisplaySizeHook(canvas.appObject);
    if (options?.dontSetupLayoutHook !== true) {
        new StandardLayoutUC(frameScreenAO);
    }
    return frameScreenAO;
}
function makeContainer(id, screen, appObjects) {
    const ao = appObjects.getOrCreate(id);
    const entity = makeFramedScreenContainer(ao);
    makeFramedContainerPM(ao);
    screen.addContainer(entity);
    return entity;
}
//# sourceMappingURL=setupStandardFramedScreen.js.map