Mesen2/UI/Debugger/StatusViews/SnesStatusView.axaml

144 lines
5.7 KiB
XML

<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:du="using:Mesen.Debugger.Utilities"
xmlns:vm="using:Mesen.Debugger.StatusViews"
xmlns:c="using:Mesen.Controls"
mc:Ignorable="d" d:DesignWidth="350" d:DesignHeight="210"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
x:DataType="vm:SnesStatusViewModel"
x:Class="Mesen.Debugger.StatusViews.SnesStatusView"
>
<Design.DataContext>
<vm:SnesStatusViewModel />
</Design.DataContext>
<UserControl.Styles>
<StyleInclude Source="/Styles/DebugStatusStyles.xaml" />
</UserControl.Styles>
<ScrollViewer>
<StackPanel>
<DockPanel>
<StackPanel DockPanel.Dock="Right">
<StackPanel Orientation="Horizontal" IsEnabled="{Binding EditAllowed}">
<TextBlock Margin="0">SP:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegSP}" Hex="True" Max="0xFFFF" />
</StackPanel>
<TextBox
TextWrapping="Wrap"
Width="78"
Height="65"
AcceptsReturn="True"
IsReadOnly="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
Text="{Binding StackPreview}"
/>
</StackPanel>
<StackPanel DockPanel.Dock="Top" IsEnabled="{Binding EditAllowed}">
<WrapPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>A:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegA}" Hex="True" Max="0xFFFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>X:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegX}" Hex="True" Max="0xFFFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Y:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegY}" Hex="True" Max="0xFFFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>PC:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegPC}" Hex="True" Max="0xFFFFFF" />
</StackPanel>
</WrapPanel>
<WrapPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>D:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegD}" Hex="True" Max="0xFFFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>DB:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegDBR}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Cycle:</TextBlock>
<c:MesenNumericTextBox Width="70" Value="{Binding CycleCount}" IsEnabled="False" />
</StackPanel>
</WrapPanel>
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 2" />
<WrapPanel Margin="0 2 0 0" DockPanel.Dock="Top">
<StackPanel DockPanel.Dock="Left" Orientation="Horizontal" VerticalAlignment="Top">
<TextBlock>P:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegPS}" Hex="True" Max="0xFF" />
</StackPanel>
<WrapPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagC}" Content="Carry" />
<CheckBox IsChecked="{Binding FlagX}" Content="Index" />
</StackPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagZ}" Content="Zero" />
<CheckBox IsChecked="{Binding FlagM}" Content="Memory" />
</StackPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagI}" Content="Interrupt" />
<CheckBox IsChecked="{Binding FlagV}" Content="Overflow" />
</StackPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagD}" Content="Decimal" />
<CheckBox IsChecked="{Binding FlagN}" Content="Negative" />
</StackPanel>
</WrapPanel>
</WrapPanel>
<CheckBox IsChecked="{Binding FlagE}" Content="Emulation" />
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 4" />
<WrapPanel>
<TextBlock>IRQs:</TextBlock>
<CheckBox IsChecked="{Binding FlagNmi}" Content="NMI" />
<CheckBox IsChecked="{Binding FlagIrqHvCounters}" Content="H/V" />
<CheckBox IsChecked="{Binding FlagIrqCoprocessor}" Content="Coprocessor" />
</WrapPanel>
</StackPanel>
</DockPanel>
<StackPanel IsEnabled="{Binding EditAllowed}">
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 4" />
<WrapPanel>
<Grid ColumnDefinitions="Auto,Auto" RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto" Margin="0 0 5 0">
<TextBlock>H Clock:</TextBlock>
<c:MesenNumericTextBox Grid.Column="1" Value="{Binding HClock}" IsEnabled="False" MinWidth="40" />
<TextBlock Grid.Row="1">Cycle:</TextBlock>
<c:MesenNumericTextBox Grid.Row="1" Grid.Column="1" Value="{Binding Cycle}" IsEnabled="False" />
<TextBlock Grid.Row="2">Scanline:</TextBlock>
<c:MesenNumericTextBox Grid.Row="2" Grid.Column="1" Value="{Binding Scanline}" IsEnabled="False" Min="-1" />
</Grid>
<Grid ColumnDefinitions="Auto,Auto" RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto">
<TextBlock>VRAM Addr.:</TextBlock>
<c:MesenNumericTextBox Grid.Column="1" IsEnabled="False" Hex="True" Max="0xFFFF" Value="{Binding VramAddress}" />
<TextBlock Grid.Row="1">OAM Addr.:</TextBlock>
<c:MesenNumericTextBox Grid.Row="1" Grid.Column="1" IsEnabled="False" Max="0xFFF" Hex="True" Value="{Binding OamAddress}" />
<TextBlock Grid.Row="2">CGRAM Addr.:</TextBlock>
<c:MesenNumericTextBox Grid.Row="2" Grid.Column="1" IsEnabled="False" Max="0xFFF" Hex="True" Value="{Binding CgRamAddress}" />
</Grid>
</WrapPanel>
</StackPanel>
</StackPanel>
</ScrollViewer>
</UserControl>