Mesen2/UI/Debugger/Windows/DebuggerWindow.axaml
Sour ad548465c6 Debugger: NES - Added new "break on..." options
Invalid VRAM access, Invalid OAM write, DMA controller read, Unstable opcodes
2025-03-27 21:16:02 +09:00

211 lines
6.8 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:vmd="using:Mesen.Debugger.ViewModels.DebuggerDock"
xmlns:sv="using:Mesen.Debugger.StatusViews"
xmlns:dbg="using:Mesen.Debugger"
xmlns:v="using:Mesen.Debugger.Views"
xmlns:vd="using:Mesen.Debugger.Views.DebuggerDock"
xmlns:c="using:Mesen.Controls"
xmlns:l="using:Mesen.Localization"
xmlns:dc="using:Mesen.Debugger.Controls"
xmlns:du="using:Mesen.Debugger.Utilities"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:id="clr-namespace:Dock.Avalonia;assembly=Dock.Avalonia"
xmlns:idc="clr-namespace:Dock.Avalonia.Controls;assembly=Dock.Avalonia"
xmlns:dm="clr-namespace:Dock.Model;assembly=Dock.Model.Avalonia"
xmlns:dmc="clr-namespace:Dock.Model.Controls;assembly=Dock.Model.Avalonia"
mc:Ignorable="d"
DragDrop.AllowDrop="True"
x:Class="Mesen.Debugger.Windows.DebuggerWindow"
x:DataType="vm:DebuggerWindowViewModel"
Title="{Binding Title}"
Icon="{Binding Icon}"
Width="800" Height="500"
x:Name="Debugger"
>
<Design.DataContext>
<vm:DebuggerWindowViewModel />
</Design.DataContext>
<Window.Styles>
<Style Selector="TabStrip:singleitem">
<Setter Property="IsVisible" Value="False" />
</Style>
<Style Selector="idc|ToolChromeControl">
<Setter Property="Margin" Value="0 0 1 0" />
</Style>
<Style Selector="idc|ToolControl,idc|DockControl,idc|ToolChromeControl">
<Setter Property="(ProportionalStackPanelSplitter.MinimumProportionSize)" Value="60" />
</Style>
</Window.Styles>
<Window.DataTemplates>
<DataTemplate DataType="{x:Type vm:MemoryMappingViewModel}">
<StackPanel>
<dc:MemoryMappingViewer
Margin="2 1"
IsVisible="{Binding CpuMappings.Count}"
Mappings="{Binding CpuMappings}"
MemType="{Binding CpuMemType}"
/>
<dc:MemoryMappingViewer
Margin="2 1"
IsVisible="{Binding PpuMappings.Count}"
Mappings="{Binding PpuMappings}"
MemType="{Binding PpuMemType}"
/>
</StackPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type sv:Cx4StatusViewModel}">
<sv:Cx4StatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:GbaStatusViewModel}">
<sv:GbaStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:GbStatusViewModel}">
<sv:GbStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:GsuStatusViewModel}">
<sv:GsuStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:NecDspStatusViewModel}">
<sv:NecDspStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:St018StatusViewModel}">
<sv:St018StatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:NesStatusViewModel}">
<sv:NesStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:PceStatusViewModel}">
<sv:PceStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:SmsStatusViewModel}">
<sv:SmsStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:WsStatusViewModel}">
<sv:WsStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:SnesStatusViewModel}">
<sv:SnesStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type sv:SpcStatusViewModel}">
<sv:SpcStatusView />
</DataTemplate>
<DataTemplate DataType="{x:Type vmd:BaseToolContainerViewModel}">
<vd:ToolContainerView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:BreakpointListViewModel}">
<v:BreakpointListView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:CallStackViewModel}">
<v:CallStackView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ControllerInputViewModel}">
<v:ControllerInputView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ControllerListViewModel}">
<v:ControllerListView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:DisassemblyViewModel}">
<v:DisassemblyView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:FindResultListViewModel}">
<v:FindResultListView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:FunctionListViewModel}">
<v:FunctionListView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:LabelListViewModel}">
<v:LabelListView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:SourceViewViewModel}">
<v:SourceViewView />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:WatchListViewModel}">
<v:WatchListView />
</DataTemplate>
</Window.DataTemplates>
<DockPanel>
<c:MesenMenu DockPanel.Dock="Top" Name="ActionMenu">
<MenuItem Header="{l:Translate mnuFile}" ItemsSource="{Binding FileMenuItems}" />
<MenuItem Header="{l:Translate mnuDebug}" ItemsSource="{Binding DebugMenuItems}" />
<MenuItem Header="{l:Translate mnuSearch}" ItemsSource="{Binding SearchMenuItems}" />
<MenuItem Header="{l:Translate mnuOptions}" ItemsSource="{Binding OptionMenuItems}" />
</c:MesenMenu>
<DockPanel DockPanel.Dock="Top">
<c:IconButton
HorizontalAlignment="Right"
DockPanel.Dock="Right"
ToolTip.Tip="{l:Translate btnToggleSettingsPanel}"
Click="OnSettingsClick"
Icon="Assets/Settings.png"
/>
<StackPanel Orientation="Horizontal">
<dc:ActionToolbar Items="{Binding ToolbarItems}" />
</StackPanel>
</DockPanel>
<DockPanel>
<Panel DockPanel.Dock="Right" IsVisible="{Binding Config.ShowSettingsPanel}">
<ScrollViewer>
<v:DebuggerOptionsView DataContext="{Binding Options}" />
</ScrollViewer>
</Panel>
<Grid DockPanel.Dock="Bottom" MinHeight="18" RowDefinitions="1*" ColumnDefinitions="1*,1*,1*">
<StackPanel Orientation="Horizontal" Grid.Column="0">
<Image
Source="/Assets/Breakpoint.png"
VerticalAlignment="Center"
Stretch="None"
IsVisible="{Binding BreakReason.Length}"
/>
<TextBlock
Text="{Binding BreakReason}"
VerticalAlignment="Center"
/>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Grid.Column="1">
<TextBlock
Text="{Binding CdlStats}"
VerticalAlignment="Center"
/>
</StackPanel>
<StackPanel
Orientation="Horizontal"
HorizontalAlignment="Right"
Grid.Column="2"
ToolTip.Tip="{Binding BreakElapsedCyclesTooltip}"
ToolTip.ShowDelay="100"
IsVisible="{Binding BreakElapsedCycles.Length}"
>
<Image
Source="/Assets/Speed.png"
VerticalAlignment="Center"
Stretch="None"
/>
<TextBlock
Text="{Binding BreakElapsedCycles}"
VerticalAlignment="Center"
Margin="3 0"
/>
</StackPanel>
</Grid>
<ContentControl
Content="{Binding MemoryMappings}"
IsVisible="{Binding Config.ShowMemoryMappings}"
DockPanel.Dock="Bottom"
/>
<idc:DockControl Layout="{Binding DockLayout}" />
</DockPanel>
</DockPanel>
</Window>