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

122 lines
4.4 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:du="using:Mesen.Debugger.Utilities"
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="700" d:DesignHeight="500"
x:Class="Mesen.Debugger.Windows.AssemblerWindow"
Icon="/Assets/Chip.png"
Width="700" Height="500"
x:DataType="vm:AssemblerWindowViewModel"
Title="{l:Translate wndTitle}"
>
<Design.DataContext>
<vm:AssemblerWindowViewModel />
</Design.DataContext>
<Window.Styles>
<Style Selector="Grid.main > Border">
<Setter Property="BorderBrush" Value="Gray" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Margin" Value="2" />
</Style>
</Window.Styles>
<DockPanel>
<c:MesenMenu DockPanel.Dock="Top" Name="ActionMenu">
<MenuItem Header="{l:Translate mnuFile}" ItemsSource="{Binding FileMenuActions}" />
<MenuItem Header="{l:Translate mnuOptions}" ItemsSource="{Binding OptionsMenuActions}" />
</c:MesenMenu>
<Grid Classes="main" ColumnDefinitions="1*, 300" RowDefinitions="3*,100" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Border Grid.Column="0">
<dc:MesenTextEditor
Name="Editor"
ShowLineNumbers="False"
TextBinding="{Binding Code}"
FontFamily="{DynamicResource MesenAssemblerFont}"
FontSize="{DynamicResource MesenAssemblerFontSize}"
/>
</Border>
<Border Grid.Column="1">
<dc:MesenTextEditor
Name="HexView"
IsReadOnly="True"
FontFamily="{DynamicResource MesenAssemblerFont}"
FontSize="{DynamicResource MesenAssemblerFontSize}"
TextBinding="{Binding ByteCodeView}"
/>
</Border>
<Border Grid.Row="1">
<DataBox
Items="{Binding Errors}"
GridLinesVisibility="All"
CellClick="OnCellClick"
>
<DataBox.Columns>
<DataBoxTextColumn Header="{l:Translate colLine}" Binding="{Binding LineNumber, DataType={x:Type vm:AssemblerError}}" CanUserResize="True" />
<DataBoxTextColumn Header="{l:Translate colError}" Binding="{Binding Message, DataType={x:Type vm:AssemblerError}}" CanUserResize="True" InitialWidth="400" />
</DataBox.Columns>
</DataBox>
</Border>
<Border Grid.Row="1" Grid.Column="1" Padding="2">
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" HorizontalAlignment="Right">
<TextBlock Text="{l:Translate lblCodeMatchesOriginal}" Padding="5 0" FontStyle="Italic" IsVisible="{Binding IsIdentical}" />
<c:ButtonWithIcon
MinWidth="70"
HorizontalContentAlignment="Center"
Click="Ok_OnClick"
Icon="Assets/Warning.png"
ShowIcon="{Binding HasWarning}"
Text="{l:Translate btnOk}"
IsEnabled="{Binding OkEnabled}"
/>
<Button MinWidth="70" HorizontalContentAlignment="Center" Click="Cancel_OnClick" Content="{l:Translate btnCancel}" />
</StackPanel>
<Grid ColumnDefinitions="Auto,Auto" RowDefinitions="Auto,Auto">
<TextBlock Text="{l:Translate lblStartAddress}" />
<c:MesenNumericTextBox
Grid.Column="1"
Width="50"
Hex="True"
Max="{Binding MaxAddress}"
Value="{Binding StartAddress}"
/>
<TextBlock Text="{l:Translate lblBytesUsed}" Grid.Row="1" Margin="0 5 0 0" />
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1" Margin="0 5 0 0">
<TextBlock Text="{Binding BytesUsed}" Margin="5 0 0 0" />
<TextBlock Text="/" Margin="5 0" IsVisible="{Binding OriginalByteCount}" />
<TextBlock Text="{Binding OriginalByteCount}" IsVisible="{Binding OriginalByteCount}" />
<Image
Margin="5 0"
Source="/Assets/Warning.png"
IsVisible="{Binding OriginalSizeExceeded}"
ToolTip.Tip="{l:Translate lblByteCountExceeded}"
/>
<Image
Margin="5 0"
Source="/Assets/Warning.png"
IsVisible="{Binding MaxSizeExceeded}"
ToolTip.Tip="{l:Translate lblMaxSizeExceeded}"
/>
</StackPanel>
</Grid>
</DockPanel>
</Border>
</Grid>
</DockPanel>
</Window>