25 lines
1.1 KiB
C#
25 lines
1.1 KiB
C#
namespace VideoDownloader.Browser.Tabs;
|
|
|
|
/// <summary>UC-B05 탭 호버 미리보기 모델 — 제목·URL·상태를 한 눈에 보여주는 툴팁 페이로드.</summary>
|
|
public sealed record TabPreview(string Title, string Url, bool IsSuspended, bool IsAudioPlaying, bool IsLocked, bool IsReader)
|
|
{
|
|
/// <summary>탭 상태에서 미리보기 생성.</summary>
|
|
public static TabPreview From(TabItem tab) => new(
|
|
tab.Title,
|
|
tab.Url,
|
|
tab.IsSuspended,
|
|
tab.IsAudioPlaying,
|
|
tab.IsLocked,
|
|
tab.IsReader);
|
|
|
|
/// <summary>낭독기·툴팁용 한 줄 요약(상태 배지). 예: "제목 — zzz 잠자기 · 오디오 재생 중".</summary>
|
|
public string BuildTooltipText()
|
|
{
|
|
var badges = new List<string>();
|
|
if (IsSuspended) badges.Add("잠자기");
|
|
if (IsAudioPlaying) badges.Add("오디오 재생 중");
|
|
if (IsLocked) badges.Add("잠금");
|
|
if (IsReader) badges.Add("리더 모드");
|
|
return badges.Count == 0 ? $"{Title}\n{Url}" : $"{Title} ({string.Join(" · ", badges)})\n{Url}";
|
|
}
|
|
}
|