Files
2026-05-06 09:11:29 +10:00

146 lines
5.9 KiB
XML

<Window x:Class="BlackbirdInterface.ParallelStacksWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Parallel Stacks"
Height="980"
Width="1560"
MinHeight="760"
MinWidth="1220"
SizeToContent="Manual"
WindowStartupLocation="CenterOwner"
Background="{DynamicResource WinBgBrush}">
<Grid Margin="8">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0"
Background="{DynamicResource WinPanelBrush}"
BorderBrush="{DynamicResource WinBorderBrush}"
BorderThickness="1"
Padding="10,6"
Margin="0,0,0,6">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="Parallel Stacks"
FontSize="16"
FontWeight="SemiBold"/>
<TextBlock x:Name="SubtitleBlock"
Margin="0,2,0,0"
Foreground="{DynamicResource WinMutedTextBrush}"
Text="Resolving current thread stacks"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Button Content="Refresh"
MinWidth="72"
Margin="0,0,8,0"
Click="Refresh_Click"/>
<Button Content="✕"
Width="22"
Height="20"
Click="Close_Click"/>
</StackPanel>
</Grid>
</Border>
<Border Grid.Row="1"
Background="{DynamicResource WinHeaderBrush}"
BorderBrush="{DynamicResource WinSubtleBorderBrush}"
BorderThickness="1"
Padding="8,4"
Margin="0,0,0,6">
<TextBlock x:Name="SummaryBlock"
Foreground="{DynamicResource WinMutedTextBrush}"
Text="No threads loaded"/>
</Border>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.6*"/>
<ColumnDefinition Width="6"/>
<ColumnDefinition Width="1.05*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
BorderBrush="{DynamicResource WinBorderBrush}"
BorderThickness="1"
Background="{DynamicResource WinPanelBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0"
Background="{DynamicResource WinHeaderBrush}"
BorderBrush="{DynamicResource WinSubtleBorderBrush}"
BorderThickness="0,0,0,1"
Padding="8,4">
<TextBlock Text="Thread Stack Map"
FontWeight="SemiBold"/>
</Border>
<ScrollViewer Grid.Row="1"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Canvas x:Name="StacksCanvas"
MinWidth="1280"
MinHeight="820"
Background="#FF131313"/>
</ScrollViewer>
</Grid>
</Border>
<GridSplitter Grid.Column="1"
Width="6"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
<Border Grid.Column="2"
BorderBrush="{DynamicResource WinBorderBrush}"
BorderThickness="1"
Background="{DynamicResource WinPanelBrush}">
<Grid Margin="8">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel>
<TextBlock x:Name="SelectedTitleBlock"
FontSize="14"
FontWeight="SemiBold"
Text="No thread selected"/>
<TextBlock x:Name="SelectedMetaBlock"
Margin="0,2,0,0"
Foreground="{DynamicResource WinMutedTextBrush}"
Text="Select a thread row to inspect frames"/>
</StackPanel>
<TextBox x:Name="DetailBox"
Grid.Row="1"
Margin="0,8,0,0"
BorderThickness="0"
Background="Transparent"
Foreground="{DynamicResource WinTextBrush}"
FontFamily="{DynamicResource AppMonoFontFamily}"
IsReadOnly="True"
TextWrapping="NoWrap"
AcceptsReturn="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"/>
</Grid>
</Border>
</Grid>
</Grid>
</Window>