// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using interop; using Microsoft.PowerToys.Settings.UI.OOBE.Enums; using Microsoft.PowerToys.Settings.UI.OOBE.Views; using Microsoft.UI; using Microsoft.UI.Windowing; using Microsoft.UI.Xaml; using Windows.ApplicationModel.Resources; namespace Microsoft.PowerToys.Settings.UI { /// /// An empty window that can be used on its own or navigated to within a Frame. /// public sealed partial class OobeWindow : Window { private PowerToysModules initialModule; public OobeWindow(PowerToysModules initialModule) { this.InitializeComponent(); // Set window icon var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this); WindowId windowId = Win32Interop.GetWindowIdFromWindow(hWnd); AppWindow appWindow = AppWindow.GetFromWindowId(windowId); appWindow.SetIcon("icon.ico"); this.initialModule = initialModule; ResourceLoader loader = ResourceLoader.GetForViewIndependentUse(); Title = loader.GetString("OobeWindow_Title"); if (shellPage != null) { shellPage.NavigateToModule(this.initialModule); } OobeShellPage.SetRunSharedEventCallback(() => { return Constants.PowerLauncherSharedEvent(); }); OobeShellPage.SetColorPickerSharedEventCallback(() => { return Constants.ShowColorPickerSharedEvent(); }); OobeShellPage.SetOpenMainWindowCallback((Type type) => { App.OpenSettingsWindow(type); }); } private void Window_Closed(object sender, WindowEventArgs args) { App.ClearOobeWindow(); } } }