From b18420ad557cc986032161426a35314b9e948308 Mon Sep 17 00:00:00 2001 From: sirhamsteralot Date: Mon, 26 Mar 2018 02:19:27 +0200 Subject: [PATCH] Themes apply everywhere now --- Torch.Server/Views/Entities/Blocks/BlockView.xaml.cs | 9 +++++++++ .../Views/Entities/Blocks/PropertyView.xaml.cs | 9 +++++++++ Torch.Server/Views/Entities/CharacterView.xaml.cs | 9 +++++++++ .../Views/Entities/EntityControlHost.xaml.cs | 9 +++++++++ .../Views/Entities/EntityControlsView.xaml.cs | 12 +++++++++++- Torch.Server/Views/Entities/GridView.xaml | 1 + Torch.Server/Views/Entities/GridView.xaml.cs | 9 +++++++++ Torch.Server/Views/Entities/VoxelMapView.xaml.cs | 9 +++++++++ Torch.Server/Views/ThemeControl.xaml.cs | 8 +++++++- 9 files changed, 73 insertions(+), 2 deletions(-) diff --git a/Torch.Server/Views/Entities/Blocks/BlockView.xaml.cs b/Torch.Server/Views/Entities/Blocks/BlockView.xaml.cs index cf03703..df77ff5 100644 --- a/Torch.Server/Views/Entities/Blocks/BlockView.xaml.cs +++ b/Torch.Server/Views/Entities/Blocks/BlockView.xaml.cs @@ -28,6 +28,15 @@ namespace Torch.Server.Views.Blocks public BlockView() { InitializeComponent(); + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } /* diff --git a/Torch.Server/Views/Entities/Blocks/PropertyView.xaml.cs b/Torch.Server/Views/Entities/Blocks/PropertyView.xaml.cs index ca9c6ea..37b96c0 100644 --- a/Torch.Server/Views/Entities/Blocks/PropertyView.xaml.cs +++ b/Torch.Server/Views/Entities/Blocks/PropertyView.xaml.cs @@ -26,6 +26,15 @@ namespace Torch.Server.Views.Blocks { InitializeComponent(); DataContextChanged += OnDataContextChanged; + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs args) diff --git a/Torch.Server/Views/Entities/CharacterView.xaml.cs b/Torch.Server/Views/Entities/CharacterView.xaml.cs index a79f437..6610d09 100644 --- a/Torch.Server/Views/Entities/CharacterView.xaml.cs +++ b/Torch.Server/Views/Entities/CharacterView.xaml.cs @@ -23,6 +23,15 @@ namespace Torch.Server.Views.Entities public CharacterView() { InitializeComponent(); + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } } } diff --git a/Torch.Server/Views/Entities/EntityControlHost.xaml.cs b/Torch.Server/Views/Entities/EntityControlHost.xaml.cs index f4a080f..b9aff51 100644 --- a/Torch.Server/Views/Entities/EntityControlHost.xaml.cs +++ b/Torch.Server/Views/Entities/EntityControlHost.xaml.cs @@ -17,6 +17,15 @@ namespace Torch.Server.Views.Entities { InitializeComponent(); DataContextChanged += OnDataContextChanged; + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) diff --git a/Torch.Server/Views/Entities/EntityControlsView.xaml.cs b/Torch.Server/Views/Entities/EntityControlsView.xaml.cs index b490a5a..d6a6b84 100644 --- a/Torch.Server/Views/Entities/EntityControlsView.xaml.cs +++ b/Torch.Server/Views/Entities/EntityControlsView.xaml.cs @@ -1,4 +1,5 @@ -using System.Windows.Controls; +using System.Windows; +using System.Windows.Controls; namespace Torch.Server.Views.Entities { @@ -10,6 +11,15 @@ namespace Torch.Server.Views.Entities public EntityControlsView() { InitializeComponent(); + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } } } diff --git a/Torch.Server/Views/Entities/GridView.xaml b/Torch.Server/Views/Entities/GridView.xaml index dbc63ca..14d7f83 100644 --- a/Torch.Server/Views/Entities/GridView.xaml +++ b/Torch.Server/Views/Entities/GridView.xaml @@ -6,6 +6,7 @@ xmlns:entities="clr-namespace:Torch.Server.ViewModels.Entities" xmlns:local="clr-namespace:Torch.Server.Views.Entities" mc:Ignorable="d"> + diff --git a/Torch.Server/Views/Entities/GridView.xaml.cs b/Torch.Server/Views/Entities/GridView.xaml.cs index 018c3d0..3defe96 100644 --- a/Torch.Server/Views/Entities/GridView.xaml.cs +++ b/Torch.Server/Views/Entities/GridView.xaml.cs @@ -23,6 +23,15 @@ namespace Torch.Server.Views.Entities public GridView() { InitializeComponent(); + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } } } diff --git a/Torch.Server/Views/Entities/VoxelMapView.xaml.cs b/Torch.Server/Views/Entities/VoxelMapView.xaml.cs index ad94562..5ba5b3c 100644 --- a/Torch.Server/Views/Entities/VoxelMapView.xaml.cs +++ b/Torch.Server/Views/Entities/VoxelMapView.xaml.cs @@ -25,6 +25,15 @@ namespace Torch.Server.Views.Entities { InitializeComponent(); DataContextChanged += VoxelMapView_DataContextChanged; + + ThemeControl.UpdateWeirdViews += UpdateResourceDict; + UpdateResourceDict(ThemeControl.currentTheme); + } + + public void UpdateResourceDict(ResourceDictionary dictionary) + { + this.Resources.MergedDictionaries.Clear(); + this.Resources.MergedDictionaries.Add(dictionary); } private void VoxelMapView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) diff --git a/Torch.Server/Views/ThemeControl.xaml.cs b/Torch.Server/Views/ThemeControl.xaml.cs index 389e3f0..36ecc5b 100644 --- a/Torch.Server/Views/ThemeControl.xaml.cs +++ b/Torch.Server/Views/ThemeControl.xaml.cs @@ -22,6 +22,9 @@ namespace Torch.Server.Views /// public partial class ThemeControl : UserControl, INotifyPropertyChanged { + public static Action UpdateWeirdViews; + public static ResourceDictionary currentTheme; + public TorchUI uiSource; private TorchConfig _torchConfig; @@ -66,7 +69,10 @@ namespace Torch.Server.Views public void ChangeTheme(Uri uri) { uiSource.Resources.MergedDictionaries.Clear(); - uiSource.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = uri }); + var resource = new ResourceDictionary() { Source = uri }; + uiSource.Resources.MergedDictionaries.Add(resource); + UpdateWeirdViews?.Invoke(resource); + currentTheme = resource; } private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)