Social bar UX: YT auto-add from connected account, two-box dialog (YT handle + URL/handle for other services), service auto-detection from URL domain, fediverse @user@domain support, footer repositioned (Social controls left under scenes/sources, meter centered under preview), validation with add-anyway fallback
This commit is contained in:
+46
-34
@@ -795,12 +795,50 @@
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Line 1: sound meter + volume control, centered beneath the
|
||||
middle (preview) panel. Audio is KISS: desktop/game audio is
|
||||
automatic ("it just is" — WASAPI loopback at unity, zero UI);
|
||||
the creator's only audio control is the mic — meter, volume, mute. -->
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<!-- Line 1: Social controls on the LEFT (under scenes/sources),
|
||||
sound meter + volume control CENTERED beneath the preview panel.
|
||||
Audio is KISS: desktop/game audio is automatic ("it just is" —
|
||||
WASAPI loopback at unity, zero UI); the creator's only audio
|
||||
control is the mic — meter, volume, mute. -->
|
||||
<Grid Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="220"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="300"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Social controls: centered under the scenes/sources listboxes -->
|
||||
<StackPanel Grid.Column="0" Orientation="Horizontal"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<Button Content="Social" Command="{Binding OpenSocialDialogCommand}"
|
||||
Style="{StaticResource YtButtonSecondary}" Padding="12,4"
|
||||
FontSize="11" VerticalAlignment="Center"
|
||||
ToolTip="Add or manage your social handles"/>
|
||||
<Button Command="{Binding ToggleSceneSocialBarCommand}"
|
||||
Visibility="{Binding CanToggleSceneSocialBar, Converter={StaticResource BoolToVis}}"
|
||||
Style="{StaticResource IconButton}" Width="28" Height="28" Margin="4,0,0,0"
|
||||
VerticalAlignment="Center" FontSize="16" FontWeight="Bold"
|
||||
ToolTip="Add or remove the social bar on this scene">
|
||||
<Button.Content>
|
||||
<TextBlock FontSize="16" FontWeight="Bold">
|
||||
<TextBlock.Style>
|
||||
<Style TargetType="TextBlock">
|
||||
<Setter Property="Text" Value="+"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SceneHasSocialBar}" Value="True">
|
||||
<Setter Property="Text" Value="−"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</TextBlock.Style>
|
||||
</TextBlock>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Meter + volume: centered under the preview panel -->
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<TextBlock Text="MIC" Foreground="#a0a0b0" FontSize="11" FontWeight="SemiBold"
|
||||
VerticalAlignment="Center" Margin="0,0,8,0" Cursor="Hand"
|
||||
ToolTip="Choose the microphone (voice source)"
|
||||
@@ -854,34 +892,8 @@
|
||||
PreviewMouseLeftButtonDown="VolumeSlider_PreviewMouseLeftButtonDown"
|
||||
PreviewMouseLeftButtonUp="VolumeSlider_PreviewMouseLeftButtonUp"
|
||||
LostMouseCapture="VolumeSlider_LostMouseCapture"/>
|
||||
|
||||
<Separator Margin="16,0,0,0" Background="#2a3a5e" Width="1" Height="20"
|
||||
VerticalAlignment="Center"/>
|
||||
<Button Content="Social" Command="{Binding OpenSocialDialogCommand}"
|
||||
Style="{StaticResource YtButtonSecondary}" Padding="12,4" Margin="8,0,0,0"
|
||||
FontSize="11" VerticalAlignment="Center"
|
||||
ToolTip="Add or manage your social handles"/>
|
||||
<Button Command="{Binding ToggleSceneSocialBarCommand}"
|
||||
Visibility="{Binding CanToggleSceneSocialBar, Converter={StaticResource BoolToVis}}"
|
||||
Style="{StaticResource IconButton}" Width="28" Height="28" Margin="4,0,0,0"
|
||||
VerticalAlignment="Center" FontSize="16" FontWeight="Bold"
|
||||
ToolTip="Add or remove the social bar on this scene">
|
||||
<Button.Content>
|
||||
<TextBlock FontSize="16" FontWeight="Bold">
|
||||
<TextBlock.Style>
|
||||
<Style TargetType="TextBlock">
|
||||
<Setter Property="Text" Value="+"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SceneHasSocialBar}" Value="True">
|
||||
<Setter Property="Text" Value="−"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</TextBlock.Style>
|
||||
</TextBlock>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- Line 2: everything else — stream stats on the left, quality +
|
||||
gear on the right. -->
|
||||
|
||||
Reference in New Issue
Block a user