Files
gregExtractor/GUI/Views/CoverageView.axaml
T

63 lines
3.4 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:gregExtractor.GUI.ViewModels"
x:Class="gregExtractor.GUI.Views.CoverageView">
<Grid RowDefinitions="Auto,Auto,*,Auto">
<Border Classes="greg-card" Grid.Row="0">
<Grid ColumnDefinitions="Auto,*,Auto,Auto">
<TextBlock Text="IL2CPP" VerticalAlignment="Center" Classes="greg-secondary"/>
<TextBox Grid.Column="1" Text="{Binding Il2CppPath}" Classes="greg-input"/>
<Button Grid.Column="2" Content="Auto" Classes="greg-secondary" Command="{Binding AutoDetectPathCommand}"/>
<Button Grid.Column="3" Content="Browse" Classes="greg-primary" Command="{Binding BrowseFolderCommand}" CommandParameter="Il2Cpp"/>
</Grid>
</Border>
<Border Classes="greg-card" Grid.Row="1">
<Grid ColumnDefinitions="Auto,*,Auto,*">
<TextBlock Text="Hooks" VerticalAlignment="Center" Classes="greg-secondary"/>
<TextBox Grid.Column="1" Text="{Binding GameHooksPath}" Classes="greg-input"/>
<TextBlock Grid.Column="2" Text="Output" VerticalAlignment="Center" Classes="greg-secondary"/>
<TextBox Grid.Column="3" Text="{Binding OutputBasePath}" Classes="greg-input"/>
</Grid>
</Border>
<Grid Grid.Row="2" ColumnDefinitions="280,*">
<Border Classes="greg-card" Grid.Column="0">
<StackPanel Spacing="8">
<Button Content="Coverage analysieren" Classes="greg-primary" Command="{Binding AnalyzeCoverageCommand}" Height="36"/>
<Button Content="Markdown öffnen" Classes="greg-secondary" Command="{Binding OpenMarkdownReportCommand}"/>
<Separator/>
<TextBlock Text="{Binding TotalHooks, StringFormat='Total: {0}'}"/>
<TextBlock Text="{Binding CoveredCount, StringFormat='Covered: {0}'}"/>
<TextBlock Text="{Binding PlannedCount, StringFormat='Planned: {0}'}"/>
<TextBlock Text="{Binding UncoveredCount, StringFormat='Uncovered: {0}'}"/>
<TextBlock Text="{Binding CoveragePercent, StringFormat='Coverage: {0:F2}%'}"/>
<Separator/>
<ListBox ItemsSource="{Binding LogLines}" Height="280"/>
</StackPanel>
</Border>
<Border Classes="greg-card" Grid.Column="1">
<DataGrid ItemsSource="{Binding Entries}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Status" Binding="{Binding CoverageStatus}" Width="120"/>
<DataGridTextColumn Header="Group" Binding="{Binding HookDefinition.Group}" Width="160"/>
<DataGridTextColumn Header="Class" Binding="{Binding HookDefinition.ClassName}" Width="200"/>
<DataGridTextColumn Header="Method" Binding="{Binding HookDefinition.MethodName}" Width="*"/>
<DataGridTextColumn Header="Files" Binding="{Binding FoundInFiles.Count}" Width="80"/>
</DataGrid.Columns>
</DataGrid>
</Border>
</Grid>
<ProgressBar Grid.Row="3" Value="{Binding Progress}" Maximum="100" Classes="greg-progress"/>
<Border IsVisible="{Binding IsLoading}" Background="#880B1220" CornerRadius="12">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="8">
<ProgressBar IsIndeterminate="True" Width="220"/>
<TextBlock Text="Coverage läuft..."/>
</StackPanel>
</Border>
</Grid>
</UserControl>