[Settings]Add a link to the OOBE What's New page in the Settings menu (#29028)

* Adds a link to the OOBE What's New Section in the ShellPage Navigation

* Updated verbiage to code as per recommendation

* Updated so that if the Oobe Window is active, clicking on the What's New option in the ShellPage navigates to the What's New page.

Added a "SetActiveWindow" Method the OobeWindow to easily open an active window of a set PowerToysModule type - this is to support being able to open the What's New Page without having to close the Oobe Window and close it every time.

* Renamed SetActiveWindow to SetAppWindow

* Adjusted method and property names for naming consistency across the application

* Fixed an oversight.

---------

Co-authored-by: Ian Kraynak <iakrayna@microsoft.com>
This commit is contained in:
Ian Kraynak
2023-11-21 14:19:11 -05:00
committed by GitHub
parent 949b9a6185
commit 1a8007ca0a
5 changed files with 55 additions and 0 deletions

View File

@@ -42,6 +42,11 @@ namespace Microsoft.PowerToys.Settings.UI.Views
/// </summary>
public delegate void OobeOpeningCallback();
/// <summary>
/// Declaration for the opening whats new window callback function.
/// </summary>
public delegate void WhatIsNewOpeningCallback();
/// <summary>
/// Declaration for the opening flyout window callback function.
/// </summary>
@@ -87,6 +92,11 @@ namespace Microsoft.PowerToys.Settings.UI.Views
/// </summary>
public static OobeOpeningCallback OpenOobeWindowCallback { get; set; }
/// <summary>
/// Gets or sets callback function for opening oobe window
/// </summary>
public static WhatIsNewOpeningCallback OpenWhatIsNewWindowCallback { get; set; }
/// <summary>
/// Gets or sets callback function for opening flyout window
/// </summary>
@@ -202,6 +212,15 @@ namespace Microsoft.PowerToys.Settings.UI.Views
OpenOobeWindowCallback = implementation;
}
/// <summary>
/// Set whats new opening callback function
/// </summary>
/// <param name="implementation">delegate function implementation.</param>
public static void SetOpenWhatIsNewCallback(WhatIsNewOpeningCallback implementation)
{
OpenWhatIsNewWindowCallback = implementation;
}
/// <summary>
/// Set flyout opening callback function
/// </summary>
@@ -317,6 +336,11 @@ namespace Microsoft.PowerToys.Settings.UI.Views
await Launcher.LaunchUriAsync(new Uri("https://aka.ms/powerToysGiveFeedback"));
}
private void WhatIsNewItem_Tapped(object sender, Microsoft.UI.Xaml.Input.TappedRoutedEventArgs e)
{
OpenWhatIsNewWindowCallback();
}
private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{
NavigationViewItem selectedItem = args.SelectedItem as NavigationViewItem;