- LeftPanel: SCENE LAYERS header with layer count; per-type blue icons; properties header gear; layers list min/max height; properties placeholder; list and properties indent - SceneThumbnailStrip: names/hotkeys over the tile; PROGRAM badge with blinking red dot on the selected tile; orange border on selected and live tiles; fixed the element border override that hid the style border; reflag tiles on load - LiveScene is now set on go-live, record start, and live transitions (it was never assigned, so IsLive never fired) - Startup stages the scene named Starting - DESIGN.md: color roles (red = YouTube/on-air/record, orange #ff8c3a = attention, amber = game audio/Super Chat) - Staged live tile uses background art instead of the green LIVE placeholder Not pushed.
34 lines
974 B
C#
34 lines
974 B
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
using ytLive.Models;
|
|
using ytLive.ViewModels;
|
|
|
|
namespace ytLive.Controls;
|
|
|
|
public partial class SceneThumbnailStrip : UserControl
|
|
{
|
|
private const double DesignAspect = 154.0 / 1000.0;
|
|
|
|
public SceneThumbnailStrip()
|
|
{
|
|
InitializeComponent();
|
|
SizeChanged += (_, _) => Height = ActualWidth * DesignAspect;
|
|
Loaded += (_, _) =>
|
|
{
|
|
if (DataContext is MainViewModel vm)
|
|
foreach (var scene in vm.Scenes)
|
|
{
|
|
var staged = scene.IsStaged;
|
|
scene.IsStaged = !staged;
|
|
scene.IsStaged = staged;
|
|
}
|
|
};
|
|
}
|
|
|
|
private void Thumbnail_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (sender is Border { DataContext: Scene scene } && DataContext is MainViewModel vm)
|
|
vm.TransitionToScene(scene);
|
|
}
|
|
} |