mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 03:37:59 +01:00
[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:
@@ -7,6 +7,7 @@ using ManagedCommon;
|
||||
using Microsoft.PowerLauncher.Telemetry;
|
||||
using Microsoft.PowerToys.Settings.UI.Helpers;
|
||||
using Microsoft.PowerToys.Settings.UI.Library;
|
||||
using Microsoft.PowerToys.Settings.UI.OOBE.Views;
|
||||
using Microsoft.PowerToys.Settings.UI.Views;
|
||||
using Microsoft.PowerToys.Telemetry;
|
||||
using Microsoft.UI;
|
||||
@@ -112,6 +113,21 @@ namespace Microsoft.PowerToys.Settings.UI
|
||||
App.GetOobeWindow().Activate();
|
||||
});
|
||||
|
||||
// open whats new window
|
||||
ShellPage.SetOpenWhatIsNewCallback(() =>
|
||||
{
|
||||
if (App.GetOobeWindow() == null)
|
||||
{
|
||||
App.SetOobeWindow(new OobeWindow(Microsoft.PowerToys.Settings.UI.OOBE.Enums.PowerToysModules.WhatsNew, App.IsDarkTheme()));
|
||||
}
|
||||
else
|
||||
{
|
||||
App.GetOobeWindow().SetAppWindow(OOBE.Enums.PowerToysModules.WhatsNew);
|
||||
}
|
||||
|
||||
App.GetOobeWindow().Activate();
|
||||
});
|
||||
|
||||
// open flyout
|
||||
ShellPage.SetOpenFlyoutCallback((POINT? p) =>
|
||||
{
|
||||
|
||||
@@ -105,6 +105,14 @@ namespace Microsoft.PowerToys.Settings.UI
|
||||
});
|
||||
}
|
||||
|
||||
public void SetAppWindow(PowerToysModules module)
|
||||
{
|
||||
if (shellPage != null)
|
||||
{
|
||||
shellPage.NavigateToModule(module);
|
||||
}
|
||||
}
|
||||
|
||||
private void OobeWindow_SizeChanged(object sender, WindowSizeChangedEventArgs args)
|
||||
{
|
||||
var dpi = NativeMethods.GetDpiForWindow(_hWnd);
|
||||
|
||||
@@ -215,6 +215,10 @@
|
||||
x:Uid="OOBE_NavViewItem"
|
||||
Icon="{ui:FontIcon Glyph=}"
|
||||
Tapped="OOBEItem_Tapped" />
|
||||
<NavigationViewItem
|
||||
x:Uid="WhatIsNew_NavViewItem"
|
||||
Icon="{ui:FontIcon Glyph=}"
|
||||
Tapped="WhatIsNewItem_Tapped" />
|
||||
<NavigationViewItem
|
||||
x:Uid="Feedback_NavViewItem"
|
||||
Icon="{ui:FontIcon Glyph=}"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -2182,6 +2182,9 @@ From there, simply click on one of the supported files in the File Explorer and
|
||||
<data name="Oobe_NavViewItem.Content" xml:space="preserve">
|
||||
<value>Welcome to PowerToys</value>
|
||||
<comment>Don't loc "PowerToys"</comment>
|
||||
</data>
|
||||
<data name="WhatIsNew_NavViewItem.Content" xml:space="preserve">
|
||||
<value>What's New</value>
|
||||
</data>
|
||||
<data name="Feedback_NavViewItem.Content" xml:space="preserve">
|
||||
<value>Give feedback</value>
|
||||
|
||||
Reference in New Issue
Block a user