diff --git a/A00_Common/spreadsheet/spreadsheet_grid.ts b/A00_Common/spreadsheet/spreadsheet_grid.ts index 7118a752..23dc5c68 100644 --- a/A00_Common/spreadsheet/spreadsheet_grid.ts +++ b/A00_Common/spreadsheet/spreadsheet_grid.ts @@ -399,6 +399,7 @@ export function createGrid(ctx: SpreadsheetContext): GridHandle { paneBR.scrollLeft *= zoom / before; paneBR.scrollTop *= zoom / before; layoutPanes(); + root.dispatchEvent(new CustomEvent("aislo-grid-zoom", { detail: { zoom }, bubbles: true })); } root.addEventListener("wheel", onWheel, { passive: false }); @@ -935,6 +936,10 @@ export function createGrid(ctx: SpreadsheetContext): GridHandle { return { layer: paneLayerOf(r, c), box: screenBoxOf(r, c) }; } + function getZoom(): number { + return zoom; + } + function destroy(): void { resize.disconnect(); paneBR.removeEventListener("scroll", onScroll); @@ -954,6 +959,7 @@ export function createGrid(ctx: SpreadsheetContext): GridHandle { reveal, visibleRange, editorSlot, + zoom: getZoom, destroy, }; } diff --git a/A00_Common/spreadsheet/spreadsheet_view_types.ts b/A00_Common/spreadsheet/spreadsheet_view_types.ts index 4c9a97e6..3695a4b4 100644 --- a/A00_Common/spreadsheet/spreadsheet_view_types.ts +++ b/A00_Common/spreadsheet/spreadsheet_view_types.ts @@ -69,6 +69,8 @@ export interface GridHandle { visibleRange(): CellRange; /** 편집기를 얹을 층과 칸 자리(화면 좌표 · 병합이면 전체) — D 편집기가 씀 */ editorSlot(r: number, c: number): { layer: HTMLElement; box: CellBox }; + /** 지금 확대(1 = 100%) — 바뀌면 `root` 에서 CustomEvent("aislo-grid-zoom", { detail: { zoom } }) 를 쏨(E 상태줄이 들음) */ + zoom(): number; destroy(): void; }