diff --git a/src/SheetMe.Designer/Diagnostics/ClearTypeCheck.cs b/src/SheetMe.Designer/Diagnostics/ClearTypeCheck.cs index a8039cf..80d78ff 100644 --- a/src/SheetMe.Designer/Diagnostics/ClearTypeCheck.cs +++ b/src/SheetMe.Designer/Diagnostics/ClearTypeCheck.cs @@ -51,14 +51,34 @@ internal static class ClearTypeCheck // 위 표본들은 기법이 듣는지를 잰다(합성 도형). 그것이 통과해도 // 실제 창에 기법을 안 걸었으면 글자는 계속 뭉개진다 — 실제로 그랬다. // 쿼리 편집 창은 카드에 그림자 Effect 가 있어 그 안 글자가 전부 중간 서피스를 탄다. + // 카드 제목만 재던 것으로는 부족했다 — 제목은 켜졌는데 SQL 본문은 계속 꺼져 있었다. + // 사람이 실제로 들여다보는 표면을 다 재야 한다: 본문·변수 목록·결과 요약. var real = OpenQueryEditorForClearType(); - if (real.Window is not null && real.Target is not null) + if (real is null) { - samples.Add(("G(실제 창) 쿼리 편집 카드 안 글자", real.Target, true)); + Lines.Add("SKIP G~J(실제 창) — 창을 띄우지 못해 판정 불가"); } else { - Lines.Add("SKIP G(실제 창) — 창을 띄우지 못해 판정 불가"); + foreach (var (label, name) in new[] + { + ("G(실제 창) 카드 제목", "SQL 편집기"), + ("H(실제 창) SQL 본문", "Highlight"), + ("I(실제 창) 치환 변수 목록", "VariableList"), + }) + { + var target = name == "SQL 편집기" + ? FindTextBlock(real, name) + : real.FindName(name) as FrameworkElement; + if (target is { ActualWidth: > 0 }) + { + samples.Add((label, target, true)); + } + else + { + Lines.Add($"SKIP {label} — 대상을 찾지 못해 판정 불가"); + } + } } // 창이 보이는 것과 합성기가 그려 낸 것은 다르다 — Loaded 직후 찍으면 빈 화면을 잰다. @@ -106,11 +126,12 @@ internal static class ClearTypeCheck /// 창은 화면 안(0,0)에 띄운다. BitBlt 는 화면에 실제로 그려진 픽셀만 읽으므로 /// 화면 밖(-10000)에 두면 아무것도 못 잰다. /// - private static (Window? Window, FrameworkElement? Target) OpenQueryEditorForClearType() + private static Window? OpenQueryEditorForClearType() { try { - var editor = new Views.QueryEditorWindow("MDataTable1", "select 1 from dual") + var editor = new Views.QueryEditorWindow("MDataTable1", + "select PatChtNum, PatNam from P_PatInf where ROWNUM <= 1") { Left = 0, Top = 0, @@ -118,14 +139,12 @@ internal static class ClearTypeCheck }; editor.Show(); editor.UpdateLayout(); - // 카드 제목은 13.5px SemiBold — 뭉개짐이 가장 먼저 보이는 자리다 - var target = FindTextBlock(editor, "SQL 편집기"); - return (editor, target); + return editor; } catch (Exception ex) { - Lines.Add($"SKIP G(실제 창) — {ex.GetType().Name}: {ex.Message}"); - return (null, null); + Lines.Add($"SKIP G~I(실제 창) — {ex.GetType().Name}: {ex.Message}"); + return null; } } diff --git a/src/SheetMe.Designer/Views/QueryEditorWindow.xaml b/src/SheetMe.Designer/Views/QueryEditorWindow.xaml index 710957a..93c92a9 100644 --- a/src/SheetMe.Designer/Views/QueryEditorWindow.xaml +++ b/src/SheetMe.Designer/Views/QueryEditorWindow.xaml @@ -317,7 +317,9 @@ - +