소스(Core/Shell/Launcher)와 실행 PC가 받아갈 업데이트 파일(dist)을 함께 올린다. Launcher가 켤 때 이 저장소의 dist와 D:\UbisamPlatform\bin을 비교해 새 버전이면 받아간다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
패치 11 — 토스트 메시지 (Success · Fail · Error)
기존 토스트는 판 전체를 상태색으로 채우고 흰 글자를 얹는 방식이라, 셸의 다른 표면과 재질이 달랐고 다크에서 특히 튀었습니다. 판은 셸과 같은 재질로 두고 색은 좌측 3px 바와 아이콘에만 쓰도록 바꿉니다.
ToastType enum(Info · Success · Warning · Error)은 그대로입니다. 요청하신 3종은 이렇게 매핑됩니다.
| 요청 | enum | 의미 | 라이트 | 다크 | 아이콘 |
|---|---|---|---|---|---|
| Success | ToastType.Success |
완료 | #2E8B4F |
#5FC97E |
circle-check |
| Fail | ToastType.Warning |
동작이 되지 않음 (예외는 아님) | #B8791A |
#E0A63C |
triangle-alert |
| Error | ToastType.Error |
예외 · 시스템 오류 | #C93B3B |
#F07070 |
circle-x |
Info는 accent 색 + circle-info로 남습니다 — 기존 ShowToast 호출이 그대로 동작합니다.
종류마다 색과 도형을 둘 다 다르게 했습니다. 색만으로 구분하면 색약 사용자가 성공과 실패를 구별할 수 없습니다.
1. 갱신 파일
| 파일 | 변경 |
|---|---|
src/UbisamBase.Core/Converters/ToastTypeToBrushConverter.cs |
하드코딩된 색 → 테마 브러시 리소스 조회 |
src/UbisamBase.Core/Converters/ToastTypeToGeometryConverter.cs |
신규 — 종류별 아이콘 |
src/UbisamBase.Core/Themes/ShellStyles.xaml |
새 컨버터 등록 (ToastTypeToGeometry) |
src/UbisamBase.Core/Shell/ShellWindow.xaml |
토스트 ItemTemplate 교체 |
src/UbisamBase.Core/Themes/Colors.Light.xaml |
Success #2E8B4F / Warning #B8791A 추가 |
src/UbisamBase.Core/Themes/Colors.Dark.xaml |
Success #5FC97E / Warning #E0A63C 추가 |
code/ 아래 같은 경로의 파일을 그대로 덮어쓰세요. ToastService.cs와 ToastMessage.cs는 손대지 않습니다.
2. 쓰는 법 (변화 없음)
MessageUtil.ShowSavedToast(logger); // Success
MessageUtil.ShowSuccessToast("검사가 완료되었습니다.", logger); // Success
MessageUtil.ShowWarningToast("값이 허용 범위를 벗어났습니다.", logger); // Fail
MessageUtil.ShowErrorToast("장비 통신이 끊어졌습니다.", logger); // Error
MessageUtil.ShowToast("레시피를 불러왔습니다.", logger); // Info
표시 시간은 ToastService.Show(text, type, durationMs)의 기본 3000ms입니다. 오류는 더 길게 두는 편이 낫습니다 — 필요하시면 종류별 기본값을 다르게 만들어 드립니다.
3. 모양
- 판 배경은
Sidebar.Background(라이트 #FFFFFF / 다크 #2A2E34), 1px 헤어라인, 각진 모서리 - 좌측 3px 상태색 바 — 색이 들어가는 유일한 면
- 아이콘 19px, 상태색 스트로크 1.5, 상단 정렬(메시지가 길어도 위에 고정)
- 글자는 본문색 13px/19 — 상태색으로 쓰지 않습니다(가독성)
- 최소 폭 280 / 최대 380, 그림자는
Ubisam.Effect.Popup - 위치는 기존과 같이 우상단, 아래로 8px 간격 쌓임
4. 확인
- 세 종류의 좌측 바 색과 아이콘 도형이 서로 다른지
- 다크에서 판이 어두운 회색이고 글자가 흰색인지 (색으로 채워진 판이 뜨면 파일이 안 바뀐 것)
- 여러 개가 동시에 뜰 때 아래로 쌓이는지
- 3초 후 사라지는지
- 긴 메시지가 380px에서 줄바꿈되고 아이콘은 위에 고정되는지
- 테마를 바꾼 뒤 새로 뜬 토스트의 색이 그 테마를 따르는지
주의
- 컨버터가 색을 호출 시점에 읽으므로, 테마를 바꿔도 이미 떠 있는 토스트는 이전 색입니다. 3초 후 사라지니 실질적인 문제는 없습니다.
- 판 전체를 상태색으로 채우는 이전 방식을 원하시면 알려주세요 — 그 경우 흰 글자 대비를 위해 색을 한 단계 어둡게 조정해야 합니다.