From 64e2d4b4c8d84f22123e6689989ed06b9eb40a69 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Mon, 10 Oct 2016 23:56:11 +0200 Subject: [PATCH] Replaced Extended WPF Toolkit with ColorBox this closes #143 and closes #171 Fixed VolumeDisplay settings not loading Fixed Bubbles settings not loading Updated Nuget packages --- Artemis/Artemis/App.config | 4 ++ Artemis/Artemis/Artemis.csproj | 62 ++++++----------- .../Modules/Effects/Bubbles/BubblesModel.cs | 3 +- .../Modules/Effects/Bubbles/BubblesView.xaml | 9 ++- .../Effects/Bubbles/BubblesViewModel.cs | 24 ++++++- Artemis/Artemis/Modules/Games/WoW/WoWModel.cs | 4 +- .../VolumeDisplay/VolumeDisplayModel.cs | 13 ++-- .../VolumeDisplay/VolumeDisplaySettings.cs | 16 +++++ .../VolumeDisplay/VolumeDisplayView.xaml | 19 +++--- .../VolumeDisplay/VolumeDisplayViewModel.cs | 37 +++++++++- Artemis/Artemis/NLog.xsd | 67 +++++++++++++++---- .../Keyboard/KeyboardPropertiesView.xaml | 2 +- Artemis/Artemis/packages.config | 13 ++-- 13 files changed, 185 insertions(+), 88 deletions(-) diff --git a/Artemis/Artemis/App.config b/Artemis/Artemis/App.config index 5db3e623b..20723b413 100644 --- a/Artemis/Artemis/App.config +++ b/Artemis/Artemis/App.config @@ -333,6 +333,10 @@ + + + + diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj index cce7cf8c3..1a11ea0fd 100644 --- a/Artemis/Artemis/Artemis.csproj +++ b/Artemis/Artemis/Artemis.csproj @@ -147,20 +147,20 @@ ..\packages\Colore.5.0.0\lib\net35\Corale.Colore.dll True - - ..\packages\CUE.NET.1.1.0.1\lib\net45\CUE.NET.dll + + ..\packages\CUE.NET.1.1.0.2\lib\net45\CUE.NET.dll True - - ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll + + ..\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.dll True - - ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.MsDelta.dll + + ..\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.MsDelta.dll True - - ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.PatchApi.dll + + ..\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.PatchApi.dll True @@ -191,19 +191,19 @@ False - ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.dll + ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll True - ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Mdb.dll + ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Mdb.dll True - ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Pdb.dll + ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Pdb.dll True - ..\packages\Mono.Cecil.0.9.6.1\lib\net45\Mono.Cecil.Rocks.dll + ..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Rocks.dll True @@ -235,7 +235,7 @@ True - ..\packages\NLog.4.3.7\lib\net45\NLog.dll + ..\packages\NLog.4.3.9\lib\net45\NLog.dll True @@ -243,7 +243,7 @@ True - ..\packages\Process.NET.1.0.1\lib\Process.NET.dll + ..\packages\Process.NET.1.0.5\lib\Process.NET.dll True @@ -292,30 +292,6 @@ - - ..\packages\Extended.Wpf.Toolkit.2.9\lib\net40\Xceed.Wpf.AvalonDock.dll - True - - - ..\packages\Extended.Wpf.Toolkit.2.9\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll - True - - - ..\packages\Extended.Wpf.Toolkit.2.9\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll - True - - - ..\packages\Extended.Wpf.Toolkit.2.9\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll - True - - - ..\packages\Extended.Wpf.Toolkit.2.9\lib\net40\Xceed.Wpf.DataGrid.dll - True - - - ..\packages\Extended.Wpf.Toolkit.2.9\lib\net40\Xceed.Wpf.Toolkit.dll - True - @@ -648,6 +624,9 @@ Code + + Designer + @@ -655,9 +634,6 @@ Designer - - Designer - @@ -889,12 +865,12 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesViewModel.cs b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesViewModel.cs index 378b26873..a0d2cb304 100644 --- a/Artemis/Artemis/Modules/Effects/Bubbles/BubblesViewModel.cs +++ b/Artemis/Artemis/Modules/Effects/Bubbles/BubblesViewModel.cs @@ -1,13 +1,35 @@ -using Artemis.Managers; +using System.Windows.Media; +using Artemis.Managers; using Artemis.ViewModels.Abstract; namespace Artemis.Modules.Effects.Bubbles { public sealed class BubblesViewModel : EffectViewModel { + private readonly BubblesModel _model; + private SolidColorBrush _bubbleColor; + public BubblesViewModel(MainManager main, BubblesModel model) : base(main, model) { + _model = model; DisplayName = "Bubbles"; + BubbleColor = new SolidColorBrush(model.Settings.BubbleColor); + } + + /// + /// The bubble color wrapped in a brush to allow color selection using ColorBox + /// + public Brush BubbleColor + { + get { return _bubbleColor; } + set + { + if (Equals(value, _bubbleColor)) return; + _bubbleColor = (SolidColorBrush) value; + + _model.Settings.BubbleColor = _bubbleColor.Color; + NotifyOfPropertyChange(() => BubbleColor); + } } } } \ No newline at end of file diff --git a/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs b/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs index 546d47426..667e19873 100644 --- a/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs +++ b/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs @@ -9,6 +9,7 @@ using Artemis.Profiles.Layers.Models; using Artemis.Settings; using Artemis.Utilities.Memory; using Process.NET; +using Process.NET.Memory; namespace Artemis.Modules.Games.WoW { @@ -68,8 +69,7 @@ namespace Artemis.Modules.Games.WoW if (tempProcess == null) return; - _process = new ProcessSharp(tempProcess); - _process.Memory = new ExternalProcessMemory(_process.Handle); + _process = new ProcessSharp(tempProcess, MemoryType.Remote); Initialized = true; } diff --git a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayModel.cs b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayModel.cs index d19c336c9..e5d2de8d7 100644 --- a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayModel.cs +++ b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayModel.cs @@ -2,6 +2,7 @@ using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; +using Artemis.DAL; using Artemis.Managers; using Artemis.Models; using Artemis.Profiles.Layers.Models; @@ -12,13 +13,15 @@ namespace Artemis.Modules.Overlays.VolumeDisplay { public class VolumeDisplayModel : OverlayModel { - public VolumeDisplayModel(MainManager mainManager) : base(mainManager, new VolumeDisplaySettings()) + public VolumeDisplayModel(MainManager mainManager) + : base(mainManager, SettingsProvider.Load()) { Name = "VolumeDisplay"; - - VolumeDisplay = new VolumeBar(MainManager.DeviceManager, (VolumeDisplaySettings) Settings); + Settings = (VolumeDisplaySettings) base.Settings; + VolumeDisplay = new VolumeBar(MainManager.DeviceManager, Settings); } + public new VolumeDisplaySettings Settings { get; set; } public VolumeBar VolumeDisplay { get; set; } public override void Dispose() @@ -67,7 +70,7 @@ namespace Artemis.Modules.Overlays.VolumeDisplay private void KeyPressTask(KeyEventArgs e) { - if (e.KeyCode != Keys.VolumeUp && e.KeyCode != Keys.VolumeDown) + if ((e.KeyCode != Keys.VolumeUp) && (e.KeyCode != Keys.VolumeDown)) return; VolumeDisplay.Ttl = 1000; @@ -76,7 +79,7 @@ namespace Artemis.Modules.Overlays.VolumeDisplay public override void RenderOverlay(RenderFrame frame, bool keyboardOnly) { - if (MainManager.DeviceManager.ActiveKeyboard == null || VolumeDisplay == null || VolumeDisplay.Ttl < 1) + if ((MainManager.DeviceManager.ActiveKeyboard == null) || (VolumeDisplay == null) || (VolumeDisplay.Ttl < 1)) return; using (var g = Graphics.FromImage(frame.KeyboardBitmap)) diff --git a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplaySettings.cs b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplaySettings.cs index a67eb0d12..2a5de5b80 100644 --- a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplaySettings.cs +++ b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplaySettings.cs @@ -1,5 +1,7 @@ using System.Windows.Media; +using Artemis.DAL; using Artemis.Settings; +using Newtonsoft.Json; namespace Artemis.Modules.Overlays.VolumeDisplay { @@ -7,5 +9,19 @@ namespace Artemis.Modules.Overlays.VolumeDisplay { public Color MainColor { get; set; } public Color SecondaryColor { get; set; } + + public new void Reset(bool save = false) + { + JsonConvert.PopulateObject("{}", this, new JsonSerializerSettings + { + ObjectCreationHandling = ObjectCreationHandling.Reuse + }); + + MainColor = Colors.Red; + SecondaryColor = Colors.GreenYellow; + + if (save) + SettingsProvider.Save(this); + } } } \ No newline at end of file diff --git a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayView.xaml b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayView.xaml index 51226f2cc..3cdcdd1f9 100644 --- a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayView.xaml +++ b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayView.xaml @@ -5,6 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:cal="http://www.caliburnproject.org" + xmlns:ncore="http://schemas.ncore.com/wpf/xaml/colorbox" mc:Ignorable="d" d:DesignHeight="476.986" d:DesignWidth="538.772"> @@ -42,21 +43,19 @@ Margin="0,8"> Main volume display color - - + + Secondary volume display color - - + + diff --git a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayViewModel.cs b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayViewModel.cs index 5004e0c87..1296521ed 100644 --- a/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayViewModel.cs +++ b/Artemis/Artemis/Modules/Overlays/VolumeDisplay/VolumeDisplayViewModel.cs @@ -1,13 +1,48 @@ -using Artemis.Managers; +using System.Windows.Media; +using Artemis.Managers; using Artemis.ViewModels.Abstract; namespace Artemis.Modules.Overlays.VolumeDisplay { public sealed class VolumeDisplayViewModel : OverlayViewModel { + private readonly VolumeDisplayModel _model; + private SolidColorBrush _mainColor; + private SolidColorBrush _secondaryColor; + public VolumeDisplayViewModel(MainManager mainManager, VolumeDisplayModel model) : base(mainManager, model) { + _model = model; DisplayName = "Volume Display"; + + MainColor = new SolidColorBrush(model.Settings.MainColor); + SecondaryColor = new SolidColorBrush(model.Settings.SecondaryColor); + } + + public Brush MainColor + { + get { return _mainColor; } + set + { + if (Equals(value, _mainColor)) return; + _mainColor = (SolidColorBrush) value; + + _model.Settings.MainColor = _mainColor.Color; + NotifyOfPropertyChange(() => MainColor); + } + } + + public Brush SecondaryColor + { + get { return _secondaryColor; } + set + { + if (Equals(value, _secondaryColor)) return; + _secondaryColor = (SolidColorBrush) value; + + _model.Settings.SecondaryColor = _secondaryColor.Color; + NotifyOfPropertyChange(() => SecondaryColor); + } } } } \ No newline at end of file diff --git a/Artemis/Artemis/NLog.xsd b/Artemis/Artemis/NLog.xsd index c489255c0..faa9681c6 100644 --- a/Artemis/Artemis/NLog.xsd +++ b/Artemis/Artemis/NLog.xsd @@ -368,6 +368,7 @@ + @@ -401,6 +402,11 @@ Instance of that is used to format log messages. + + + End of line value if a newline is appended at the end of log message . + + Maximum message size in bytes. @@ -1021,8 +1027,11 @@ - + + + + @@ -1032,15 +1041,15 @@ - + + - @@ -1102,9 +1111,14 @@ Maximum number of archive files that should be kept. - + - Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation. + Is the an absolute or relative path? + + + + + Is the an absolute or relative path? @@ -1112,6 +1126,16 @@ Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong. + + + Gets or set a value indicating whether a managed file stream is forced, instead of used the native implementation. + + + + + Indicates whether the footer should be written only when the file is archived. + + Name of the file to write to. @@ -1157,9 +1181,9 @@ Indicates whether concurrent writes to the log file by multiple processes on the same host. - + - Delay in milliseconds to wait before attempting to write to the file again. + Indicates whether to keep log file open instead of opening and closing it on each logging event. @@ -1192,16 +1216,16 @@ Indicates whether to automatically flush the file buffers after each log message. + + + Delay in milliseconds to wait before attempting to write to the file again. + + Number of times the write is appended on the file before NLog discards the log message. - - - Indicates whether to keep log file open instead of opening and closing it on each logging event. - - @@ -1223,6 +1247,13 @@ + + + + + + + @@ -1703,6 +1734,7 @@ + @@ -1728,6 +1760,11 @@ Encoding to be used. + + + End of line value if a newline is appended at the end of log message . + + Maximum message size in bytes. @@ -1783,6 +1820,7 @@ + @@ -1816,6 +1854,11 @@ Instance of that is used to format log messages. + + + End of line value if a newline is appended at the end of log message . + + Maximum message size in bytes. diff --git a/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml b/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml index ee686364d..85ee67746 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml +++ b/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml @@ -60,7 +60,7 @@ VerticalAlignment="Top" Height="18" Width="130" /> - + diff --git a/Artemis/Artemis/packages.config b/Artemis/Artemis/packages.config index ff52bee03..bc7832355 100644 --- a/Artemis/Artemis/packages.config +++ b/Artemis/Artemis/packages.config @@ -4,16 +4,15 @@ - - + + - - + @@ -21,9 +20,9 @@ - - - + + +