diff --git a/Filtration/Converters/BlockGroupAdvancedColorConverter.cs b/Filtration/Converters/BlockGroupAdvancedColorConverter.cs index b04657d..301ab80 100644 --- a/Filtration/Converters/BlockGroupAdvancedColorConverter.cs +++ b/Filtration/Converters/BlockGroupAdvancedColorConverter.cs @@ -11,7 +11,7 @@ namespace Filtration.Converters { var advanced = (bool) value; - return advanced ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.Black); + return advanced ? new SolidColorBrush(Colors.IndianRed) : new SolidColorBrush(Colors.Black); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) diff --git a/Filtration/Converters/BlockGroupAdvancedFillConverter.cs b/Filtration/Converters/BlockGroupAdvancedFillConverter.cs new file mode 100644 index 0000000..832c432 --- /dev/null +++ b/Filtration/Converters/BlockGroupAdvancedFillConverter.cs @@ -0,0 +1,22 @@ +using System; +using System.Globalization; +using System.Windows.Data; +using System.Windows.Media; + +namespace Filtration.Converters +{ + internal class BlockGroupAdvancedFillColorConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var advanced = (bool) value; + + return advanced ? new SolidColorBrush(Colors.IndianRed) : new SolidColorBrush(Colors.SlateGray); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Filtration/Converters/BlockGroupVisibilityConverter.cs b/Filtration/Converters/BlockGroupVisibilityConverter.cs new file mode 100644 index 0000000..7a460d0 --- /dev/null +++ b/Filtration/Converters/BlockGroupVisibilityConverter.cs @@ -0,0 +1,27 @@ +using System; +using System.Globalization; +using System.Windows; +using System.Windows.Data; + +namespace Filtration.Converters +{ + internal class BlockGroupVisibilityConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + var blockGroupAdvanced = (bool) values[0]; + var showAdvanced = (bool)values[1]; + + if (!blockGroupAdvanced || showAdvanced) + { + return Visibility.Visible; + } + return Visibility.Hidden; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj index 8e3e161..ef1b316 100644 --- a/Filtration/Filtration.csproj +++ b/Filtration/Filtration.csproj @@ -107,6 +107,7 @@ <SubType>Designer</SubType> </ApplicationDefinition> <Compile Include="Converters\ActiveDocumentConverter.cs" /> + <Compile Include="Converters\BlockGroupAdvancedFillConverter.cs" /> <Compile Include="Converters\BlockGroupAdvancedColorConverter.cs" /> <Compile Include="Converters\BlockGroupVisibilityConverter.cs" /> <Compile Include="Converters\BlockItemTypeToStringConverter.cs" /> diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs index a9cc44b..41bd4e2 100644 --- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs +++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs @@ -106,6 +106,14 @@ namespace Filtration.ViewModels get { return Block.BlockItems.Where(b => b is IAudioVisualBlockItem); } } + public bool AdvancedBlockGroup + { + get + { + return Block.BlockGroup != null && Block.BlockGroup.Advanced; + } + } + public bool DisplaySettingsPopupOpen { get { return _displaySettingsPopupOpen; } diff --git a/Filtration/Views/ItemFilterBlockView.xaml b/Filtration/Views/ItemFilterBlockView.xaml index e805345..d0f2560 100644 --- a/Filtration/Views/ItemFilterBlockView.xaml +++ b/Filtration/Views/ItemFilterBlockView.xaml @@ -6,6 +6,7 @@ xmlns:viewModels="clr-namespace:Filtration.ViewModels" xmlns:userControls="clr-namespace:Filtration.UserControls" xmlns:views="clr-namespace:Filtration.Views" + xmlns:converters="clr-namespace:Filtration.Converters" xmlns:blockItemBaseTypes="clr-namespace:Filtration.Models.BlockItemBaseTypes" xmlns:blockItemTypes="clr-namespace:Filtration.Models.BlockItemTypes" xmlns:enums="clr-namespace:Filtration.Enums" @@ -19,6 +20,8 @@ <ResourceDictionary Source="SharedResourcesDictionary.xaml" /> <ResourceDictionary> <views:BindingProxy x:Key="proxy" Data="{Binding}" /> + <converters:BlockGroupAdvancedFillColorConverter x:Key="BlockGroupAdvancedFillColorConverter" /> + </ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> @@ -30,10 +33,10 @@ <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> - <Rectangle Width="7" > - <Rectangle.Fill> - <SolidColorBrush Color="Gray" /> - </Rectangle.Fill> + <Rectangle Width="7" Fill="{Binding AdvancedBlockGroup, Converter={StaticResource BlockGroupAdvancedFillColorConverter}}"> + <Rectangle.ToolTip> + <ToolTip Visibility="{Binding AdvancedBlockGroup, Converter={StaticResource BooleanVisibilityConverter}}">Advanced Block Group</ToolTip> + </Rectangle.ToolTip> </Rectangle> <Expander Grid.Column="1" Style="{StaticResource ExpanderRightAlignStyle}" x:Name="TestExpander" ToolTip="{Binding BlockDescription}" ToolTipService.IsEnabled="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsExpanded, Converter={StaticResource BoolInverterConverter}}"> <Expander.ContextMenu>