- ZOOM(Z): 「윈도우 구석 지정, 축척 비율 (nX 또는 nXP) 입력 또는 [전체(A)/범위(E)/이전(P)/윈도우(W)] <실시간>:」 덧물음 · E · A = 범위 · P = 앞 화면 · W · 누름 = 두 구석 윈도우 · 2X = 배율 곱 · 빈 Enter = 실시간 안내 · 중심 · 동적 · 축척 · 객체 = 없음 안내 · 'Z 투명 · ⛶ 단추 = 바로 범위 - 약속 더함: SubPrompt.onText(꼴이 정해지지 않은 글 · nX) — routeTyped 가 덧물음에 먼저 물음 · undefined = 사다리 그대로(브레인 알림) - Shift+우클릭: 점 물음에서만 한 번 스냅 메뉴(시작점에서 · 두 점 사이의 중간 · 끝점 · 중간점 · 교차점 · 중심 · 사분점 · 수직 · 노드 · 근처점 · 없음) → 고른 이름을 친 것과 같은 길 · Esc · 바깥 누름 = 메뉴만 닫음(ic/snap-menu.ts) - 고르기 숨은 키워드 ALL · L · P(선택 도구 첫 점 대기 · 쉼 · 명령 안 자식) — 앞 고름에 더함 · 「n개를 찾음, 총 m개」 - 그립 물음 새 꼴 「** 신축 ** 신축점 지정 또는 [종료(X)]:」 · X = 놓음 · 기준점(B) · 복사(C) · 명령 취소(U) 없음 안내 - ↶ ↷ 단추 = undoCommand · redoCommand(끊고 되돌림) · 우클릭 = 명령 중 Enter · 쉴 때 반복(가-1 길 · 시험) - 시험: mouse-acad 마-2 더함(21) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
/** 화면 우하단 탐색 막대 (줌 표시·전체 보기) — 제목줄이 없는 화면(M02)은 되돌리기 · 다시 하기도 */
|
||
import type { FC } from 'react';
|
||
import { runCommandInput } from '../commands/run-command';
|
||
import { redoCommand, undoCommand } from '../inputController/prompt-input';
|
||
import { zoomExtents } from '../inputController/zoom-prompt';
|
||
import {
|
||
getScreenCanvasDrawController,
|
||
isDrawingReadOnly,
|
||
isHostSave,
|
||
isViewOnly,
|
||
} from '../state';
|
||
|
||
export const ViewControls: FC = () => {
|
||
const zoom = getScreenCanvasDrawController()?.getScreenScale() ?? 1;
|
||
// 제목줄(빠른 막대)이 없는 M02 양식 · 구조물 카드 — 고칠 수 있을 때만
|
||
const showUndo = isHostSave() && !isViewOnly() && !isDrawingReadOnly();
|
||
|
||
return (
|
||
<div className="cad-view-controls controls">
|
||
{showUndo && (
|
||
<>
|
||
<button type="button" onClick={undoCommand} title="실행 취소 (Ctrl+Z)">
|
||
↶
|
||
</button>
|
||
<button type="button" onClick={redoCommand} title="다시 실행 (Ctrl+Y)">
|
||
↷
|
||
</button>
|
||
</>
|
||
)}
|
||
<button
|
||
type="button"
|
||
className="cad-view-controls__fit"
|
||
onClick={() => zoomExtents()}
|
||
title="범위 줌 (Z) — 도면 전체를 화면에 맞춘다"
|
||
>
|
||
⛶
|
||
</button>
|
||
<button type="button" onClick={() => runCommandInput('ZOOMIN')} title="확대">
|
||
+
|
||
</button>
|
||
<span>{Math.round(zoom * 100)}%</span>
|
||
<button type="button" onClick={() => runCommandInput('ZOOMOUT')} title="축소">
|
||
-
|
||
</button>
|
||
</div>
|
||
);
|
||
};
|