diff --git a/Controls/TopBar.xaml b/Controls/TopBar.xaml index ffba55e..3fe7a63 100644 --- a/Controls/TopBar.xaml +++ b/Controls/TopBar.xaml @@ -66,43 +66,40 @@ question "which world am I in?" and "can I edit?" cannot disagree. Clicking the highlighted half re-enters it, which is how a creator gets back to the layers during a session. --> - + - - - - - - + + + + + + + diff --git a/Themes/Tokens.xaml b/Themes/Tokens.xaml index 67a1163..84b3240 100644 --- a/Themes/Tokens.xaml +++ b/Themes/Tokens.xaml @@ -35,6 +35,16 @@ + + + + + + + + + + diff --git a/ytLive.Tests/UiShellTests.cs b/ytLive.Tests/UiShellTests.cs index 6dda653..4da7b6d 100644 --- a/ytLive.Tests/UiShellTests.cs +++ b/ytLive.Tests/UiShellTests.cs @@ -29,8 +29,8 @@ public class UiShellTests // 2. The world segment replaced the EDIT toggle (creator ruling 2026-11-12): both halves are // present, each lit by its own world flag through the shared style. - Assert.Contains("Text=\"Build Scenes\"", topBar); - Assert.Contains("Text=\"Record / Go Live\"", topBar); + Assert.Contains("Text=\"Build scenes\"", topBar); + Assert.Contains("Text=\"Record / go live\"", topBar); Assert.Contains("Tag=\"{Binding IsBuildWorld}\"", topBar); Assert.Contains("Tag=\"{Binding IsOutputWorld}\"", topBar); Assert.DoesNotContain("x:Name=\"EditBody\"", topBar); @@ -38,6 +38,10 @@ public class UiShellTests // 2b. The segment is Build-world only: choosing Record / Go Live REPLACES it with the output // line (creator ruling 2026-11-12), and a chevron is the way back. Assert.Contains("Data=\"M3,4h8v6H3V4zM13,4h8v6h-8V4zM3,12h8v8H3V12zM13,12h8v8h-8V12z\"", topBar); + // Segmented switcher (creator mock 2026-11-12): pill track, two equal halves, coral active icon. + Assert.Contains("Brush.SegmentTrack", topBar); + Assert.Contains("Style=\"{StaticResource SegmentHalf}\"", topBar); + Assert.Contains("Style=\"{StaticResource SegmentIcon}\"", topBar); Assert.Contains("Visibility=\"{Binding IsBuildWorld, Converter={StaticResource BoolToVis}}\"", topBar); Assert.Contains("Text=\"Output:\"", topBar); Assert.Contains("Text=\"press <esc> to return\"", topBar); @@ -116,7 +120,7 @@ public class UiShellTests // The world segment leads the centre cluster; the brand column carries no edit control. var centre = topBar.IndexOf(" 0 && segment > centre, "the [ Build Scenes ][ Record / Go Live ] segment must lead the centre cluster"); Assert.DoesNotContain("x:Name=\"EditBody\"", topBar);