FModel/FModel/FModel_Main.xaml
2019-10-29 10:49:42 +01:00

194 lines
12 KiB
XML

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:local="clr-namespace:FModel"
xmlns:commands="clr-namespace:FModel.Commands"
xmlns:TreeViewModel="clr-namespace:FModel.Methods.TreeViewModel"
xmlns:avalonedit="http://icsharpcode.net/sharpdevelop/avalonedit"
x:Class="FModel.MainWindow"
mc:Ignorable="d"
Title="FModel"
Height="744"
MinHeight="744"
Width="1207"
MinWidth="1207"
Style="{StaticResource {x:Type Window}}"
WindowStartupLocation="CenterScreen"
Icon="Logo.ico"
Loaded="Window_Loaded"
UseLayoutRounding="True">
<Window.CommandBindings>
<CommandBinding Command="{x:Static commands:FModel_Commands.OpenSettings}" Executed="MI_Settings_Click"/>
<CommandBinding Command="{x:Static commands:FModel_Commands.OpenSearch}" Executed="MI_Search_Click"/>
<CommandBinding Command="{x:Static commands:FModel_Commands.OpenOutput}" Executed="MI_OpenOutputFolder_Click"/>
<CommandBinding Command="{x:Static commands:FModel_Commands.MergeImages}" Executed="MI_MergeImages_Click"/>
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Key="F1" Command="{x:Static commands:FModel_Commands.OpenSettings}"/>
<KeyBinding Key="F2" Command="{x:Static commands:FModel_Commands.OpenSearch}"/>
<KeyBinding Key="F3" Command="{x:Static commands:FModel_Commands.OpenOutput}"/>
<KeyBinding Key="F4" Command="{x:Static commands:FModel_Commands.MergeImages}"/>
</Window.InputBindings>
<Grid>
<Menu Height="25" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5">
<MenuItem Header="Load">
<MenuItem x:Name="MI_LoadOnePAK" Header="Load One PAK" IsEnabled="False"/>
<MenuItem x:Name="MI_LoadAllPAKs" Header="Load All PAKs" Padding="2,4,2,2" IsEnabled="False" Click="MI_LoadAllPAKs_Click"/>
<Separator/>
<MenuItem x:Name="MI_ReloadAESs" Header="Reload AES Keys" Click="MI_ReloadAESs_Click"/>
<Separator/>
<MenuItem x:Name="MI_DownloadBackups" Header="Download Backups"/>
<MenuItem x:Name="MI_BackupPAKs" Header="Backup PAKs" Click="MI_BackupPAKs_Click" IsEnabled="False"/>
<Separator/>
<MenuItem x:Name="MI_DifferenceMode" Header="Difference Mode" IsCheckable="True" Checked="MI_Change_Header" Unchecked="MI_Change_Header"/>
<MenuItem x:Name="MI_UpdateMode" Header="Update Mode (Coming Soon)" IsCheckable="True" Checked="MI_Change_Header" Unchecked="MI_Change_Header" IsEnabled="False"/>
<Separator/>
<MenuItem x:Name="MI_Settings" Header="Settings" InputGestureText="F1" Command="{x:Static commands:FModel_Commands.OpenSettings}">
<MenuItem.Icon>
<Image Source="Resources/settings_16x.png" Width="16" Height="16"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="Files">
<MenuItem x:Name="MI_Search" Header="Search" InputGestureText="F2" Command="{x:Static commands:FModel_Commands.OpenSearch}"/>
<MenuItem x:Name="MI_HexViewer" Header="Hex Viewer" Click="MI_HexViewer_Click">
<MenuItem.Icon>
<Image Source="/FModel;component/Resources/Logo-Icon.ico" Width="19"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem x:Name="MI_ExportRaw" Header="Export RAW Data" Click="MI_ExportRaw_Click">
<MenuItem.Icon>
<Image Source="/FModel;component/Resources/save_16x.png" Height="15" Width="15"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="MI_AutoExportRaw" Header="Auto Export RAW Data" IsCheckable="True"/>
<Separator/>
<MenuItem x:Name="MI_SaveJson" Header="Save JSON Data" Click="MI_SaveJson_Click">
<MenuItem.Icon>
<Image Source="/FModel;component/Resources/save_16x.png" Height="15" Width="15"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="MI_AutoSaveJson" Header="Auto Save JSON Data" IsCheckable="True"/>
<Separator/>
<MenuItem Header="Open Output Folder" InputGestureText="F3" Command="{x:Static commands:FModel_Commands.OpenOutput}">
<MenuItem.Icon>
<Image Source="/FModel;component/Resources/folder_16x.png" Width="16" Height="16"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="Image">
<MenuItem x:Name="MI_Save_Image" Header="Save Image" Click="MI_Save_Image_Click">
<MenuItem.Icon>
<Image Source="Resources/save_16x.png" Height="15" Width="15"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="MI_Auto_Save_Images" Header="Auto Save Images" IsCheckable="True"/>
<Separator/>
<MenuItem Header="Images Merger" InputGestureText="F4" Command="{x:Static commands:FModel_Commands.MergeImages}"/>
</MenuItem>
<MenuItem Header="Help">
<MenuItem x:Name="MI_About" Header="About FModel" Click="MI_About_Click">
<MenuItem.Icon>
<Image Source="Resources/info_16x.png" Width="16" Height="16"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>
<StatusBar Height="22" Margin="0" VerticalAlignment="Bottom" Background="#FF1C2026" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Row="1">
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem Grid.Column="0">
<TextBlock x:Name="FModelVersionLabel" Text="FModel "/>
</StatusBarItem>
<StatusBarItem Grid.Column="1" HorizontalContentAlignment="Center">
<TextBlock x:Name="PEventTextBlock" Text="Process Events"/>
</StatusBarItem>
<StatusBarItem Grid.Column="2" HorizontalContentAlignment="Right">
<TextBlock x:Name="StateTextBlock" Text="State" Margin="0" Padding="5,0"/>
</StatusBarItem>
</StatusBar>
<Grid Margin="0,25,0,22">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="359*"/>
<ColumnDefinition Width="840*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Button x:Name="Button_Extract" Content="Extract" HorizontalAlignment="Right" Margin="0,0,10,6" Grid.Row="2" VerticalAlignment="Bottom" Width="80" Grid.Column="1" Height="19" IsEnabled="False" Click="Button_Extract_Click"/>
<Button x:Name="Button_Stop" Content="Stop" HorizontalAlignment="Right" Margin="0,0,95,6" Grid.Row="2" VerticalAlignment="Bottom" Width="80" Grid.Column="1" Height="19" IsEnabled="False" Click="Button_Stop_Click"/>
<Button x:Name="Button_OpenImage" Content="Open Image" HorizontalAlignment="Right" Margin="0,0,180,6" Grid.Row="2" VerticalAlignment="Bottom" Width="80" Grid.Column="1" Height="19" Click="Button_OpenImage_Click"/>
<Button x:Name="Button_AESManager" Content="AES Manager" HorizontalAlignment="Right" Margin="0,0,300,6" Grid.Row="2" VerticalAlignment="Bottom" Width="180" Grid.Column="1" Height="19" Click="Button_AESManager_Click"/>
<TextBox x:Name="FilterTextBox_Main" Height="19" Margin="40,0,0,6" Grid.Row="2" TextWrapping="NoWrap" VerticalAlignment="Bottom" Foreground="#FFEFEFEF" TextChanged="FilterTextBox_Main_TextChanged"/>
<Label Content="Filter:" HorizontalAlignment="Left" Margin="2,0,0,3" Grid.Row="2" VerticalAlignment="Bottom" Height="25" Width="38" Padding="5,7,5,5"/>
<TreeView x:Name="TreeView_Main" TreeViewItem.Selected="NodeSelected" Margin="2,1,0,0" ItemsSource="{Binding ItemsView}" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type TreeViewModel:TreeViewModel}" ItemsSource="{Binding ItemsView}">
<TextBlock Text="{Binding Value}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem x:Name="RC_ExtractFolders" Header="Extract Folder and Subfolders" Click="RC_ExtractFolders_Click"/>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
<ListBox x:Name="ListBox_Main" Margin="2,1,0,2" Grid.Row="1" SelectionMode="Extended" SelectionChanged="ListBox_Main_SelectionChanged" MouseDoubleClick="ListBox_Main_MouseDoubleClick">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem x:Name="RC_Extract" Header="Extract Asset" Click="RC_Extract_Click"/>
<MenuItem x:Name="RC_ExportData" Header="Export RAW Data" Click="RC_ExportData_Click"/>
<MenuItem x:Name="RC_SaveData" Header="Save JSON Data" Click="RC_SaveData_Click"/>
<Separator/>
<MenuItem Header="Copy File">
<MenuItem x:Name="RC_Copy_FPath" Header="Copy File Path" Click="RC_Copy_FPath_Click"/>
<MenuItem x:Name="RC_Copy_FName" Header="Copy File Name" Click="RC_Copy_FName_Click"/>
<MenuItem x:Name="RC_Copy_FPath_NoExt" Header="Copy File Path w/o Extension" Click="RC_Copy_FPath_NoExt_Click"/>
<MenuItem x:Name="RC_Copy_FName_NoExt" Header="Copy File Name w/o Extension" Click="RC_Copy_FName_NoExt_Click"/>
</MenuItem>
<Separator/>
<MenuItem x:Name="RC_Properties" Header="Properties" Click="RC_Properties_Click">
<MenuItem.Icon>
<Image Source="Resources/info_16x.png" Width="16" Height="16"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
<RichTextBox x:Name="ConsoleBox_Main" Grid.Column="1" Margin="1,1,1,2" Grid.Row="1" Background="#FF252D36" Foreground="#FFEFEFEF" BorderBrush="#7F748198" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Auto" IsReadOnly="True">
<RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0" />
</Style>
</RichTextBox.Resources>
</RichTextBox>
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="523*"/>
<ColumnDefinition Width="317*"/>
</Grid.ColumnDefinitions>
<Border BorderBrush="#7F748198" BorderThickness="1" Grid.Column="1" Margin="1,1,1,0" Background="#FF252D36">
<Image x:Name="ImageBox_Main" UseLayoutRounding="True"/>
</Border>
<Border BorderBrush="#7F748198" BorderThickness="1" Margin="1,1,0,0" Background="#FF252D36">
<avalonedit:TextEditor x:Name="AssetPropertiesBox_Main" FontFamily="Consolas" FontSize="8pt" ShowLineNumbers="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" IsReadOnly="True" Foreground="#FFEFEFEF"/>
</Border>
</Grid>
</Grid>
</Grid>
</Window>