From d1e9f057bb3dd72fb3e7bd43aa21e9180c98f7cc Mon Sep 17 00:00:00 2001 From: Tim Kennedy Date: Sat, 4 Nov 2023 15:25:10 -0500 Subject: [PATCH] Additional work on start minimized. #22 --- GetMyIP/GlobalUsings.cs | 4 ++-- GetMyIP/Helpers/MainWindowHelpers.cs | 30 +++++++++++++++++++++---- GetMyIP/ViewModels/SettingsViewModel.cs | 2 +- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/GetMyIP/GlobalUsings.cs b/GetMyIP/GlobalUsings.cs index 7dce7ed..717aaa1 100644 --- a/GetMyIP/GlobalUsings.cs +++ b/GetMyIP/GlobalUsings.cs @@ -25,7 +25,6 @@ global using System.Windows.Input; global using System.Windows.Markup; global using System.Windows.Media; -global using System.Windows.Navigation; global using CommandLine; @@ -39,7 +38,8 @@ global using GetMyIP.Helpers; global using GetMyIP.Models; global using GetMyIP.ViewModels; -global using GetMyIP.Views; + +global using H.NotifyIcon; global using MaterialDesignColors; global using MaterialDesignThemes.Wpf; diff --git a/GetMyIP/Helpers/MainWindowHelpers.cs b/GetMyIP/Helpers/MainWindowHelpers.cs index a723945..422c34d 100644 --- a/GetMyIP/Helpers/MainWindowHelpers.cs +++ b/GetMyIP/Helpers/MainWindowHelpers.cs @@ -1,5 +1,7 @@ // Copyright (c) Tim Kennedy. All Rights Reserved. Licensed under the MIT License. +using H.NotifyIcon; + namespace GetMyIP.Helpers; internal static class MainWindowHelpers @@ -14,19 +16,38 @@ internal static async void GetMyIPStartUp() if (CommandLineHelpers.ProcessCommandLine()) { MainWindowUIHelpers.ApplyUISettings(); + string returnedJson = await IpHelpers.GetAllInfoAsync(); IpHelpers.ProcessProvider(returnedJson); - EnableTrayIcon(UserSettings.Setting.MinimizeToTray); - if (UserSettings.Setting.StartMinimized) + + if (UserSettings.Setting.StartMinimized && UserSettings.Setting.MinimizeToTray) + { + EnableTrayIcon(true); + WindowExtensions.Hide(_mainWindow); + } + else if (UserSettings.Setting.StartMinimized && !UserSettings.Setting.MinimizeToTray) { _mainWindow.WindowState = WindowState.Minimized; + _mainWindow.Visibility = Visibility.Visible; + EnableTrayIcon(false); + } + else if (!UserSettings.Setting.StartMinimized && UserSettings.Setting.MinimizeToTray) + { + _mainWindow.WindowState = WindowState.Normal; + _mainWindow.Visibility = Visibility.Visible; + EnableTrayIcon(true); + } + else + { + _mainWindow.WindowState = WindowState.Normal; + _mainWindow.Visibility = Visibility.Visible; + EnableTrayIcon(false); } } else { _mainWindow.Visibility = Visibility.Hidden; - string returnedJson = await IpHelpers.GetExternalInfo(); - IpHelpers.LogIPInfo(returnedJson); + _mainWindow.Close(); } } @@ -196,6 +217,7 @@ public static void EnableTrayIcon(bool value) { if (value) { + _mainWindow.tbIcon.ForceCreate(); _mainWindow.tbIcon.Visibility = Visibility.Visible; CustomToolTip.Instance.ToolTipText = ToolTipHelper.BuildToolTip(); } diff --git a/GetMyIP/ViewModels/SettingsViewModel.cs b/GetMyIP/ViewModels/SettingsViewModel.cs index e6e57e7..6aa5b6d 100644 --- a/GetMyIP/ViewModels/SettingsViewModel.cs +++ b/GetMyIP/ViewModels/SettingsViewModel.cs @@ -129,7 +129,7 @@ private static void StartWithWindows(RoutedEventArgs e) } } } - else + else if (RegRun.RegRunEntry(_getmyip)) { string result = RegRun.RemoveRegEntry(_getmyip); if (result == "OK")