Mesen2/UI/Debugger/StatusViews/SmsStatusView.axaml
Sour d208fdc6a7 UI: Support for NativeAOT
Added Windows & Linux builds using AOT compilation
2024-06-05 20:23:31 +09:00

219 lines
8.2 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="250"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
x:DataType="vm:SmsStatusViewModel"
x:Class="Mesen.Debugger.StatusViews.SmsStatusView"
>
<Design.DataContext>
<vm:SmsStatusViewModel />
</Design.DataContext>
<UserControl.Styles>
<StyleInclude Source="/Styles/DebugStatusStyles.xaml" />
<Style Selector="WrapPanel StackPanel > TextBlock">
<Setter Property="MinWidth" Value="15" />
</Style>
<Style Selector="WrapPanel StackPanel > TextBox">
<Setter Property="Margin" Value="0 1 5 1" />
</Style>
</UserControl.Styles>
<ScrollViewer>
<StackPanel>
<DockPanel>
<StackPanel DockPanel.Dock="Right">
<StackPanel Orientation="Horizontal" IsEnabled="{Binding EditAllowed}" VerticalAlignment="Top">
<TextBlock Margin="0">SP:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegSP}" Hex="True" Max="0xFFFF" />
</StackPanel>
<TextBox
VerticalAlignment="Top"
TextWrapping="Wrap"
Width="78"
Height="65"
AcceptsReturn="True"
IsReadOnly="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
Text="{Binding StackPreview}"
/>
</StackPanel>
<WrapPanel DockPanel.Dock="Left" IsEnabled="{Binding EditAllowed}">
<WrapPanel Width="95">
<StackPanel Orientation="Horizontal">
<TextBlock>A:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegA}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>F:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegFlags}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>B:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegB}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>C:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegC}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>D:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegD}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>E:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegE}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>H:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegH}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>L:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegL}" Hex="True" Max="0xFF" />
</StackPanel>
</WrapPanel>
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>PC:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegPC}" Hex="True" Max="0xFFFF" IsEnabled="{Binding EditAllowed}" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock>IX:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegIX}" Hex="True" Max="0xFFFF" />
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock>IY:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegIY}" Hex="True" Max="0xFFFF" />
</StackPanel>
</StackPanel>
<StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Top">
<TextBlock>Cycle:</TextBlock>
<c:MesenNumericTextBox Value="{Binding CycleCount}" IsEnabled="False" Width="70" />
</StackPanel>
</StackPanel>
</WrapPanel>
</DockPanel>
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 2" DockPanel.Dock="Top" />
<WrapPanel Margin="0 2 0 0" DockPanel.Dock="Top" IsEnabled="{Binding EditAllowed}">
<StackPanel Orientation="Horizontal">
<TextBlock>F:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegFlags}" Hex="True" Max="0xFF" />
</StackPanel>
<WrapPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagCarry}" Content="Carry" />
<CheckBox IsChecked="{Binding FlagHalf}" Content="Half Carry" />
</StackPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagAddSub}" Content="Sub (N)" />
<CheckBox IsChecked="{Binding FlagF5}" Content="F5" />
</StackPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagParity}" Content="Parity" />
<CheckBox IsChecked="{Binding FlagZero}" Content="Zero" />
</StackPanel>
<StackPanel>
<CheckBox IsChecked="{Binding FlagF3}" Content="F3" />
<CheckBox IsChecked="{Binding FlagSign}" Content="Sign" />
</StackPanel>
</WrapPanel>
</WrapPanel>
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 2" DockPanel.Dock="Top" />
<WrapPanel Margin="0 2 0 0" IsEnabled="{Binding EditAllowed}">
<StackPanel Orientation="Horizontal">
<TextBlock>A':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltA}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>F':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltFlags}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>B':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltB}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>C':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltC}" Hex="True" Max="0xFF" />
</StackPanel>
</WrapPanel>
<WrapPanel IsEnabled="{Binding EditAllowed}">
<StackPanel Orientation="Horizontal">
<TextBlock>D':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltD}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>E':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltE}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>H':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltH}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>L':</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegAltL}" Hex="True" Max="0xFF" />
</StackPanel>
</WrapPanel>
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 2" DockPanel.Dock="Top" />
<WrapPanel Margin="0 2 0 0" IsEnabled="{Binding EditAllowed}">
<StackPanel Orientation="Horizontal">
<TextBlock>I:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegI}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>R:</TextBlock>
<c:MesenNumericTextBox Value="{Binding RegR}" Hex="True" Max="0xFF" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>IM:</TextBlock>
<c:MesenNumericTextBox Value="{Binding IM}" Hex="True" Max="0x2" />
</StackPanel>
<CheckBox IsChecked="{Binding FlagHalted}" Content="Halted" />
<CheckBox IsChecked="{Binding FlagIFF1}" Content="IFF1" />
<CheckBox IsChecked="{Binding FlagIFF2}" Content="IFF2" />
</WrapPanel>
<Rectangle Stroke="{StaticResource MesenGrayBorderColor}" StrokeThickness="1" Margin="5 5 5 2" DockPanel.Dock="Top" />
<WrapPanel Margin="0 2 0 0" DockPanel.Dock="Top" IsEnabled="False">
<WrapPanel.Styles>
<Style Selector="StackPanel > TextBox">
<Setter Property="MinWidth" Value="35" />
</Style>
</WrapPanel.Styles>
<StackPanel Orientation="Horizontal">
<TextBlock>Scanline:</TextBlock>
<c:MesenNumericTextBox Value="{Binding Scanline}" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Cycle:</TextBlock>
<c:MesenNumericTextBox Value="{Binding Cycle}" />
</StackPanel>
</WrapPanel>
</StackPanel>
</ScrollViewer>
</UserControl>