11차 F-6: 코드 칸 줄 간격 좁힘(줄 높이 글자의 1.67배 → 1.33배)
- 사용자 결정: 줄 간격만 줄이고 선택 사항(단추 · 설정)은 만들지 않음 - 12 → 16, 1920x1080 두 칸 40 → 50줄, 네 칸 17 · 18 → 22 · 23줄 - 북마크 표식 높이도 줄에 맞춤 - FontTest 144(1,572건), E-1 회귀 없음 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
1895b11c8d
commit
ea35b718df
@ -164,6 +164,7 @@ A-1 에서 값으로 확인한 것 — 지운 파일은 "삭제되어 건너뜀
|
|||||||
- F-3: 매뉴얼 "탐색기에서 열기" — 여러 개를 골라 보내면 앞의 둘(3개 이상은 알림), 폴더 둘은 바로 폴더 비교, 260자 넘는 경로는 열지 못함(알림), 배포 묶음을 옮겨도 켜면 보내기 바로가기가 따라옴, 설치 파일 필요 없음. 알아 둘 한계에 "떠 있어도 새 창". 숫자 23벌 1,411건.
|
- F-3: 매뉴얼 "탐색기에서 열기" — 여러 개를 골라 보내면 앞의 둘(3개 이상은 알림), 폴더 둘은 바로 폴더 비교, 260자 넘는 경로는 열지 못함(알림), 배포 묶음을 옮겨도 켜면 보내기 바로가기가 따라옴, 설치 파일 필요 없음. 알아 둘 한계에 "떠 있어도 새 창". 숫자 23벌 1,411건.
|
||||||
- F-4: 매뉴얼 파일 비교 화면 — [ACTIONS 감추기] · F9, 아래 탭 줄 [탭 접기] · 띠 · F11(플랫폼), 단축키 표에 F9 · F11. 숫자 23벌 1,414건 · 플랫폼 31건.
|
- F-4: 매뉴얼 파일 비교 화면 — [ACTIONS 감추기] · F9, 아래 탭 줄 [탭 접기] · 띠 · F11(플랫폼), 단축키 표에 F9 · F11. 숫자 23벌 1,414건 · 플랫폼 31건.
|
||||||
- F-5: 매뉴얼 설정 표 "보기 > 코드 글자 크기", 파일 비교 화면 Ctrl+휠 · Ctrl++/- · Ctrl+0 · 상태 줄 `글자 N`, 단축키 표. 숫자 24벌 1,538건.
|
- F-5: 매뉴얼 설정 표 "보기 > 코드 글자 크기", 파일 비교 화면 Ctrl+휠 · Ctrl++/- · Ctrl+0 · 상태 줄 `글자 N`, 단축키 표. 숫자 24벌 1,538건.
|
||||||
|
- F-6: 줄 간격을 좁혀 1920 × 1080 두 칸 40 → 50줄(매뉴얼의 화면 설명 · 그림이 있으면 새로). 숫자 24벌 1,572건.
|
||||||
|
|
||||||
## B-1. 배포 묶음을 다시 만들고 꼭 필요한 파일을 가림 (2026-09-22, 완료)
|
## B-1. 배포 묶음을 다시 만들고 꼭 필요한 파일을 가림 (2026-09-22, 완료)
|
||||||
|
|
||||||
@ -737,6 +738,35 @@ libgit2 의 다듬기(`PrettifyMessages`)를 켜면 **손대지 않은 뒤 커
|
|||||||
- 첫 회차는 "다음 충돌 안 보임" 으로 멈췄다 — 사용자가 그 사이 직접 MergeHub 를 켜 글자 9 · ACTIONS 감춤으로 바꿔 두었고, 시험 도구는 설정을 그대로 썼다. 시험 도구(`d7lib.ps1` `WithSettings`)가 **시험하는 동안만** ACTIONS 보임 · 글자 12 로 두고 끝나면 바이트 그대로 되돌리게 고쳤다(제품 아님).
|
- 첫 회차는 "다음 충돌 안 보임" 으로 멈췄다 — 사용자가 그 사이 직접 MergeHub 를 켜 글자 9 · ACTIONS 감춤으로 바꿔 두었고, 시험 도구는 설정을 그대로 썼다. 시험 도구(`d7lib.ps1` `WithSettings`)가 **시험하는 동안만** ACTIONS 보임 · 글자 12 로 두고 끝나면 바이트 그대로 되돌리게 고쳤다(제품 아님).
|
||||||
- 같은 때 시험 스크립트가 사용자가 켜 둔 MergeHub 를 강제로 껐다(16:55). 앞으로 시험 전에 떠 있는 창을 보고, 있으면 먼저 묻는다.
|
- 같은 때 시험 스크립트가 사용자가 켜 둔 MergeHub 를 강제로 껐다(16:55). 앞으로 시험 전에 떠 있는 창을 보고, 있으면 먼저 묻는다.
|
||||||
|
|
||||||
|
## F-6. 글자를 되도록 많이 보이게 — 줄 간격 좁힘 (2026-09-22, 완료)
|
||||||
|
|
||||||
|
지시서는 "한 단추로 넓게 보기" 를 방향으로 적었지만, 사용자는 **넓게 보기라는 기능이 아니라 넓게 보기 위한 방향을 물은 것**이었다. 그래서 방법마다 1920 × 1080 에서 몇 줄이 느는지 재서 드렸고, 사용자가 "**줄 간격 줄여주고 선택 사항은 만들지 마**" 로 정했다.
|
||||||
|
|
||||||
|
### 잰 것 (`f6-measure.ps1` — 두 번째 모니터 1920 × 1080(WPF 단위, 물리 2880 × 1620 · 150%)에 최대화, 글자 12)
|
||||||
|
|
||||||
|
| 방법 | 두 칸 | 네 칸(위 세 칸 · 아래 MERGED) | 상태 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 고치기 전 | **40줄** | 17 · 18 | — |
|
||||||
|
| 아래 탭 줄 접기(F11) | 42 | 18 · 19 | 이미 있음(F-4) |
|
||||||
|
| 글자 12 → 10(Ctrl+-) | 47 | 20 · 22 | 이미 있음(F-5) |
|
||||||
|
| 줄 간격 좁힘(줄 높이 20 → 16) | 약 50 | 22 · 23 | 새로 |
|
||||||
|
| 칸 제목 두 줄 → 한 줄 | 약 +0.7 | 약 +1.4 | 새로(안 함) |
|
||||||
|
| 색 범례 줄 감추기 | 약 +1 | 약 +1 | 새로(안 함) |
|
||||||
|
| ACTIONS 감추기(F9) | 0(칸 폭 +163px 씩) | 0 | 이미 있음(F-4) |
|
||||||
|
|
||||||
|
### 고친 것
|
||||||
|
|
||||||
|
- 줄 높이를 글자의 **1.67배 → 1.33배**로(`CodeFontMetrics`, 12 → 16 · 8 → 11 · 24 → 32). 켜고 끄는 단추 · 설정은 만들지 않았다(사용자 결정). 여백 · 번호 칸 · 단추 비율은 그대로.
|
||||||
|
- `MergeLine.MinimumRowHeight` · `CodeLineHeight` 기본값 · 화면의 줄 높이 대체값을 16 으로.
|
||||||
|
- 북마크 표식(위아래 여백 3 + 높이 14 = 20)이 16 줄을 넘으므로 표식 높이도 줄에 맞춤(`BookmarkHeight` = 줄 높이 − 6, 12 에서 10).
|
||||||
|
|
||||||
|
### 확인한 것
|
||||||
|
|
||||||
|
- 하네스 FontTest 144건(+34 — 8~24 모든 크기에서 줄 높이 1.3~1.4배, 북마크가 줄 안, 기본 12 의 값). 24벌 **1,572건** · 빌드 경고 0 · 오류 0.
|
||||||
|
- 화면(1920 × 1080, 글자 12): **두 칸 40 → 50줄**(탭 줄까지 접으면 53), **네 칸 17 · 18 → 22 · 23줄**(탭 줄 접으면 23 · 24). 행 높이 24px(16 DIP × 1.5).
|
||||||
|
- 8 · 12 · 24 (`f5-verify.ps1`, 한글 주석 든 코드): 두 칸 행 높이 서로 같음(8 은 16 · 17 번갈아, 12 는 24, 24 는 48), 여백 단추 행 안, 그림에서 한글이 잘리거나 위아래 줄이 겹치지 않고 줄 번호 · 편집기 커서가 행에 맞음.
|
||||||
|
- 회귀: 11차 E-1 병합 길 — 24 → 9 · 누른 Take 18 = 로그 18 · 병합 커밋 본문 26개 · 줄끝 · BOM 바뀐 파일 0 · 충돌 표식 0 · class 검사 0.
|
||||||
|
|
||||||
## F-12. C# 코드 스타일 맞춤의 기본값을 AURORA 로 (2026-09-18, 완료)
|
## F-12. C# 코드 스타일 맞춤의 기본값을 AURORA 로 (2026-09-18, 완료)
|
||||||
|
|
||||||
사용자: "기본값은 원본형태를 따르고 C#인 경우에 AURORA 스타일로 하자" → 물어서 정한 것은 **제품 기본값 AURORA · C# 파일만 · 저장 동작은 지금 그대로**(켜져 있으면 저장도 그 스타일로 쓴다).
|
사용자: "기본값은 원본형태를 따르고 C#인 경우에 AURORA 스타일로 하자" → 물어서 정한 것은 **제품 기본값 AURORA · C# 파일만 · 저장 동작은 지금 그대로**(켜져 있으면 저장도 그 스타일로 쓴다).
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
| 날짜 | 항목 | 커밋 |
|
| 날짜 | 항목 | 커밋 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
| 2026-09-22 | **11차 F-6 (추가 요청)** — 코드 칸 줄 간격을 좁힘: 줄 높이 글자의 1.67배 → 1.33배(12 → 16, 사용자 결정 "선택 사항은 만들지 마" — 켜고 끄는 단추 · 설정 없음). 1920 × 1080 두 칸 40 → 50줄, 네 칸 위 17 → 22 · 아래 18 → 23줄. 북마크 표식 높이도 줄에 맞춤. 방법별 줄 수(탭 줄 접기 +2 · 글자 10 +7 · 칸 제목 한 줄 · 범례 감추기 +1 안팎)는 기록에 | 아래 |
|
||||||
| 2026-09-22 | **11차 F-5 뒤 (사용자 "응 고쳐줘")** — 켜자마자(또는 탭을 눌러 돌아오면) 키보드 포커스가 없거나 탭 줄에 있어, 코드 칸을 한 번 누르기 전까지 **모든 단축키**(Ctrl+S · F9 · Ctrl++ …)가 듣지 않았다. 파일 비교 화면이 뜰 때 · 돌아올 때 · 창이 활성이 될 때 포커스가 비었거나 화면 밖이면 편집기로 준다(화면 안 · 다른 창의 포커스는 그대로). E-1 병합 길 회귀 없음 | 아래 |
|
| 2026-09-22 | **11차 F-5 뒤 (사용자 "응 고쳐줘")** — 켜자마자(또는 탭을 눌러 돌아오면) 키보드 포커스가 없거나 탭 줄에 있어, 코드 칸을 한 번 누르기 전까지 **모든 단축키**(Ctrl+S · F9 · Ctrl++ …)가 듣지 않았다. 파일 비교 화면이 뜰 때 · 돌아올 때 · 창이 활성이 될 때 포커스가 비었거나 화면 밖이면 편집기로 준다(화면 안 · 다른 창의 포커스는 그대로). E-1 병합 길 회귀 없음 | 아래 |
|
||||||
| 2026-09-22 | **11차 F-5 (추가 요청)** — 코드 칸 글자 크기 8~24(기본 12). 한 값을 모든 모니터에(사용자 결정 — 모니터마다 다른 Windows 배율은 플랫폼 PerMonitorV2 가 맞춤), 코드 칸만. `CodeFontMetrics` 가 줄 높이 · 번호 칸 · 여백 단추를 같은 비율로 내고(12 에서 지금 값 그대로) 화면이 DynamicResource 로 한 벌 갈아 끼움, `MergeLine.MinimumRowHeight` 도 따라감. Ctrl+휠 · Ctrl++/- · Ctrl+0 · 설정 "보기 > 코드 글자 크기", 상태 줄 `글자 N`. 줄 번호가 코드보다 몇 px 위에 뜨던 것(24 에서 커짐)도 같은 줄 높이 규칙으로 맞춤. 8 · 12 · 24 에서 네 칸 행 높이 같음. FontTest 110 · ShortcutTest +14(1,538건) | 아래 |
|
| 2026-09-22 | **11차 F-5 (추가 요청)** — 코드 칸 글자 크기 8~24(기본 12). 한 값을 모든 모니터에(사용자 결정 — 모니터마다 다른 Windows 배율은 플랫폼 PerMonitorV2 가 맞춤), 코드 칸만. `CodeFontMetrics` 가 줄 높이 · 번호 칸 · 여백 단추를 같은 비율로 내고(12 에서 지금 값 그대로) 화면이 DynamicResource 로 한 벌 갈아 끼움, `MergeLine.MinimumRowHeight` 도 따라감. Ctrl+휠 · Ctrl++/- · Ctrl+0 · 설정 "보기 > 코드 글자 크기", 상태 줄 `글자 N`. 줄 번호가 코드보다 몇 px 위에 뜨던 것(24 에서 커짐)도 같은 줄 높이 규칙으로 맞춤. 8 · 12 · 24 에서 네 칸 행 높이 같음. FontTest 110 · ShortcutTest +14(1,538건) | 아래 |
|
||||||
| 2026-09-22 | **11차 F-4 (추가 요청)** — 파일 비교 오른쪽 ACTIONS 칸을 감추는 단추 · F9(사용자 결정). 감추면 칸과 구분선 폭을 0 으로 해 코드 칸이 넓어지고, 펴면 끌어 둔 폭 그대로. 설정 `ActionsHidden` 에 기억. 감춘 채 Ctrl+S · Alt+←/→ 그대로. **덧(사용자 요청)**: 아래 탭 줄 접기 — 플랫폼에 [탭 접기] · 띠 · F11 을 넣음(플랫폼 changelog 참고, 사용자 확인 뒤 배포 09-22 16:22). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. ShortcutTest +3 · 플랫폼 PlatformCfgTest +7 | 아래 |
|
| 2026-09-22 | **11차 F-4 (추가 요청)** — 파일 비교 오른쪽 ACTIONS 칸을 감추는 단추 · F9(사용자 결정). 감추면 칸과 구분선 폭을 0 으로 해 코드 칸이 넓어지고, 펴면 끌어 둔 폭 그대로. 설정 `ActionsHidden` 에 기억. 감춘 채 Ctrl+S · Alt+←/→ 그대로. **덧(사용자 요청)**: 아래 탭 줄 접기 — 플랫폼에 [탭 접기] · 띠 · F11 을 넣음(플랫폼 changelog 참고, 사용자 확인 뒤 배포 09-22 16:22). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. ShortcutTest +3 · 플랫폼 PlatformCfgTest +7 | 아래 |
|
||||||
|
|||||||
@ -375,7 +375,7 @@
|
|||||||
| **완료** | F-3 탐색기 [보내기] 로 폴더 두 개 바로 비교 — 탐색기는 여러 개를 프로세스 하나에 인자로 모두 넘김(일곱 경우 값으로 잼), 폴더 둘은 창 하나에서 폴더 비교까지. 사용자 결정대로 3개 이상은 앞의 둘 + 알림, 260자 넘는 경로(탐색기가 8.3 이름으로 넘김 · net48 이 못 찾음)는 열지 않고 알림, 옮긴 배포 묶음은 켤 때 보내기 바로가기를 저절로 고침(바로가기 파일만 · 레지스트리 안 씀), 떠 있을 때는 새 창 그대로. 설치 파일 필요 없음. ArgsTest +16 · 1,411건. **사용자가 실제 탐색기에서 찾은 것**: 보낸 왼쪽 폴더를 기본 저장소가 덮어써 "왼쪽만" 투성이 → 기본값을 먼저 두고 요청을 나중에 받게 고침, 켤 때 받은 인자를 파일 로그에 남김 |
|
| **완료** | F-3 탐색기 [보내기] 로 폴더 두 개 바로 비교 — 탐색기는 여러 개를 프로세스 하나에 인자로 모두 넘김(일곱 경우 값으로 잼), 폴더 둘은 창 하나에서 폴더 비교까지. 사용자 결정대로 3개 이상은 앞의 둘 + 알림, 260자 넘는 경로(탐색기가 8.3 이름으로 넘김 · net48 이 못 찾음)는 열지 않고 알림, 옮긴 배포 묶음은 켤 때 보내기 바로가기를 저절로 고침(바로가기 파일만 · 레지스트리 안 씀), 떠 있을 때는 새 창 그대로. 설치 파일 필요 없음. ArgsTest +16 · 1,411건. **사용자가 실제 탐색기에서 찾은 것**: 보낸 왼쪽 폴더를 기본 저장소가 덮어써 "왼쪽만" 투성이 → 기본값을 먼저 두고 요청을 나중에 받게 고침, 켤 때 받은 인자를 파일 로그에 남김 |
|
||||||
| **완료** | F-4 ACTIONS 칸 감추기(단추 · F9, 끌어 둔 폭 기억, 감춰도 Ctrl+S · Alt+←/→ 그대로) + **덧: 아래 탭 줄 접기**(사용자 요청 — 플랫폼 [탭 접기] · 16 DIP 띠 · F11, 그 항목만 기억, 다른 소비 프로그램도 쓰되 기본 펼침). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. 플랫폼 배포함(09-22 16:22) |
|
| **완료** | F-4 ACTIONS 칸 감추기(단추 · F9, 끌어 둔 폭 기억, 감춰도 Ctrl+S · Alt+←/→ 그대로) + **덧: 아래 탭 줄 접기**(사용자 요청 — 플랫폼 [탭 접기] · 16 DIP 띠 · F11, 그 항목만 기억, 다른 소비 프로그램도 쓰되 기본 펼침). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. 플랫폼 배포함(09-22 16:22) |
|
||||||
| **완료** | F-5 코드 글자 크기(8~24, 기본 12) — 한 값을 모든 모니터에(모니터 배율은 플랫폼), 코드 칸만, Ctrl+휠 · Ctrl++/- · Ctrl+0 + 설정 "보기 > 코드 글자 크기"(사용자 결정). 줄 높이 · 번호 칸 · 여백 단추가 같은 비율로(`CodeFontMetrics`, 12 에서 지금 값 그대로), 줄 번호 기준선을 코드와 맞춤. 8 · 12 · 24 에서 네 칸 행 높이 같음 · 단추 행 안. FontTest 110 · 1,538건. Ctrl+휠 · 키 · 껐다 켜도 남음 확인. 켜자마자는 포커스가 없어 단축키가 모두 안 듣던 것(원래 있던 것)도 고침 — 포커스가 비었거나 화면 밖이면 편집기로 |
|
| **완료** | F-5 코드 글자 크기(8~24, 기본 12) — 한 값을 모든 모니터에(모니터 배율은 플랫폼), 코드 칸만, Ctrl+휠 · Ctrl++/- · Ctrl+0 + 설정 "보기 > 코드 글자 크기"(사용자 결정). 줄 높이 · 번호 칸 · 여백 단추가 같은 비율로(`CodeFontMetrics`, 12 에서 지금 값 그대로), 줄 번호 기준선을 코드와 맞춤. 8 · 12 · 24 에서 네 칸 행 높이 같음 · 단추 행 안. FontTest 110 · 1,538건. Ctrl+휠 · 키 · 껐다 켜도 남음 확인. 켜자마자는 포커스가 없어 단축키가 모두 안 듣던 것(원래 있던 것)도 고침 — 포커스가 비었거나 화면 밖이면 편집기로 |
|
||||||
| 대기 | F-6 글자를 되도록 많이 보이게 — 넓게 보기 한 단추, 늘어난 줄 수로 잼 |
|
| **완료** | F-6 글자를 되도록 많이 보이게 — 방법마다 1920×1080 줄 수를 재 드린 뒤 사용자 결정 "줄 간격 줄여주고 선택 사항은 만들지 마": 줄 높이 글자의 1.67배 → 1.33배(12 → 16). 두 칸 40 → 50줄(탭 줄 접으면 53), 네 칸 17 · 18 → 22 · 23줄. 한글 잘림 · 겹침 없음, E-1 회귀 없음. FontTest 144 · 1,572건 |
|
||||||
| 대기 | F-7 어느 모니터에서든 제대로 뜨게 — 증상부터 적고 플랫폼 영향 확인 |
|
| 대기 | F-7 어느 모니터에서든 제대로 뜨게 — 증상부터 적고 플랫폼 영향 확인 |
|
||||||
| 대기 | F-8 저장한 뒤에도 되돌리기 (지금은 저장 네 길이 스택을 비움) |
|
| 대기 | F-8 저장한 뒤에도 되돌리기 (지금은 저장 네 길이 스택을 비움) |
|
||||||
| 대기 | F-9 백업본으로 저장 · 원본을 건드릴지 고르게 |
|
| 대기 | F-9 백업본으로 저장 · 원본을 건드릴지 고르게 |
|
||||||
|
|||||||
@ -206,7 +206,7 @@ namespace MergeHub.Models
|
|||||||
/// 코드 글자 크기를 바꾸면 화면이 이 값을 함께 바꾸고 <see cref="RefreshRowHeight"/> 를 부른다(11차 F-5) -
|
/// 코드 글자 크기를 바꾸면 화면이 이 값을 함께 바꾸고 <see cref="RefreshRowHeight"/> 를 부른다(11차 F-5) -
|
||||||
/// 예전에는 20 으로 박혀 있어 글자를 줄여도 행이 20 아래로 줄지 않았다.
|
/// 예전에는 20 으로 박혀 있어 글자를 줄여도 행이 20 아래로 줄지 않았다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static double MinimumRowHeight { get; set; } = 20;
|
public static double MinimumRowHeight { get; set; } = 16;
|
||||||
|
|
||||||
/// <summary>줄 높이 기준이 바뀌었을 때 알던 글 높이로 다시 잰다.</summary>
|
/// <summary>줄 높이 기준이 바뀌었을 때 알던 글 높이로 다시 잰다.</summary>
|
||||||
public void RefreshRowHeight() => ApplyRowHeights();
|
public void RefreshRowHeight() => ApplyRowHeights();
|
||||||
|
|||||||
@ -5,8 +5,11 @@ namespace MergeHub.Services
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 코드 칸 글자 크기 하나에서 나오는 크기들(11차 F-5). 줄 높이 · 줄 번호 칸 · 여백 단추가 같은 비율로 따라간다.
|
/// 코드 칸 글자 크기 하나에서 나오는 크기들(11차 F-5). 줄 높이 · 줄 번호 칸 · 여백 단추가 같은 비율로 따라간다.
|
||||||
///
|
///
|
||||||
/// 기본 12 에서 지금까지의 값(줄 20 · 여백 66 = 번호 46 + 단추 20 · LOCAL 은 표식 6 + 번호 40 + 단추 20 · 단추 14 · 단추 글자 9)과
|
/// 기본 12 에서 여백 66 = 번호 46 + 단추 20 · LOCAL 은 표식 6 + 번호 40 + 단추 20 · 단추 14 · 단추 글자 9 는 예전 값 그대로다.
|
||||||
/// 정확히 같다. 네 칸이 모두 이 값을 쓰므로 어느 크기에서나 행이 같은 눈높이에 온다.
|
/// 네 칸이 모두 이 값을 쓰므로 어느 크기에서나 행이 같은 눈높이에 온다.
|
||||||
|
///
|
||||||
|
/// 줄 높이는 글자의 1.33배(12 → 16)다(11차 F-6, 사용자 "줄 간격 줄여주고 선택 사항은 만들지 마").
|
||||||
|
/// 예전 1.67배(12 → 20)는 1920×1080 두 칸에 40줄, 지금은 50줄이 든다. Consolas 글자 상자(약 1.17배)보다는 넉넉해 위아래 줄이 닿지 않는다.
|
||||||
///
|
///
|
||||||
/// 크기는 WPF 단위(1/96 인치)다. 모니터마다 Windows 배율은 플랫폼(PerMonitorV2)이 맞추므로
|
/// 크기는 WPF 단위(1/96 인치)다. 모니터마다 Windows 배율은 플랫폼(PerMonitorV2)이 맞추므로
|
||||||
/// 한 값이 어느 모니터에서나 같은 눈 크기로 보인다(사용자 결정 "한 값을 모든 모니터에").
|
/// 한 값이 어느 모니터에서나 같은 눈 크기로 보인다(사용자 결정 "한 값을 모든 모니터에").
|
||||||
@ -20,7 +23,8 @@ namespace MergeHub.Services
|
|||||||
double MarkWidth,
|
double MarkWidth,
|
||||||
double ButtonWidth,
|
double ButtonWidth,
|
||||||
double ButtonHeight,
|
double ButtonHeight,
|
||||||
double ButtonFontSize)
|
double ButtonFontSize,
|
||||||
|
double BookmarkHeight)
|
||||||
{
|
{
|
||||||
public const double Default = 12;
|
public const double Default = 12;
|
||||||
public const double Min = 8;
|
public const double Min = 8;
|
||||||
@ -44,14 +48,15 @@ namespace MergeHub.Services
|
|||||||
|
|
||||||
return new CodeFontMetrics(
|
return new CodeFontMetrics(
|
||||||
FontSize: f,
|
FontSize: f,
|
||||||
LineHeight: Math.Round(20 * k),
|
LineHeight: Math.Round(16 * k),
|
||||||
GutterWidth: number + button,
|
GutterWidth: number + button,
|
||||||
NumberWidth: number,
|
NumberWidth: number,
|
||||||
NarrowNumberWidth: narrow,
|
NarrowNumberWidth: narrow,
|
||||||
MarkWidth: mark,
|
MarkWidth: mark,
|
||||||
ButtonWidth: button,
|
ButtonWidth: button,
|
||||||
ButtonHeight: Math.Round(14 * k),
|
ButtonHeight: Math.Round(14 * k),
|
||||||
ButtonFontSize: Math.Round(9 * k, 1));
|
ButtonFontSize: Math.Round(9 * k, 1),
|
||||||
|
BookmarkHeight: Math.Max(4, Math.Round(16 * k) - 6));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,7 @@
|
|||||||
<system:Double x:Key="PaneHeaderHeight">124</system:Double>
|
<system:Double x:Key="PaneHeaderHeight">124</system:Double>
|
||||||
|
|
||||||
<!-- 코드 한 줄의 높이. BASE/LOCAL 이 이 값을 똑같이 써야 두 패널의 같은 행이 같은 눈높이에 온다. -->
|
<!-- 코드 한 줄의 높이. BASE/LOCAL 이 이 값을 똑같이 써야 두 패널의 같은 행이 같은 눈높이에 온다. -->
|
||||||
<system:Double x:Key="CodeLineHeight">20</system:Double>
|
<system:Double x:Key="CodeLineHeight">16</system:Double>
|
||||||
|
|
||||||
<!-- 코드 글자 크기와 그에 따르는 여백(11차 F-5). 기본 12 의 값이다 - 화면(ApplyCodeFont)이
|
<!-- 코드 글자 크기와 그에 따르는 여백(11차 F-5). 기본 12 의 값이다 - 화면(ApplyCodeFont)이
|
||||||
CodeFontMetrics 로 함께 바꾼다. DynamicResource 로 읽어야 바뀐 값이 바로 그려진다. -->
|
CodeFontMetrics 로 함께 바꾼다. DynamicResource 로 읽어야 바뀐 값이 바로 그려진다. -->
|
||||||
@ -32,6 +32,7 @@
|
|||||||
<GridLength x:Key="GutterButtonWidth">20</GridLength>
|
<GridLength x:Key="GutterButtonWidth">20</GridLength>
|
||||||
<system:Double x:Key="GutterButtonHeight">14</system:Double>
|
<system:Double x:Key="GutterButtonHeight">14</system:Double>
|
||||||
<system:Double x:Key="GutterButtonFontSize">9</system:Double>
|
<system:Double x:Key="GutterButtonFontSize">9</system:Double>
|
||||||
|
<system:Double x:Key="BookmarkHeight">10</system:Double>
|
||||||
<Thickness x:Key="EditorGutterMargin">66,0,0,0</Thickness>
|
<Thickness x:Key="EditorGutterMargin">66,0,0,0</Thickness>
|
||||||
|
|
||||||
<!-- BASE / LOCAL 하단 요약 칸 공통 높이. 두 패널의 코드 영역이 같은 크기여야 나란히 읽힌다. -->
|
<!-- BASE / LOCAL 하단 요약 칸 공통 높이. 두 패널의 코드 영역이 같은 크기여야 나란히 읽힌다. -->
|
||||||
@ -315,7 +316,7 @@
|
|||||||
|
|
||||||
<!-- 북마크 표식. 켜진 줄만 색 막대가 보인다. -->
|
<!-- 북마크 표식. 켜진 줄만 색 막대가 보인다. -->
|
||||||
<Border Grid.Column="0" Width="4" HorizontalAlignment="Left" CornerRadius="1"
|
<Border Grid.Column="0" Width="4" HorizontalAlignment="Left" CornerRadius="1"
|
||||||
Margin="1,3" VerticalAlignment="Top" Height="{DynamicResource GutterButtonHeight}"
|
Margin="1,3" VerticalAlignment="Top" Height="{DynamicResource BookmarkHeight}"
|
||||||
Background="{DynamicResource Ubisam.Brush.Accent}"
|
Background="{DynamicResource Ubisam.Brush.Accent}"
|
||||||
Visibility="{Binding IsBookmarked, Converter={StaticResource BoolToVis}}"/>
|
Visibility="{Binding IsBookmarked, Converter={StaticResource BoolToVis}}"/>
|
||||||
|
|
||||||
|
|||||||
@ -502,6 +502,7 @@ namespace MergeHub.Views
|
|||||||
Resources["GutterButtonWidth"] = new GridLength(m.ButtonWidth);
|
Resources["GutterButtonWidth"] = new GridLength(m.ButtonWidth);
|
||||||
Resources["GutterButtonHeight"] = m.ButtonHeight;
|
Resources["GutterButtonHeight"] = m.ButtonHeight;
|
||||||
Resources["GutterButtonFontSize"] = m.ButtonFontSize;
|
Resources["GutterButtonFontSize"] = m.ButtonFontSize;
|
||||||
|
Resources["BookmarkHeight"] = m.BookmarkHeight;
|
||||||
Resources["EditorGutterMargin"] = new Thickness(m.GutterWidth, 0, 0, 0);
|
Resources["EditorGutterMargin"] = new Thickness(m.GutterWidth, 0, 0, 0);
|
||||||
|
|
||||||
if (MergeLine.MinimumRowHeight != m.LineHeight)
|
if (MergeLine.MinimumRowHeight != m.LineHeight)
|
||||||
@ -760,7 +761,7 @@ namespace MergeHub.Views
|
|||||||
|
|
||||||
/// <summary>코드 한 줄의 높이. XAML 의 CodeLineHeight 와 같은 값이어야 한다.</summary>
|
/// <summary>코드 한 줄의 높이. XAML 의 CodeLineHeight 와 같은 값이어야 한다.</summary>
|
||||||
private double LineHeight =>
|
private double LineHeight =>
|
||||||
TryFindResource("CodeLineHeight") is double h && h > 0 ? h : 20;
|
TryFindResource("CodeLineHeight") is double h && h > 0 ? h : 16;
|
||||||
|
|
||||||
/// <summary>원본 세 칸. 늘 함께 움직인다.</summary>
|
/// <summary>원본 세 칸. 늘 함께 움직인다.</summary>
|
||||||
private ListBox[] SourcePanes => new[] { BaseLines, RemoteLines, OriginalLocalLines };
|
private ListBox[] SourcePanes => new[] { BaseLines, RemoteLines, OriginalLocalLines };
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user