• refactor: extract PreviewPane out of MainWindow.xaml — Phase 2, Commit 15

    gramps released this 2026-08-31 02:38:22 +00:00 | 144 commits to main since this release

    PreviewPane.xaml(.cs) takes the center preview (Row 1 Col 1): the 1920x1080
    canvas (OverlayCanvas/SelectionOverlay/BrandFlashLayer/SocialBarElement),
    the text pull-out drawer, and the live-controls row (TRAX / game / mic meters,
    volume sliders, speaker toggles, socials button) inside the preserved
    glow/background Border.

    Code-behind moved into the control (drive by DataContext==MainViewModel):
    preview drag/select/resize/hit-test (Preview_Mouse{Down,Move,Up},
    EndPreviewDrag, HitHandle, HitElement), webcam context-menu handlers
    (WebcamMenu_ChangeWebcam/SetBorderAnimation/StopBorderAnimation/
    FindBorderShape/CreateBorderAnimation/AddDoubleAnimation/SetBorderColor/
    HideInScene/Remove), social-bar glow (SocialBar_MouseLeftButtonDown,
    SocialsButton_Mouse{Enter,Leave}, SocialGlowTick), audio controls
    (VolumeSlider_, GameVolumeSlider_, MicSpeaker_, GameSpeaker_,
    SetSliderValueFromClick, FindParent), and TraxButton_*.

    Window keeps the left source/property/chat panel + thumbnail strip + overlay
    host, and routes the selection overlay and preview hit-testing through the
    control's public surface (previewPane.UpdateSelectionOverlay(bool),
    IsClickInsidePreview/Drawer, PreviewPane.IsDraggableElement). BackgroundMenu
    *
    stayed in the window because the left-panel source context menu uses them
    (the preview's own desktop/refresh menu binds RefreshCaptureCommand instead).

    Preserved the outer preview Border (background/glow/margin) that was initially
    dropped in the cut — caught and restored before commit. Pruned now-unused usings
    (System.Net.Http, Media.Effects, Media.Animation, Media.Imaging, Shapes,
    Threading) from MainWindow.xaml.cs.

    Zero behavior change; build 0 warnings; 246 pass, only the 2 known failures.
    Docs: ViewModels/index.md Phase 2 tracker updated in the same commit.

    Downloads