Mesen2/UI/Debugger/Windows/ProfilerWindow.axaml

77 lines
4.1 KiB
XML

<Window
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:m="clr-namespace:Mesen"
xmlns:vm="using:Mesen.Debugger.ViewModels"
xmlns:sys="using:System"
xmlns:v="using:Mesen.Views"
xmlns:dbg="using:Mesen.Debugger"
xmlns:c="using:Mesen.Controls"
xmlns:l="using:Mesen.Localization"
xmlns:i="using:Mesen.Interop"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dvm="using:Mesen.Debugger.ViewModels"
xmlns:dc="using:Mesen.Debugger.Controls"
mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="300"
x:Class="Mesen.Debugger.Windows.ProfilerWindow"
Icon="/Assets/Speed.png"
Width="700" Height="500"
x:DataType="vm:ProfilerWindowViewModel"
Title="{l:Translate wndTitle}"
>
<Design.DataContext>
<vm:ProfilerWindowViewModel />
</Design.DataContext>
<Window.Styles>
<Style Selector="TabControl:singleitem > TabItem">
<Setter Property="IsVisible" Value="False" />
</Style>
</Window.Styles>
<DockPanel>
<c:MesenMenu DockPanel.Dock="Top" Name="ActionMenu">
<MenuItem Header="{l:Translate mnuFile}" ItemsSource="{Binding FileMenuActions}" />
<MenuItem Header="{l:Translate mnuView}" ItemsSource="{Binding ViewMenuActions}" />
</c:MesenMenu>
<TabControl ItemsSource="{Binding ProfilerTabs}" SelectedItem="{Binding SelectedTab}" Padding="1">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding TabName}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate DataType="vm:ProfilerTab">
<Border BorderBrush="Gray" BorderThickness="1">
<DataBox
Name="ProfilerList"
Items="{Binding GridData}"
Selection="{Binding Selection}"
SortState="{Binding SortState}"
CellDoubleClick="OnCellDoubleClick"
SortMode="Multiple"
SortCommand="{Binding SortCommand}"
GridLinesVisibility="All"
ColumnWidths="{Binding ColumnWidths}"
>
<DataBox.Columns>
<DataBoxTextColumn ColumnName="FunctionName" Header="{l:Translate colFunction}" Binding="{Binding FunctionName, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="151" />
<DataBoxTextColumn ColumnName="CallCount" Header="{l:Translate colCallCount}" Binding="{Binding CallCount, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="77" />
<DataBoxTextColumn ColumnName="InclusiveTime" Header="{l:Translate colInclusiveTime}" Binding="{Binding InclusiveCycles, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="93" />
<DataBoxTextColumn ColumnName="InclusiveTimePercent" Header="{l:Translate colInclusiveTimePercent}" Binding="{Binding InclusivePercent, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="52" />
<DataBoxTextColumn ColumnName="ExclusiveTime" Header="{l:Translate colExclusiveTime}" Binding="{Binding ExclusiveCycles, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="81" />
<DataBoxTextColumn ColumnName="ExclusiveTimePercent" Header="{l:Translate colExclusiveTimePercent}" Binding="{Binding ExclusivePercent, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="60" />
<DataBoxTextColumn ColumnName="AvgCycles" Header="{l:Translate colAvgCycles}" Binding="{Binding AvgCycles, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="53" />
<DataBoxTextColumn ColumnName="MinCycles" Header="{l:Translate colMinCycles}" Binding="{Binding MinCycles, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="53" />
<DataBoxTextColumn ColumnName="MaxCycles" Header="{l:Translate colMaxCycles}" Binding="{Binding MaxCycles, DataType={x:Type vm:ProfiledFunctionViewModel}}" CanUserResize="True" InitialWidth="61" />
</DataBox.Columns>
</DataBox>
</Border>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</DockPanel>
</Window>