using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace ytLive.Controls; /// /// App Settings as a right-edge pull-out (creator ruling 2026-11-01). Hosted by /// 's drawer stack and opened by the gear rail tab, exactly like Stream /// Settings / YPP / Socials / TEST. /// /// Born from the modal overlay: that shell was MaxHeight 700, so once the section list grew /// the bottom options were clipped and unreachable — including the zoom shape the creator was /// looking for. A drawer is the height of the preview, so the list can grow without a second /// scroll decision to get wrong. /// public partial class SettingsDrawer : UserControl { public SettingsDrawer() { InitializeComponent(); #if DEBUG // Development affordances are added at runtime, never declared in XAML: the panel is // excluded from the Release compile (ytLive.csproj), so this line is the only reference. DeveloperPanelHost.Children.Add(new DeveloperPanel()); #endif } /// Is the enlarged brand-logo preview showing? Test seam — a Popup is a separate /// window, so nothing else can observe it. internal bool IsBrandLogoPreviewOpen => BrandLogoPreviewPopup.IsOpen; /// The thumbnail is hidden when no image is set (see the XAML), so there is nothing to /// open in that case — no empty frame can appear. internal void OpenBrandLogoPreview() => BrandLogoPreviewPopup.IsOpen = true; internal void CloseBrandLogoPreview() => BrandLogoPreviewPopup.IsOpen = false; /// Hover opens the enlargement. Nothing to show when no image is set, so the /// thumbnail simply does nothing in that case. private void BrandLogoThumb_MouseEnter(object sender, MouseEventArgs e) => BrandLogoPreviewPopup.IsOpen = true; /// Leaving the thumbnail closes it — unless the pointer walked onto the popup /// itself, where it stays put so the creator can look closely. private void BrandLogoThumb_MouseLeave(object sender, MouseEventArgs e) { if (BrandLogoPreviewPopup.Child?.IsMouseOver == true) return; BrandLogoPreviewPopup.IsOpen = false; } /// A click collapses the enlargement — the explicit "enough, thanks" gesture. private void BrandLogoThumb_Click(object sender, MouseButtonEventArgs e) => BrandLogoPreviewPopup.IsOpen = false; private void BrandLogoPreviewPopup_MouseLeave(object sender, MouseEventArgs e) => BrandLogoPreviewPopup.IsOpen = false; }