From 68622626661743dc028cbf709e7e5268ba73beb5 Mon Sep 17 00:00:00 2001 From: aloisdg Date: Sun, 15 Jan 2017 10:06:56 +0100 Subject: [PATCH] Refacto solution --- TaskbarTool/Helpers/Globals.cs | 90 ++-- TaskbarTool/Helpers/Options.cs | 62 +-- TaskbarTool/Helpers/WindowsAccentColor.cs | 6 +- TaskbarTool/MainWindow.xaml.cs | 407 ++++++++----------- TaskbarTool/Properties/Resources.Designer.cs | 2 +- TaskbarTool/Taskbar/Taskbar.cs | 39 +- 6 files changed, 257 insertions(+), 349 deletions(-) diff --git a/TaskbarTool/Helpers/Globals.cs b/TaskbarTool/Helpers/Globals.cs index c63aa57..dda87e7 100644 --- a/TaskbarTool/Helpers/Globals.cs +++ b/TaskbarTool/Helpers/Globals.cs @@ -14,40 +14,35 @@ public static class Globals public static int WindowsAccentColor; //public static SettingsClass TaskbarSettings = new SettingsClass(); - private static Int32 ColorToInt32(string color) + private static int ColorToInt32(string color) { - Color thisColor = (Color)ColorConverter.ConvertFromString(color); + var thisColor = (Color)ColorConverter.ConvertFromString(color); return ColorToInt32(thisColor); } - private static Int32 ColorToInt32(Color color) + private static int ColorToInt32(Color color) { - return (Int32)BitConverter.ToInt32(new byte[] { color.R, color.G, color.B, color.A }, 0); + return BitConverter.ToInt32(new[] { color.R, color.G, color.B, color.A }, 0); } #region TaskbarColor - public static Int32 GetTaskbarColor(string taskbar) + public static int GetTaskbarColor(string taskbar) { if (taskbar == "Main") { - if (TT.Options.Settings.MainTaskbarStyle.UseWindowsAccentColor) - { - byte[] bytes = BitConverter.GetBytes(WindowsAccentColor); - int colorInt = BitConverter.ToInt32(new byte[] { bytes[0], bytes[1], bytes[2], TT.Options.Settings.MainTaskbarStyle.WindowsAccentAlpha }, 0); - return colorInt; - } - else { return ColorToInt32(TT.Options.Settings.MainTaskbarStyle.GradientColor); } + if (!TT.Options.Settings.MainTaskbarStyle.UseWindowsAccentColor) + return ColorToInt32(TT.Options.Settings.MainTaskbarStyle.GradientColor); + var bytes = BitConverter.GetBytes(WindowsAccentColor); + var colorInt = BitConverter.ToInt32(new[] { bytes[0], bytes[1], bytes[2], TT.Options.Settings.MainTaskbarStyle.WindowsAccentAlpha }, 0); + return colorInt; } - else + if (TT.Options.Settings.MaximizedTaskbarStyle.UseWindowsAccentColor) { - if (TT.Options.Settings.MaximizedTaskbarStyle.UseWindowsAccentColor) - { - byte[] bytes = BitConverter.GetBytes(WindowsAccentColor); - int colorInt = BitConverter.ToInt32(new byte[] { bytes[0], bytes[1], bytes[2], TT.Options.Settings.MaximizedTaskbarStyle.WindowsAccentAlpha }, 0); - return colorInt; - } - else { return ColorToInt32(TT.Options.Settings.MaximizedTaskbarStyle.GradientColor); } + var bytes = BitConverter.GetBytes(WindowsAccentColor); + var colorInt = BitConverter.ToInt32(new[] { bytes[0], bytes[1], bytes[2], TT.Options.Settings.MaximizedTaskbarStyle.WindowsAccentAlpha }, 0); + return colorInt; } + return ColorToInt32(TT.Options.Settings.MaximizedTaskbarStyle.GradientColor); } public static void SetTaskbarColor(Color color) @@ -58,29 +53,18 @@ public static void SetTaskbarColor(Color color) public static void SetTaskbarColor(string taskbar, Color color) { if (taskbar == "Main") - { TT.Options.Settings.MainTaskbarStyle.GradientColor = color.ToString(); - } else - { TT.Options.Settings.MaximizedTaskbarStyle.GradientColor = color.ToString(); - } } #endregion TaskbarColor #region AccentFlags public static int GetAccentFlags(string taskbar) { - if (taskbar == "Main") - { - if (TT.Options.Settings.MainTaskbarStyle.Colorize) { return 2; } - else { return 0; } - } - else - { - if (TT.Options.Settings.MaximizedTaskbarStyle.Colorize) { return 2; } - else { return 0; } - } + return TT.Options.Settings.MainTaskbarStyle.Colorize || TT.Options.Settings.MaximizedTaskbarStyle.Colorize + ? 2 + : 0; } public static void SetAccentFlags(bool colorize) @@ -91,27 +75,18 @@ public static void SetAccentFlags(bool colorize) public static void SetAccentFlags(string taskbar, bool colorize) { if (taskbar == "Main") - { TT.Options.Settings.MainTaskbarStyle.Colorize = colorize; - } else - { TT.Options.Settings.MaximizedTaskbarStyle.Colorize = colorize; - } } #endregion AccentFlags #region AccentState public static AccentState GetAccentState(string taskbar) { - if (taskbar == "Main") - { - return (AccentState)TT.Options.Settings.MainTaskbarStyle.AccentState; - } - else - { - return (AccentState)TT.Options.Settings.MaximizedTaskbarStyle.AccentState; - } + return (AccentState) (taskbar == "Main" + ? TT.Options.Settings.MainTaskbarStyle.AccentState + : TT.Options.Settings.MaximizedTaskbarStyle.AccentState); } public static void SetAccentState(AccentState state) @@ -122,13 +97,9 @@ public static void SetAccentState(AccentState state) public static void SetAccentState(string taskbar, AccentState state) { if (taskbar == "Main") - { TT.Options.Settings.MainTaskbarStyle.AccentState = (byte)state; - } else - { TT.Options.Settings.MaximizedTaskbarStyle.AccentState = (byte)state; - } } #endregion AccentState @@ -141,13 +112,9 @@ public static void SetUseAccentColor(bool use) public static void SetUseAccentColor(string taskbar, bool use) { if (taskbar == "Main") - { TT.Options.Settings.MainTaskbarStyle.UseWindowsAccentColor = use; - } else - { TT.Options.Settings.MaximizedTaskbarStyle.UseWindowsAccentColor = use; - } } #endregion UseAccentColor @@ -160,13 +127,9 @@ public static void SetWindowsAccentAlpha(byte alpha) public static void SetWindowsAccentAlpha(string taskbar, byte alpha) { if (taskbar == "Main") - { TT.Options.Settings.MainTaskbarStyle.WindowsAccentAlpha = alpha; - } else - { TT.Options.Settings.MaximizedTaskbarStyle.WindowsAccentAlpha = alpha; - } } #endregion WindowsAccentAlpha } @@ -262,13 +225,10 @@ public int Color { get { - if (_UseWindowsAccentColor) - { - byte[] bytes = BitConverter.GetBytes(_WindowsAccentColor); - int colorInt = BitConverter.ToInt32(new byte[] { bytes[0], bytes[1], bytes[2], _WindowsAccentAlpha }, 0); - return colorInt; - } - else { return _GradientColor; } + if (!_UseWindowsAccentColor) return _GradientColor; + var bytes = BitConverter.GetBytes(_WindowsAccentColor); + var colorInt = BitConverter.ToInt32(new[] { bytes[0], bytes[1], bytes[2], _WindowsAccentAlpha }, 0); + return colorInt; } } } diff --git a/TaskbarTool/Helpers/Options.cs b/TaskbarTool/Helpers/Options.cs index 3708c0e..6464178 100644 --- a/TaskbarTool/Helpers/Options.cs +++ b/TaskbarTool/Helpers/Options.cs @@ -10,29 +10,25 @@ public static class TT public static Options Options = new Options(); // My Documents - private static string MyDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - private static string FilePath = MyDocuments + "\\TaskbarTools\\Options.xml"; + private static readonly string MyDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); + private static readonly string FilePath = MyDocuments + "\\TaskbarTools\\Options.xml"; public static void InitializeOptions() { if (!LoadOptions()) - { AssignDefaults(); - } } public static bool SaveOptions() { - XmlSerializer serializer = new XmlSerializer(typeof(Options)); + var serializer = new XmlSerializer(typeof(Options)); try { if (!Directory.Exists(Path.GetDirectoryName(FilePath))) - { Directory.CreateDirectory(Path.GetDirectoryName(FilePath)); - } - using (FileStream fstream = new FileStream(FilePath, FileMode.Create)) + using (var fstream = new FileStream(FilePath, FileMode.Create)) { serializer.Serialize(fstream, Options); } @@ -46,12 +42,12 @@ public static bool SaveOptions() private static bool LoadOptions() { - XmlSerializer serializer = new XmlSerializer(typeof(Options)); - if (!File.Exists(FilePath)) { return false; } + var serializer = new XmlSerializer(typeof(Options)); + if (!File.Exists(FilePath)) return false; try { - using (FileStream reader = new FileStream(FilePath, FileMode.Open)) + using (var reader = new FileStream(FilePath, FileMode.Open)) { Options = serializer.Deserialize(reader) as Options; } @@ -67,25 +63,31 @@ private static bool LoadOptions() private static void AssignDefaults() { - Options.Settings = new OptionsSettings(); - Options.Settings.StartMinimized = false; - Options.Settings.StartWhenLaunched = true; - Options.Settings.StartWithWindows = false; - Options.Settings.UseDifferentSettingsWhenMaximized = true; - - Options.Settings.MainTaskbarStyle = new OptionsSettingsMainTaskbarStyle(); - Options.Settings.MainTaskbarStyle.AccentState = 3; - Options.Settings.MainTaskbarStyle.GradientColor = "#804080FF"; - Options.Settings.MainTaskbarStyle.Colorize = true; - Options.Settings.MainTaskbarStyle.UseWindowsAccentColor = true; - Options.Settings.MainTaskbarStyle.WindowsAccentAlpha = 127; - - Options.Settings.MaximizedTaskbarStyle = new OptionsSettingsMaximizedTaskbarStyle(); - Options.Settings.MaximizedTaskbarStyle.AccentState = 2; - Options.Settings.MaximizedTaskbarStyle.GradientColor = "#FF000000"; - Options.Settings.MaximizedTaskbarStyle.Colorize = false; - Options.Settings.MaximizedTaskbarStyle.UseWindowsAccentColor = true; - Options.Settings.MaximizedTaskbarStyle.WindowsAccentAlpha = 255; + Options.Settings = new OptionsSettings + { + StartMinimized = false, + StartWhenLaunched = true, + StartWithWindows = false, + UseDifferentSettingsWhenMaximized = true, + MainTaskbarStyle = new OptionsSettingsMainTaskbarStyle + { + AccentState = 3, + GradientColor = "#804080FF", + Colorize = true, + UseWindowsAccentColor = true, + WindowsAccentAlpha = 127 + }, + MaximizedTaskbarStyle = new OptionsSettingsMaximizedTaskbarStyle + { + AccentState = 2, + GradientColor = "#FF000000", + Colorize = false, + UseWindowsAccentColor = true, + WindowsAccentAlpha = 255 + } + }; + + } } diff --git a/TaskbarTool/Helpers/WindowsAccentColor.cs b/TaskbarTool/Helpers/WindowsAccentColor.cs index a94b3f5..8cb09f9 100644 --- a/TaskbarTool/Helpers/WindowsAccentColor.cs +++ b/TaskbarTool/Helpers/WindowsAccentColor.cs @@ -16,10 +16,10 @@ public static Int32 GetColorAsInt() private static void UpdateColor() { - string keyName = "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Accent"; - int keyColor = (int)Microsoft.Win32.Registry.GetValue(keyName, "StartColorMenu", 00000000); + var keyName = "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Accent"; + var keyColor = (int)Microsoft.Win32.Registry.GetValue(keyName, "StartColorMenu", 00000000); - byte[] bytes = BitConverter.GetBytes(keyColor); + var bytes = BitConverter.GetBytes(keyColor); accentColor = Color.FromArgb(bytes[3], bytes[0], bytes[1], bytes[2]); } diff --git a/TaskbarTool/MainWindow.xaml.cs b/TaskbarTool/MainWindow.xaml.cs index 1b1a1dc..af51e9f 100644 --- a/TaskbarTool/MainWindow.xaml.cs +++ b/TaskbarTool/MainWindow.xaml.cs @@ -17,17 +17,15 @@ using Microsoft.Win32; using System.Reflection; -namespace TaskbarTool -{ +namespace TaskbarTool { /// /// Interaction logic for MainWindow.xaml /// - public partial class MainWindow : Window - { + public partial class MainWindow : Window { #region Declarations // Main window initialization bool WindowInitialized = false; - string MyPath = Assembly.GetExecutingAssembly().Location; + readonly string MyPath = Assembly.GetExecutingAssembly().Location; // Taskbars static Task ApplyTask; @@ -35,74 +33,68 @@ public partial class MainWindow : Window public static bool FindTaskbarHandles = true; static System.Windows.Forms.NotifyIcon SysTrayIcon; - ContextMenu SysTrayContextMenu; + readonly ContextMenu SysTrayContextMenu; private static bool alphaDragStarted = false; - + // Explorer restarts and Windows Accent Colour changes private static readonly uint WM_TASKBARCREATED = Externals.RegisterWindowMessage("TaskbarCreated"); // Window state hook - private static Externals.WinEventDelegate procDelegate = new Externals.WinEventDelegate(WinEventProc); + private static readonly Externals.WinEventDelegate procDelegate = new Externals.WinEventDelegate(WinEventProc); private static IntPtr WindowStateHook; private static IntPtr LastClosedWindow; private static DateTime LastClosedWindowTime; // Start with Windows registry key - RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); + readonly RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); #endregion Declarations #region Initializations - public MainWindow() - { - InitializeComponent(); + public MainWindow() { + InitializeComponent (); - SysTrayContextMenu = this.FindResource("TrayContextMenu") as ContextMenu; + SysTrayContextMenu = this.FindResource ("TrayContextMenu") as ContextMenu; - SysTrayIcon = new System.Windows.Forms.NotifyIcon(); - Stream iconStream = Application.GetResourceStream(new Uri("Resources/tt-logo.ico", UriKind.Relative)).Stream; - SysTrayIcon.Icon = new System.Drawing.Icon(iconStream); - SysTrayIcon.Visible = true; + var iconStream = Application.GetResourceStream (new Uri ("Resources/tt-logo.ico", UriKind.Relative)).Stream; + SysTrayIcon = new System.Windows.Forms.NotifyIcon { + Icon = new System.Drawing.Icon (iconStream), + Visible = true + }; SysTrayIcon.MouseClick += SysTrayIcon_MouseClick; - SysTrayIcon.DoubleClick += - delegate (object sender, EventArgs args) - { - this.Show(); - this.WindowState = WindowState.Normal; - }; + SysTrayIcon.DoubleClick += (sender, args) => { + this.Show (); + this.WindowState = WindowState.Normal; + }; } - protected override void OnStateChanged(EventArgs e) - { + protected override void OnStateChanged(EventArgs e) { if (WindowState == WindowState.Minimized) - this.Hide(); + this.Hide (); - base.OnStateChanged(e); + base.OnStateChanged (e); } - private void PopulateComboBoxes() - { - AccentStateComboBox.ItemsSource = Enum.GetValues(typeof(AccentState)).Cast(); + private void PopulateComboBoxes() { + AccentStateComboBox.ItemsSource = Enum.GetValues (typeof (AccentState)).Cast (); AccentStateComboBox.SelectedIndex = 0; } - private void LoadSettings() - { - TT.InitializeOptions(); + private void LoadSettings() { + TT.InitializeOptions (); - SwitchTaskbarBeingEdited("Main"); + SwitchTaskbarBeingEdited ("Main"); UseMaximizedSettingsCheckBox.IsChecked = TT.Options.Settings.UseDifferentSettingsWhenMaximized; StartMinimizedCheckBox.IsChecked = TT.Options.Settings.StartMinimized; StartWhenLaunchedCheckBox.IsChecked = TT.Options.Settings.StartWhenLaunched; } - private void SaveSettings() - { - TT.Options.Settings.MainTaskbarStyle.AccentState = (byte)((int)AccentStateComboBox.SelectedItem); - TT.Options.Settings.MainTaskbarStyle.GradientColor = GradientColorPicker.SelectedColor.ToString(); - TT.Options.Settings.MainTaskbarStyle.WindowsAccentAlpha = (byte)WindowsAccentAlphaSlider.Value; + private void SaveSettings() { + TT.Options.Settings.MainTaskbarStyle.AccentState = (byte) ((int) AccentStateComboBox.SelectedItem); + TT.Options.Settings.MainTaskbarStyle.GradientColor = GradientColorPicker.SelectedColor.ToString (); + TT.Options.Settings.MainTaskbarStyle.WindowsAccentAlpha = (byte) WindowsAccentAlphaSlider.Value; TT.Options.Settings.MainTaskbarStyle.Colorize = ColorizeBlurCheckBox.IsChecked ?? false; TT.Options.Settings.MainTaskbarStyle.UseWindowsAccentColor = WindowsAccentColorCheckBox.IsChecked ?? false; @@ -110,185 +102,159 @@ private void SaveSettings() TT.Options.Settings.StartMinimized = StartMinimizedCheckBox.IsChecked ?? false; TT.Options.Settings.StartWhenLaunched = StartWhenLaunchedCheckBox.IsChecked ?? false; - TT.SaveOptions(); + TT.SaveOptions (); } - private void Window_ContentRendered(object sender, EventArgs e) - { - PopulateComboBoxes(); - LoadSettings(); + private void Window_ContentRendered(object sender, EventArgs e) { + PopulateComboBoxes (); + LoadSettings (); WindowInitialized = true; - if (TT.Options.Settings.StartMinimized) { this.WindowState = WindowState.Minimized; } - if (TT.Options.Settings.StartWhenLaunched) { StartStopButton_Click(null, null); } + if (TT.Options.Settings.StartMinimized) + WindowState = WindowState.Minimized; + if (TT.Options.Settings.StartWhenLaunched) + StartStopButton_Click (null, null); // Listen for name change changes across all processes/threads on current desktop - WindowStateHook = Externals.SetWinEventHook(EVENT_MIN, EVENT_MAX, IntPtr.Zero, procDelegate, 0, 0, WINEVENT_OUTOFCONTEXT); + WindowStateHook = Externals.SetWinEventHook (EVENT_MIN, EVENT_MAX, IntPtr.Zero, procDelegate, 0, 0, WINEVENT_OUTOFCONTEXT); } #endregion Initializations #region Destructors - private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) - { - SysTrayIcon.Dispose(); - SaveSettings(); + private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { + SysTrayIcon.Dispose (); + SaveSettings (); RunApplyTask = false; - Externals.UnhookWinEvent(WindowStateHook); + Externals.UnhookWinEvent (WindowStateHook); } - private void CloseMainWindow(object sender, RoutedEventArgs e) - { - this.Close(); + private void CloseMainWindow(object sender, RoutedEventArgs e) { + this.Close (); } #endregion Destructors #region Functions - private void ApplyToAllTaskbars() - { - Taskbars.Bars = new List(); - - while (RunApplyTask) - { - if (FindTaskbarHandles) - { - Taskbars.Bars.Add(new Taskbar(Externals.FindWindow("Shell_TrayWnd", null))); + private void ApplyToAllTaskbars() { + Taskbars.Bars = new List (); + + while (RunApplyTask) { + if (FindTaskbarHandles) { + Taskbars.Bars.Add (new Taskbar (Externals.FindWindow ("Shell_TrayWnd", null))); //TaskbarList.Add(FindWindow(null, "Pins view")); - IntPtr otherBars = IntPtr.Zero; + var otherBars = IntPtr.Zero; //IntPtr cortana = FindWindowEx(hWndList[0], IntPtr.Zero, "TrayDummySearchControl", null); //hWndList.Add(cortana); - while (true) - { - otherBars = Externals.FindWindowEx(IntPtr.Zero, otherBars, "Shell_SecondaryTrayWnd", ""); + while (true) { + otherBars = Externals.FindWindowEx (IntPtr.Zero, otherBars, "Shell_SecondaryTrayWnd", ""); if (otherBars == IntPtr.Zero) { break; } - else { Taskbars.Bars.Add(new Taskbar(otherBars)); } + Taskbars.Bars.Add (new Taskbar (otherBars)); } FindTaskbarHandles = false; - App.Current.Dispatcher.Invoke(() => UpdateAllSettings()); + App.Current.Dispatcher.Invoke (UpdateAllSettings); } - if (Taskbars.MaximizedStateChanged) - { - Taskbars.UpdateMaximizedState(); - Taskbars.UpdateAllSettings(); + if (Taskbars.MaximizedStateChanged) { + Taskbars.UpdateMaximizedState (); + Taskbars.UpdateAllSettings (); } - foreach (Taskbar taskbar in Taskbars.Bars) - { - Taskbars.ApplyStyles(taskbar); + foreach (var taskbar in Taskbars.Bars) { + Taskbars.ApplyStyles (taskbar); } - Thread.Sleep(10); + Thread.Sleep (10); } } - protected override void OnSourceInitialized(EventArgs e) - { - base.OnSourceInitialized(e); + protected override void OnSourceInitialized(EventArgs e) { + base.OnSourceInitialized (e); - IntPtr mainWindowPtr = new WindowInteropHelper(this).Handle; - HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr); - mainWindowSrc.AddHook(WndProc); + var mainWindowPtr = new WindowInteropHelper (this).Handle; + var mainWindowSrc = HwndSource.FromHwnd (mainWindowPtr); + mainWindowSrc.AddHook (WndProc); } - private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) - { - if (msg == WM_TASKBARCREATED) - { + private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { + if (msg == WM_TASKBARCREATED) { FindTaskbarHandles = true; handled = true; - } else if (msg == WM_DWMCOLORIZATIONCOLORCHANGED) { - Globals.WindowsAccentColor = WindowsAccentColor.GetColorAsInt(); // TODO: use colour from wParam + } + else if (msg == WM_DWMCOLORIZATIONCOLORCHANGED) { + Globals.WindowsAccentColor = WindowsAccentColor.GetColorAsInt (); // TODO: use colour from wParam handled = true; } return IntPtr.Zero; } - static void WinEventProc(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime) - { + static void WinEventProc(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime) { //if ((idObject != 0 || idChild != 0) { return; } - - WindowPlacement placement = new WindowPlacement(); - placement.length = Marshal.SizeOf(placement); - Externals.GetWindowPlacement(hwnd, ref placement); + + var placement = new WindowPlacement (); + placement.length = Marshal.SizeOf (placement); + Externals.GetWindowPlacement (hwnd, ref placement); // Window is closing - if (idObject == -2 && idChild == 5) - { - if (MaximizedWindows.Contains(hwnd)) - { - LastClosedWindow = hwnd; - LastClosedWindowTime = DateTime.Now; - MaximizedWindows.Remove(hwnd); - Taskbars.MaximizedStateChanged = true; - } + if (idObject == -2 && idChild == 5) { + if (!MaximizedWindows.Contains (hwnd)) + return; + LastClosedWindow = hwnd; + LastClosedWindowTime = DateTime.Now; + MaximizedWindows.Remove (hwnd); + Taskbars.MaximizedStateChanged = true; } - else if (placement.showCmd == WindowPlacementCommands.SW_MAXIMIZE || placement.showCmd == WindowPlacementCommands.SW_SHOWMAXIMIZED) - { - if (!MaximizedWindows.Contains(hwnd)) - { - if (LastClosedWindow == hwnd && ((TimeSpan)(DateTime.Now - LastClosedWindowTime)).TotalSeconds < 1) { return; } - - MaximizedWindows.Add(hwnd); - Taskbars.MaximizedStateChanged = true; - } + else if (placement.showCmd == WindowPlacementCommands.SW_MAXIMIZE || placement.showCmd == WindowPlacementCommands.SW_SHOWMAXIMIZED) { + if (MaximizedWindows.Contains (hwnd) + || LastClosedWindow == hwnd && (DateTime.Now - LastClosedWindowTime).TotalSeconds < 1) + return; + MaximizedWindows.Add (hwnd); + Taskbars.MaximizedStateChanged = true; } - else if (placement.showCmd == WindowPlacementCommands.SW_NORMAL) - { - if (MaximizedWindows.Contains(hwnd)) - { - MaximizedWindows.Remove(hwnd); - Taskbars.MaximizedStateChanged = true; - } + else if (placement.showCmd == WindowPlacementCommands.SW_NORMAL) { + if (!MaximizedWindows.Contains (hwnd)) + return; + MaximizedWindows.Remove (hwnd); + Taskbars.MaximizedStateChanged = true; } - else if (placement.showCmd == WindowPlacementCommands.SW_SHOWMINIMIZED || placement.showCmd == WindowPlacementCommands.SW_MINIMIZE) - { - if (MaximizedWindows.Contains(hwnd)) - { - MaximizedWindows.Remove(hwnd); - Taskbars.MaximizedStateChanged = true; - } + else if (placement.showCmd == WindowPlacementCommands.SW_SHOWMINIMIZED || placement.showCmd == WindowPlacementCommands.SW_MINIMIZE) { + if (!MaximizedWindows.Contains (hwnd)) + return; + MaximizedWindows.Remove (hwnd); + Taskbars.MaximizedStateChanged = true; } - - } - private void UpdateAllSettings() - { - SetAccentState((AccentState)AccentStateComboBox.SelectedItem); - SetTaskbarColor(GradientColorPicker.SelectedColor ?? Color.FromArgb(255, 255, 255, 255)); - SetAccentFlags(ColorizeBlurCheckBox.IsChecked ?? false); - WindowsAccentColorCheckBox_Changed(null, null); - SetWindowsAccentAlpha((byte)WindowsAccentAlphaSlider.Value); - - Taskbars.UpdateAllSettings(); + private void UpdateAllSettings() { + SetAccentState ((AccentState) AccentStateComboBox.SelectedItem); + SetTaskbarColor (GradientColorPicker.SelectedColor ?? Colors.White); + SetAccentFlags (ColorizeBlurCheckBox.IsChecked ?? false); + WindowsAccentColorCheckBox_Changed (null, null); + SetWindowsAccentAlpha ((byte) WindowsAccentAlphaSlider.Value); + + Taskbars.UpdateAllSettings (); } - private void SwitchTaskbarBeingEdited(string switchTo) - { + private void SwitchTaskbarBeingEdited(string switchTo) { TaskbarBeingEdited = switchTo; - ShowTaskbarSettings(TaskbarBeingEdited); + ShowTaskbarSettings (TaskbarBeingEdited); EditSwitchButton.Content = $"{TaskbarBeingEdited} Taskbar"; } - private void ShowTaskbarSettings(string tb) - { - if (tb == "Main") - { - AccentStateComboBox.SelectedItem = (AccentState)TT.Options.Settings.MainTaskbarStyle.AccentState; - GradientColorPicker.SelectedColor = (Color)ColorConverter.ConvertFromString(TT.Options.Settings.MainTaskbarStyle.GradientColor); + private void ShowTaskbarSettings(string tb) { + if (tb == "Main") { + AccentStateComboBox.SelectedItem = (AccentState) TT.Options.Settings.MainTaskbarStyle.AccentState; + GradientColorPicker.SelectedColor = (Color) ColorConverter.ConvertFromString (TT.Options.Settings.MainTaskbarStyle.GradientColor); WindowsAccentAlphaSlider.Value = TT.Options.Settings.MainTaskbarStyle.WindowsAccentAlpha; ColorizeBlurCheckBox.IsChecked = TT.Options.Settings.MainTaskbarStyle.Colorize; WindowsAccentColorCheckBox.IsChecked = TT.Options.Settings.MainTaskbarStyle.UseWindowsAccentColor; } - else if (tb == "Maximized") - { - AccentStateComboBox.SelectedItem = (AccentState)TT.Options.Settings.MaximizedTaskbarStyle.AccentState; - GradientColorPicker.SelectedColor = (Color)ColorConverter.ConvertFromString(TT.Options.Settings.MaximizedTaskbarStyle.GradientColor); + else if (tb == "Maximized") { + AccentStateComboBox.SelectedItem = (AccentState) TT.Options.Settings.MaximizedTaskbarStyle.AccentState; + GradientColorPicker.SelectedColor = (Color) ColorConverter.ConvertFromString (TT.Options.Settings.MaximizedTaskbarStyle.GradientColor); WindowsAccentAlphaSlider.Value = TT.Options.Settings.MaximizedTaskbarStyle.WindowsAccentAlpha; ColorizeBlurCheckBox.IsChecked = TT.Options.Settings.MaximizedTaskbarStyle.Colorize; WindowsAccentColorCheckBox.IsChecked = TT.Options.Settings.MaximizedTaskbarStyle.UseWindowsAccentColor; @@ -298,132 +264,113 @@ private void ShowTaskbarSettings(string tb) #endregion Functions #region Control Handles - private void StartStopButton_Click(object sender, RoutedEventArgs e) - { - if (RunApplyTask) - { + private void StartStopButton_Click(object sender, RoutedEventArgs e) { + if (RunApplyTask) { StartStopButton.Content = "Start"; RunApplyTask = false; } - else - { + else { StartStopButton.Content = "Stop"; RunApplyTask = true; - ApplyTask = new Task(() => ApplyToAllTaskbars()); - ApplyTask.Start(); + ApplyTask = new Task (ApplyToAllTaskbars); + ApplyTask.Start (); } } - private void AccentStateComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) - { - if (!WindowInitialized) return; - SetAccentState((AccentState)AccentStateComboBox.SelectedItem); + private void AccentStateComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { + if (!WindowInitialized) + return; + SetAccentState ((AccentState) AccentStateComboBox.SelectedItem); } - private void GradientColorPicker_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs e) - { - if (!WindowInitialized) return; + private void GradientColorPicker_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs e) { + if (!WindowInitialized) + return; - SetTaskbarColor(GradientColorPicker.SelectedColor ?? Color.FromArgb(255, 255, 255, 255)); + SetTaskbarColor (GradientColorPicker.SelectedColor ?? Colors.White); } - private void ColorizeBlurCheckBox_Changed(object sender, RoutedEventArgs e) - { - if (!WindowInitialized) return; - SetAccentFlags(ColorizeBlurCheckBox.IsChecked ?? false); + private void ColorizeBlurCheckBox_Changed(object sender, RoutedEventArgs e) { + if (!WindowInitialized) + return; + SetAccentFlags (ColorizeBlurCheckBox.IsChecked ?? false); } - private void SysTrayIcon_MouseClick(object sender, EventArgs e) - { - System.Windows.Forms.MouseEventArgs me = (System.Windows.Forms.MouseEventArgs)e; - if (me.Button == System.Windows.Forms.MouseButtons.Right) - { - SysTrayContextMenu.PlacementTarget = sender as Button; - SysTrayContextMenu.IsOpen = true; - this.Activate(); - } + private void SysTrayIcon_MouseClick(object sender, EventArgs e) { + var me = (System.Windows.Forms.MouseEventArgs) e; + if (me.Button != System.Windows.Forms.MouseButtons.Right) + return; + SysTrayContextMenu.PlacementTarget = sender as Button; + SysTrayContextMenu.IsOpen = true; + Activate (); } - private void WindowsAccentColorCheckBox_Changed(object sender, RoutedEventArgs e) - { - Globals.WindowsAccentColor = WindowsAccentColor.GetColorAsInt(); + private void WindowsAccentColorCheckBox_Changed(object sender, RoutedEventArgs e) { + Globals.WindowsAccentColor = WindowsAccentColor.GetColorAsInt (); - if (!WindowInitialized) return; + if (!WindowInitialized) + return; - bool use = WindowsAccentColorCheckBox.IsChecked ?? false; - SetUseAccentColor(use); + var use = WindowsAccentColorCheckBox.IsChecked ?? false; + SetUseAccentColor (use); GradientColorPicker.IsEnabled = !use; } - private void UseMaximizedSettingsCheckBox_Changed(object sender, RoutedEventArgs e) - { - if (!WindowInitialized) return; + private void UseMaximizedSettingsCheckBox_Changed(object sender, RoutedEventArgs e) { + if (!WindowInitialized) + return; TT.Options.Settings.UseDifferentSettingsWhenMaximized = UseMaximizedSettingsCheckBox.IsChecked ?? false; - Taskbars.UpdateAllSettings(); + Taskbars.UpdateAllSettings (); } - private void WindowsAccentAlphaSlider_DragCompleted(object sender, RoutedEventArgs e) - { + private void WindowsAccentAlphaSlider_DragCompleted(object sender, RoutedEventArgs e) { alphaDragStarted = false; - SetWindowsAccentAlpha((byte)WindowsAccentAlphaSlider.Value); + SetWindowsAccentAlpha ((byte) WindowsAccentAlphaSlider.Value); } - private void WindowsAccentAlphaSlider_DragStarted(object sender, RoutedEventArgs e) - { + private void WindowsAccentAlphaSlider_DragStarted(object sender, RoutedEventArgs e) { alphaDragStarted = true; } - private void WindowsAccentAlphaSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) - { - if (!WindowInitialized) return; + private void WindowsAccentAlphaSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { + if (!WindowInitialized) + return; if (!alphaDragStarted) - { - SetWindowsAccentAlpha((byte)WindowsAccentAlphaSlider.Value); - } + SetWindowsAccentAlpha ((byte) WindowsAccentAlphaSlider.Value); } - private void OptionsButton_Click(object sender, RoutedEventArgs e) - { - if (MainGrid.RowDefinitions[2].Height == new GridLength(0)) - { - MainGrid.RowDefinitions[2].Height = new GridLength(90); - this.Height += 90; + private void OptionsButton_Click(object sender, RoutedEventArgs e) { + if (MainGrid.RowDefinitions[2].Height == new GridLength (0)) { + MainGrid.RowDefinitions[2].Height = new GridLength (90); + Height += 90; } - else - { - MainGrid.RowDefinitions[2].Height = new GridLength(0); - this.Height -= 90; + else { + MainGrid.RowDefinitions[2].Height = new GridLength (0); + Height -= 90; } } - private void StartWithWindowsCheckBox_Changed(object sender, RoutedEventArgs e) - { - if (!WindowInitialized) return; + private void StartWithWindowsCheckBox_Changed(object sender, RoutedEventArgs e) { + if (!WindowInitialized) + return; TT.Options.Settings.StartWithWindows = StartWithWindowsCheckBox.IsChecked ?? false; - try - { - if (TT.Options.Settings.StartWithWindows) { rkApp.SetValue("TaskbarTools", $"\"{MyPath}\""); } - else { rkApp.DeleteValue("TaskbarTools", false); } + try { + if (TT.Options.Settings.StartWithWindows) { rkApp.SetValue ("TaskbarTools", $"\"{MyPath}\""); } + else { rkApp.DeleteValue ("TaskbarTools", false); } } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Failed to Set Registry Key"); + catch (Exception ex) { + MessageBox.Show (ex.Message, "Failed to Set Registry Key"); } } - private void EditSwitchButton_Click(object sender, RoutedEventArgs e) - { + private void EditSwitchButton_Click(object sender, RoutedEventArgs e) { if (TaskbarBeingEdited == "Main") - { - SwitchTaskbarBeingEdited("Maximized"); - } + SwitchTaskbarBeingEdited ("Maximized"); else if (TaskbarBeingEdited == "Maximized") - { - SwitchTaskbarBeingEdited("Main"); - } + SwitchTaskbarBeingEdited ("Main"); } #endregion Control Handles diff --git a/TaskbarTool/Properties/Resources.Designer.cs b/TaskbarTool/Properties/Resources.Designer.cs index 872b3fa..6cd0d66 100644 --- a/TaskbarTool/Properties/Resources.Designer.cs +++ b/TaskbarTool/Properties/Resources.Designer.cs @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TaskbarTool.Properties.Resources", typeof(Resources).Assembly); + var temp = new global::System.Resources.ResourceManager("TaskbarTool.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/TaskbarTool/Taskbar/Taskbar.cs b/TaskbarTool/Taskbar/Taskbar.cs index 64459e3..47dd4ef 100644 --- a/TaskbarTool/Taskbar/Taskbar.cs +++ b/TaskbarTool/Taskbar/Taskbar.cs @@ -21,11 +21,11 @@ static Taskbars() public static void ApplyStyles(Taskbar taskbar) { - int sizeOfPolicy = Marshal.SizeOf(taskbar.AccentPolicy); - IntPtr policyPtr = Marshal.AllocHGlobal(sizeOfPolicy); + var sizeOfPolicy = Marshal.SizeOf(taskbar.AccentPolicy); + var policyPtr = Marshal.AllocHGlobal(sizeOfPolicy); Marshal.StructureToPtr(taskbar.AccentPolicy, policyPtr, false); - WinCompatTrData data = new WinCompatTrData(WindowCompositionAttribute.WCA_ACCENT_POLICY, policyPtr, sizeOfPolicy); + var data = new WinCompatTrData(WindowCompositionAttribute.WCA_ACCENT_POLICY, policyPtr, sizeOfPolicy); Externals.SetWindowCompositionAttribute(taskbar.HWND, ref data); @@ -34,16 +34,14 @@ public static void ApplyStyles(Taskbar taskbar) public static void UpdateMaximizedState() { - foreach (Taskbar tb in Bars) - { + foreach (var tb in Bars) tb.FindMaximizedWindowsHere(); - } MaximizedStateChanged = false; } public static void UpdateAllSettings() { - foreach (Taskbar tb in Bars) + foreach (var tb in Bars) { if (tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized) { tbType = "Maximized"; } else { tbType = "Main"; } @@ -56,21 +54,22 @@ public static void UpdateAllSettings() public static void UpdateAccentState() { - foreach (Taskbar tb in Bars) + foreach (var tb in Bars) { - if (tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized) { tbType = "Maximized"; } - else { tbType = "Main"; } - + tbType = tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized + ? "Maximized" + : "Main"; tb.AccentPolicy.AccentState = Globals.GetAccentState(tbType); } } public static void UpdateAccentFlags() { - foreach (Taskbar tb in Bars) + foreach (var tb in Bars) { - if (tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized) { tbType = "Maximized"; } - else { tbType = "Main"; } + tbType = tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized + ? "Maximized" + : "Main"; tb.AccentPolicy.AccentFlags = Globals.GetAccentFlags(tbType); } @@ -78,10 +77,11 @@ public static void UpdateAccentFlags() public static void UpdateColor() { - foreach (Taskbar tb in Bars) + foreach (var tb in Bars) { - if (tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized) { tbType = "Maximized"; } - else { tbType = "Main"; } + tbType = tb.HasMaximizedWindow && TT.Options.Settings.UseDifferentSettingsWhenMaximized + ? "Maximized" + : "Main"; tb.AccentPolicy.GradientColor = Globals.GetTaskbarColor(tbType); } @@ -107,17 +107,16 @@ public Taskbar(IntPtr hwnd) public void FindMaximizedWindowsHere() { - bool isInThisScreen = false; + var isInThisScreen = false; IntPtr thisAppMonitor; - foreach (IntPtr hwnd in Globals.MaximizedWindows) + foreach (var hwnd in Globals.MaximizedWindows) { thisAppMonitor = Externals.MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST); if (Monitor == thisAppMonitor) { isInThisScreen = true; } } HasMaximizedWindow = isInThisScreen; - return; } } }