mirror of
https://github.com/4sval/FModel.git
synced 2026-03-22 01:34:37 -05:00
838 lines
64 KiB
XML
838 lines
64 KiB
XML
<adonisControls:AdonisWindow x:Class="FModel.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:FModel"
|
|
xmlns:controls="clr-namespace:FModel.Views.Resources.Controls"
|
|
xmlns:converters="clr-namespace:FModel.Views.Resources.Converters"
|
|
xmlns:settings="clr-namespace:FModel.Settings"
|
|
xmlns:services="clr-namespace:FModel.Services"
|
|
xmlns:adonisUi="clr-namespace:AdonisUI;assembly=AdonisUI"
|
|
xmlns:adonisControls="clr-namespace:AdonisUI.Controls;assembly=AdonisUI"
|
|
xmlns:adonisExtensions="clr-namespace:AdonisUI.Extensions;assembly=AdonisUI"
|
|
WindowStartupLocation="CenterScreen" Closing="OnClosing" Loaded="OnLoaded" PreviewKeyDown="OnWindowKeyDown"
|
|
Height="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenHeight}, Converter={converters:RatioConverter}, ConverterParameter='0.85'}"
|
|
Width="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenWidth}, Converter={converters:RatioConverter}, ConverterParameter='0.75'}">
|
|
<adonisControls:AdonisWindow.Style>
|
|
<Style TargetType="adonisControls:AdonisWindow" BasedOn="{StaticResource {x:Type adonisControls:AdonisWindow}}" >
|
|
<Setter Property="Title" Value="{Binding DataContext.InitialWindowTitle, RelativeSource={RelativeSource Self}}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding DataContext.TitleExtra, RelativeSource={RelativeSource Self}, Converter={x:Static converters:IsNullToBoolReversedConverter.Instance}}" Value="True">
|
|
<Setter Property="Title">
|
|
<Setter.Value>
|
|
<MultiBinding StringFormat="{}{0} - {1} {2}">
|
|
<Binding Path="DataContext.InitialWindowTitle" RelativeSource="{RelativeSource Self}" />
|
|
<Binding Path="DataContext.GameDisplayName" RelativeSource="{RelativeSource Self}" />
|
|
<Binding Path="DataContext.TitleExtra" RelativeSource="{RelativeSource Self}" />
|
|
</MultiBinding>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</adonisControls:AdonisWindow.Style>
|
|
<adonisControls:AdonisWindow.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="Views/Resources/Resources.xaml"/>
|
|
</ResourceDictionary.MergedDictionaries>
|
|
</ResourceDictionary>
|
|
</adonisControls:AdonisWindow.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="{adonisUi:Space 1}" />
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<Menu Grid.Row="0">
|
|
<MenuItem Header="Directory">
|
|
<MenuItem Header="Selector" Command="{Binding MenuCommand}" CommandParameter="Directory_Selector">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource DirectoryIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="AES" Command="{Binding MenuCommand}" CommandParameter="Directory_AES" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource KeyIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Backup" Command="{Binding MenuCommand}" CommandParameter="Directory_Backup" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource BackupIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Archives Info" Command="{Binding MenuCommand}" CommandParameter="Directory_ArchivesInfo" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource InfoIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Header="Packages">
|
|
<MenuItem Header="Search" IsEnabled="{Binding Status.IsReady}" InputGestureText="Ctrl+Shift+F" Click="OnSearchViewClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SearchIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Favorite Directories" ItemsSource="{Binding CustomDirectories.Directories}" IsEnabled="{Binding Status.IsReady}">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource DirectoriesIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Header="Auto Open Sounds" IsCheckable="True" StaysOpenOnClick="True"
|
|
IsChecked="{Binding IsAutoOpenSounds, Source={x:Static settings:UserSettings.Default}}" />
|
|
</MenuItem>
|
|
<MenuItem Header="Views">
|
|
<MenuItem Header="3D Viewer" Command="{Binding MenuCommand}" CommandParameter="Views_3dViewer">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource MeshIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Audio Player" Command="{Binding MenuCommand}" CommandParameter="Views_AudioPlayer">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource AudioIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Image Merger" Command="{Binding MenuCommand}" CommandParameter="Views_ImageMerger">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource ImageMergerIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Header="Settings" Command="{Binding MenuCommand}" CommandParameter="Settings" />
|
|
<MenuItem Header="Help" >
|
|
<MenuItem Header="Donate" Command="{Binding MenuCommand}" CommandParameter="Help_Donate">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource GiftIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Releases" Command="{Binding MenuCommand}" CommandParameter="Help_Releases">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource GitHubIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Bugs Report" Command="{Binding MenuCommand}" CommandParameter="Help_BugsReport">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource BugIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Discord Server" Command="{Binding MenuCommand}" CommandParameter="Help_Discord">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource DiscordIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="About FModel" Command="{Binding MenuCommand}" CommandParameter="Help_About">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource InfoIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
</Menu>
|
|
|
|
<Grid x:Name="RootGrid" Grid.Row="2">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" MinWidth="400" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<GroupBox Grid.Column="0" adonisExtensions:LayerExtension.Layer="2"
|
|
Padding="{adonisUi:Space 0}" Background="Transparent">
|
|
<TabControl x:Name="LeftTabControl" SelectionChanged="OnTabItemChange">
|
|
<TabItem Style="{StaticResource TabItemFillSpace}" Header="Archives">
|
|
<DockPanel>
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="5" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="10" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="Loading Mode" VerticalAlignment="Center" />
|
|
<ComboBox Grid.Row="0" Grid.Column="2" ItemsSource="{Binding LoadingModes.Modes}" IsEnabled="{Binding Status.IsReady}"
|
|
SelectedItem="{Binding LoadingMode, Source={x:Static settings:UserSettings.Default}, Mode=TwoWay}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Converter={x:Static converters:EnumToStringConverter.Instance}}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
<Button Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Content="Load"
|
|
Command="{Binding LoadingModes.LoadCommand}" IsEnabled="{Binding Status.IsReady}"
|
|
CommandParameter="{Binding SelectedItems, ElementName=DirectoryFilesListBox}" />
|
|
</Grid>
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<Separator Grid.Row="0" Style="{StaticResource CustomSeparator}" Tag="GAME ARCHIVES" />
|
|
<ListBox Grid.Row="1" x:Name="DirectoryFilesListBox" Style="{StaticResource DirectoryFilesListBox}" MouseDoubleClick="OnMouseDoubleClick" />
|
|
<Separator Grid.Row="2" Style="{StaticResource CustomSeparator}" Tag="INFORMATION" />
|
|
<StackPanel Grid.Row="3" Orientation="Vertical" Margin="0 0 0 5">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding SelectedItem.MountPoint, ElementName=DirectoryFilesListBox, FallbackValue='/', Converter={x:Static converters:TrimRightToLeftConverter.Instance}, ConverterParameter=275}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="Mount Point" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding SelectedItem.FileCount, ElementName=DirectoryFilesListBox, FallbackValue='0', StringFormat={}{0} Files}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="File Count" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding SelectedItem.IsEncrypted, ElementName=DirectoryFilesListBox, FallbackValue='False'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="Is Encrypted" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding SelectedItem.Guid, ElementName=DirectoryFilesListBox, FallbackValue='00000000000000000000000000000000'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="3" Grid.Column="1" Text="Global Unique Identifier" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DockPanel>
|
|
</TabItem>
|
|
<TabItem Style="{StaticResource TabItemFillSpace}" Header="Folders">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<Grid Grid.Row="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="5" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal">
|
|
<Image Source="/FModel;component/Resources/label.png"
|
|
Width="16" Height="16" HorizontalAlignment="Center" Margin="0 0 3.5 0" />
|
|
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" TextTrimming="CharacterEllipsis">
|
|
<TextBlock.Text>
|
|
<MultiBinding StringFormat="{}'{0}' has {1} folders and {2} packages">
|
|
<Binding Path="SelectedItem.Header" ElementName="AssetsFolderName" FallbackValue="None" />
|
|
<Binding Path="SelectedItem.FoldersView.Count" ElementName="AssetsFolderName" FallbackValue="0" />
|
|
<Binding Path="SelectedItem.AssetsList.Assets.Count" ElementName="AssetsFolderName" FallbackValue="0" />
|
|
</MultiBinding>
|
|
</TextBlock.Text>
|
|
</TextBlock>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Bring Selected Folder To View" Padding="4"
|
|
Command="{Binding MenuCommand}" CommandParameter="{Binding SelectedItem, ElementName=AssetsFolderName}">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource LocateMeIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
<!-- <Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Expand All (not appropriate for huge amount of folders)" Padding="4" -->
|
|
<!-- Command="{Binding MenuCommand}" CommandParameter="ToolBox_Expand_All"> -->
|
|
<!-- <Viewbox Width="16" Height="16" HorizontalAlignment="Center"> -->
|
|
<!-- <Canvas Width="24" Height="24"> -->
|
|
<!-- <Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource UnfoldIcon}" /> -->
|
|
<!-- </Canvas> -->
|
|
<!-- </Viewbox> -->
|
|
<!-- </Button> -->
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Collapse All" Padding="4"
|
|
Command="{Binding MenuCommand}" CommandParameter="ToolBox_Collapse_All">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource FoldIcon}"/>
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
<Separator Grid.Row="1" Style="{StaticResource CustomSeparator}" Margin="0" />
|
|
<TreeView Grid.Row="2" x:Name="AssetsFolderName" Style="{StaticResource AssetsFolderTreeView}" PreviewMouseDoubleClick="OnAssetsTreeMouseDoubleClick">
|
|
<TreeView.ContextMenu>
|
|
<ContextMenu>
|
|
<!-- <MenuItem Header="Extract Folder's Packages" Click="OnFolderExtractClick"> -->
|
|
<!-- <MenuItem.Icon> -->
|
|
<!-- <Viewbox Width="16" Height="16"> -->
|
|
<!-- <Canvas Width="24" Height="24"> -->
|
|
<!-- <Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExtractIcon}" /> -->
|
|
<!-- </Canvas> -->
|
|
<!-- </Viewbox> -->
|
|
<!-- </MenuItem.Icon> -->
|
|
<!-- </MenuItem> -->
|
|
<!-- <Separator /> -->
|
|
<MenuItem Header="Export Folder's Packages Raw Data (.uasset)" Click="OnFolderExportClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExportIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Properties (.json)" Click="OnFolderSaveClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SaveIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Textures" Click="OnFolderTextureClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource TextureIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Models" Click="OnFolderModelClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ModelIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Folder's Packages Animations" Click="OnFolderAnimationClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource AnimationIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Header="Favorite Directory" Click="OnFavoriteDirectoryClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource DirectoriesAddIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Copy Directory Path" Click="OnCopyDirectoryPathClick">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource CopyIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</ContextMenu>
|
|
</TreeView.ContextMenu>
|
|
</TreeView>
|
|
<Separator Grid.Row="3" Style="{StaticResource CustomSeparator}" Tag="INFORMATION" />
|
|
<StackPanel Grid.Row="4" Orientation="Vertical" Margin="0 0 0 5">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding SelectedItem.AssetsList.Assets.Count, ElementName=AssetsFolderName, FallbackValue=0}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="Packages Count" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding SelectedItem.FoldersView.Count, ElementName=AssetsFolderName, FallbackValue=0}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="Folders Count" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding SelectedItem.Archive, ElementName=AssetsFolderName, FallbackValue='None'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="Included In Archive" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding SelectedItem.MountPoint, ElementName=AssetsFolderName, FallbackValue='/', Converter={x:Static converters:TrimRightToLeftConverter.Instance}, ConverterParameter=275}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="3" Grid.Column="1" Text="Archive Mount Point" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="4" Grid.Column="0" Text="{Binding SelectedItem.Version, ElementName=AssetsFolderName, FallbackValue='VER_UE4_LATEST', Converter={x:Static converters:TrimRightToLeftConverter.Instance}, ConverterParameter=275}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="4" Grid.Column="1" Text="Archive Version" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Grid>
|
|
</TabItem>
|
|
<TabItem Style="{StaticResource TabItemFillSpace}"
|
|
Header="{Binding SelectedItem.AssetsList.Assets.Count, FallbackValue=0, ElementName=AssetsFolderName}"
|
|
HeaderStringFormat="{}{0} Packages">
|
|
<DockPanel>
|
|
<Grid DockPanel.Dock="Top" ZIndex="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid Grid.Column="0" ZIndex="1" HorizontalAlignment="Left" Margin="5 2 0 0">
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SearchIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Grid>
|
|
<TextBox Grid.Column="0" Grid.ColumnSpan="2" x:Name="AssetsSearchName" AcceptsTab="False" AcceptsReturn="False"
|
|
Padding="25 0 0 0" HorizontalAlignment="Stretch" TextChanged="OnFilterTextChanged"
|
|
adonisExtensions:WatermarkExtension.Watermark="Search by name..." />
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
|
<Button ToolTip="Clear Search Filter" Padding="5" Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" Click="OnDeleteSearchClick">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource BackspaceIcon}"/>
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<controls:Breadcrumb Grid.Row="0" MaxWidth="{Binding ActualWidth, ElementName=AssetsSearchName}" HorizontalAlignment="Left" Margin="0 5 0 5"
|
|
DataContext="{Binding SelectedItem.PathAtThisPoint, ElementName=AssetsFolderName, FallbackValue='No/Directory/Detected/In/Folder'}"/>
|
|
|
|
<ListBox Grid.Row="1" x:Name="AssetsListName" Style="{StaticResource AssetsListBox}" PreviewMouseDoubleClick="OnAssetsListMouseDoubleClick" PreviewKeyDown="OnPreviewKeyDown">
|
|
<ListBox.ContextMenu>
|
|
<ContextMenu DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
|
|
<MenuItem Header="Extract in New Tab" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Extract_New_Tab" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExtractIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Show Metadata" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Show_Metadata" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource InfoIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.Header>
|
|
<TextBlock
|
|
Text="{Binding DataContext.SelectedItem.Extension,
|
|
FallbackValue='Export Raw Data',
|
|
StringFormat='Export Raw Data (.{0})',
|
|
RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
|
</MenuItem.Header>
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Export_Data" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ExportIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Properties (.json)" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Properties" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource SaveIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Texture" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Textures" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource TextureIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Model" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Models" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource ModelIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="Save Animation" Command="{Binding DataContext.RightClickMenuCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Assets_Save_Animations" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource AnimationIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator />
|
|
<MenuItem Header="Copy">
|
|
<MenuItem.Icon>
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource CopyIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</MenuItem.Icon>
|
|
<MenuItem Header="Package Path" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Path" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Package Name" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Name" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Directory Path" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="Directory_Path" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Package Path w/o Extension" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Path_No_Extension" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
<MenuItem Header="Package Name w/o Extension" Command="{Binding DataContext.CopyCommand}">
|
|
<MenuItem.CommandParameter>
|
|
<MultiBinding Converter="{x:Static converters:MultiParameterConverter.Instance}">
|
|
<Binding Source="File_Name_No_Extension" />
|
|
<Binding Path="SelectedItems" />
|
|
</MultiBinding>
|
|
</MenuItem.CommandParameter>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
</ContextMenu>
|
|
</ListBox.ContextMenu>
|
|
</ListBox>
|
|
<Separator Grid.Row="2" Style="{StaticResource CustomSeparator}" Tag="INFORMATION" />
|
|
<StackPanel Grid.Row="3" Orientation="Vertical" Margin="0 0 0 5">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding SelectedItem.Offset, ElementName=AssetsListName, FallbackValue=0, StringFormat='{}0x{0:X}'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="Offset" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding SelectedItem.Size, ElementName=AssetsListName, FallbackValue=0, Converter={x:Static converters:SizeToStringConverter.Instance}}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="Size" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="2" Grid.Column="0" Text="{Binding SelectedItem.CompressionMethod, ElementName=AssetsListName, FallbackValue='Unknown'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="Compression Method" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{Binding SelectedItem.IsEncrypted, ElementName=AssetsListName, FallbackValue='False'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="3" Grid.Column="1" Text="Is Encrypted" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
<TextBlock Grid.Row="4" Grid.Column="0" Text="{Binding SelectedItem.Vfs.Name, ElementName=AssetsListName, FallbackValue='None'}" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
|
<TextBlock Grid.Row="4" Grid.Column="1" Text="Included In Archive" VerticalAlignment="Center" HorizontalAlignment="Right" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Grid>
|
|
</DockPanel>
|
|
</TabItem>
|
|
</TabControl>
|
|
</GroupBox>
|
|
|
|
<GridSplitter Grid.Column="1" ResizeDirection="Columns" Width="4" VerticalAlignment="Stretch"
|
|
ResizeBehavior="PreviousAndNext" MouseDoubleClick="OnGridSplitterDoubleClick"
|
|
Background="{DynamicResource {x:Static adonisUi:Brushes.Layer0BackgroundBrush}}" />
|
|
|
|
<GroupBox Grid.Column="2" adonisExtensions:LayerExtension.Layer="2"
|
|
Padding="{adonisUi:Space 0}" Background="Transparent">
|
|
<Grid Margin="0 0 3 0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<TabControl Grid.Row="0" x:Name="TabControlName" Style="{StaticResource GameFilesTabControl}" />
|
|
<Expander Grid.Row="1" Margin="0 5 0 5" ExpandDirection="Down"
|
|
IsExpanded="{Binding IsLoggerExpanded, Source={x:Static settings:UserSettings.Default}}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="2" />
|
|
<ColumnDefinition Width="24" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<controls:CustomRichTextBox Grid.Column="0" Grid.ColumnSpan="3" x:Name="LogRtbName" Style="{StaticResource CustomRichTextBox}" />
|
|
<StackPanel Grid.Column="2" Orientation="Vertical" VerticalAlignment="Bottom" Margin="-5 -5 5 5">
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Open Output Folder" Padding="0,4,0,4"
|
|
Command="{Binding MenuCommand}" CommandParameter="ToolBox_Open_Output_Directory">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource FolderIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
<Button Style="{DynamicResource {x:Static adonisUi:Styles.ToolbarButton}}" ToolTip="Clear Logs" Padding="0,4,0,4"
|
|
Command="{Binding MenuCommand}" CommandParameter="ToolBox_Clear_Logs">
|
|
<Viewbox Width="16" Height="16" HorizontalAlignment="Center">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.ForegroundBrush}}" Data="{StaticResource TrashIcon}"/>
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Expander>
|
|
</Grid>
|
|
</GroupBox>
|
|
</Grid>
|
|
|
|
<StatusBar Grid.Row="3" MinHeight="28" MaxHeight="28"
|
|
adonisExtensions:LayerExtension.Layer="3">
|
|
<StatusBar.Style>
|
|
<Style TargetType="{x:Type StatusBar}" BasedOn="{StaticResource {x:Type StatusBar}}">
|
|
<Style.Triggers>
|
|
<!--don't mind me, MultiDataTrigger just sucks-->
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Ready}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AccentBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Completed}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AccentBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Loading}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AlertBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Stopping}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.AlertBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Stopped}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.ErrorBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Failed}">
|
|
<Setter Property="Background" Value="{DynamicResource {x:Static adonisUi:Brushes.ErrorBrush}}" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding StatusChangeAttempted, Source={x:Static services:ApplicationService.ThreadWorkerView}}" Value="True">
|
|
<DataTrigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard Duration="0:0:0.8">
|
|
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(StatusBar.Background).(SolidColorBrush.Color)" FillBehavior="Stop">
|
|
<ColorAnimationUsingKeyFrames.KeyFrames>
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="#CE5555" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.2" Value="#C22B2B" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.4" Value="#CE5555" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.6" Value="#C22B2B" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0.8" Value="#CE5555" />
|
|
</ColorAnimationUsingKeyFrames.KeyFrames>
|
|
</ColorAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</DataTrigger.EnterActions>
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding OperationCancelled, Source={x:Static services:ApplicationService.ThreadWorkerView}}" Value="True">
|
|
<DataTrigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard Duration="0:0:1">
|
|
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(StatusBar.Background).(SolidColorBrush.Color)" FillBehavior="Stop">
|
|
<ColorAnimationUsingKeyFrames.KeyFrames>
|
|
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="#C22B2B" />
|
|
<DiscreteColorKeyFrame KeyTime="0:0:1" Value="#CE5555" />
|
|
</ColorAnimationUsingKeyFrames.KeyFrames>
|
|
</ColorAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</DataTrigger.EnterActions>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StatusBar.Style>
|
|
|
|
<StatusBarItem Margin="5,0,0,0" >
|
|
<TextBlock>
|
|
<TextBlock.Style>
|
|
<Style TargetType="{x:Type TextBlock}">
|
|
<Setter Property="Text" Value="{Binding Status.Label}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Loading}">
|
|
<Setter Property="Text" Value="{Binding Status.Label, StringFormat='{}{0} …'}" />
|
|
</DataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding CanBeCanceled, Source={x:Static services:ApplicationService.ThreadWorkerView}}" Value="True" />
|
|
<Condition Binding="{Binding Status.Kind}" Value="{x:Static local:EStatusKind.Loading}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Text" Value="{Binding Status.Label, StringFormat='{}{0} … ESC to Cancel'}" />
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</TextBlock.Style>
|
|
</TextBlock>
|
|
</StatusBarItem>
|
|
|
|
<StatusBarItem Margin="0 0 5 0" HorizontalAlignment="Right">
|
|
<StackPanel Orientation="Horizontal">
|
|
<StatusBarItem Margin="0 0 10 0" HorizontalContentAlignment="Stretch">
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Fill="{DynamicResource {x:Static adonisUi:Brushes.AccentForegroundBrush}}" Data="{StaticResource StatusBarIcon}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</StatusBarItem>
|
|
|
|
<StatusBarItem Width="30" HorizontalContentAlignment="Stretch" ToolTip="Auto Open Sounds Enabled">
|
|
<StatusBarItem.Style>
|
|
<Style TargetType="StatusBarItem">
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsAutoOpenSounds, Source={x:Static settings:UserSettings.Default}}" Value="False">
|
|
<Setter Property="Visibility" Value="Collapsed" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StatusBarItem.Style>
|
|
<TextBlock HorizontalAlignment="Center" FontWeight="SemiBold" Text="SND" />
|
|
</StatusBarItem>
|
|
|
|
<StatusBarItem Margin="10 0 0 0">
|
|
<TextBlock Text="{Binding LastUpdateCheck, Source={x:Static local:Settings.UserSettings.Default}, Converter={x:Static converters:RelativeDateTimeConverter.Instance}, StringFormat=Last Refresh: {0}}" />
|
|
</StatusBarItem>
|
|
</StackPanel>
|
|
</StatusBarItem>
|
|
</StatusBar>
|
|
</Grid>
|
|
</adonisControls:AdonisWindow>
|