diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Converters/CellColorConverter.cs b/BallanceTasEditor/BallanceTasEditor/Frontend/Converters/ViewerColorConverter.cs similarity index 68% rename from BallanceTasEditor/BallanceTasEditor/Frontend/Converters/CellColorConverter.cs rename to BallanceTasEditor/BallanceTasEditor/Frontend/Converters/ViewerColorConverter.cs index cd333e0..e2af77c 100644 --- a/BallanceTasEditor/BallanceTasEditor/Frontend/Converters/CellColorConverter.cs +++ b/BallanceTasEditor/BallanceTasEditor/Frontend/Converters/ViewerColorConverter.cs @@ -60,4 +60,29 @@ namespace BallanceTasEditor.Frontend.Converters { } } + [ValueConversion(typeof(bool), typeof(Brush))] + public class HeaderIsSelectedToColorConverter : IValueConverter { + public static readonly HeaderIsSelectedToColorConverter Instance = new HeaderIsSelectedToColorConverter(); + + private static readonly SolidColorBrush SELECTED_BRUSH = new(Color.FromRgb(30, 144, 255)); + private static readonly SolidColorBrush DESELECTED_BRUSH = new(Color.FromRgb(255, 255, 255)); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { + var isSelected = value as bool?; + if (isSelected is null) { + return Binding.DoNothing; + } else { + if (isSelected.Value) { + return SELECTED_BRUSH; + } else { + return DESELECTED_BRUSH; + } + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { + return Binding.DoNothing; + } + } + } diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Widgets/FrameHeader.xaml b/BallanceTasEditor/BallanceTasEditor/Frontend/Widgets/FrameHeader.xaml new file mode 100644 index 0000000..963c43b --- /dev/null +++ b/BallanceTasEditor/BallanceTasEditor/Frontend/Widgets/FrameHeader.xaml @@ -0,0 +1,13 @@ + + + diff --git a/BallanceTasEditor/BallanceTasEditor/Frontend/Widgets/FrameHeader.xaml.cs b/BallanceTasEditor/BallanceTasEditor/Frontend/Widgets/FrameHeader.xaml.cs new file mode 100644 index 0000000..b743979 --- /dev/null +++ b/BallanceTasEditor/BallanceTasEditor/Frontend/Widgets/FrameHeader.xaml.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace BallanceTasEditor.Frontend.Widgets { + /// + /// Interaction logic for FrameHeader.xaml + /// + public partial class FrameHeader : UserControl { + public FrameHeader() { + InitializeComponent(); + } + + public bool IsSelected { + get { return (bool)GetValue(IsSelectedProperty); } + set { SetValue(IsSelectedProperty, value); } + } + + // Using a DependencyProperty as the backing store for IsSelected. This enables animation, styling, binding, etc... + public static readonly DependencyProperty IsSelectedProperty = + DependencyProperty.Register("IsSelected", typeof(bool), typeof(FrameCell), new PropertyMetadata(false)); + + } +}