2021-03-03 01:56:37 +08:00
|
|
|
|
// 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.
|
|
|
|
|
|
2021-11-29 19:59:38 +08:00
|
|
|
|
using System.Collections.Generic;
|
2021-05-20 20:07:34 +08:00
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
using System.IO;
|
2021-09-07 02:21:18 +08:00
|
|
|
|
using Microsoft.PowerToys.Settings.UI.Library;
|
2021-03-03 01:56:37 +08:00
|
|
|
|
using Microsoft.PowerToys.Settings.UI.OOBE.Enums;
|
|
|
|
|
using Microsoft.PowerToys.Settings.UI.OOBE.ViewModel;
|
|
|
|
|
using Microsoft.PowerToys.Settings.UI.Views;
|
2022-04-20 04:00:28 +08:00
|
|
|
|
using Microsoft.UI.Xaml.Controls;
|
|
|
|
|
using Microsoft.UI.Xaml.Navigation;
|
2021-03-03 01:56:37 +08:00
|
|
|
|
|
|
|
|
|
namespace Microsoft.PowerToys.Settings.UI.OOBE.Views
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// An empty page that can be used on its own or navigated to within a Frame.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public sealed partial class OobeShortcutGuide : Page
|
|
|
|
|
{
|
|
|
|
|
public OobePowerToysModule ViewModel { get; set; }
|
|
|
|
|
|
|
|
|
|
public OobeShortcutGuide()
|
|
|
|
|
{
|
|
|
|
|
this.InitializeComponent();
|
2022-04-20 04:00:28 +08:00
|
|
|
|
ViewModel = new OobePowerToysModule(OobeShellPage.OobeShellHandler.Modules[(int)PowerToysModules.ShortcutGuide]);
|
2021-03-03 01:56:37 +08:00
|
|
|
|
DataContext = ViewModel;
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-20 04:00:28 +08:00
|
|
|
|
private void Start_ShortcutGuide_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
|
2021-03-03 01:56:37 +08:00
|
|
|
|
{
|
2021-05-20 20:07:34 +08:00
|
|
|
|
var executablePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, @"..\modules\ShortcutGuide\ShortcutGuide\PowerToys.ShortcutGuide.exe");
|
2022-04-20 04:00:28 +08:00
|
|
|
|
var id = System.Environment.ProcessId.ToString(CultureInfo.InvariantCulture);
|
2021-05-20 20:07:34 +08:00
|
|
|
|
var p = Process.Start(executablePath, id);
|
|
|
|
|
if (p != null)
|
2021-03-03 01:56:37 +08:00
|
|
|
|
{
|
2021-05-20 20:07:34 +08:00
|
|
|
|
p.Close();
|
2021-03-03 01:56:37 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ViewModel.LogRunningModuleEvent();
|
|
|
|
|
}
|
|
|
|
|
|
2022-04-20 04:00:28 +08:00
|
|
|
|
private void SettingsLaunchButton_Click(object sender, Microsoft.UI.Xaml.RoutedEventArgs e)
|
2021-03-03 01:56:37 +08:00
|
|
|
|
{
|
|
|
|
|
if (OobeShellPage.OpenMainWindowCallback != null)
|
|
|
|
|
{
|
|
|
|
|
OobeShellPage.OpenMainWindowCallback(typeof(ShortcutGuidePage));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ViewModel.LogOpeningSettingsEvent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnNavigatedTo(NavigationEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ViewModel.LogOpeningModuleEvent();
|
2021-11-29 19:59:38 +08:00
|
|
|
|
var settingsProperties = SettingsRepository<ShortcutGuideSettings>.GetInstance(new SettingsUtils()).SettingsConfig.Properties;
|
2021-09-07 02:21:18 +08:00
|
|
|
|
|
2021-11-29 19:59:38 +08:00
|
|
|
|
if ((bool)settingsProperties.UseLegacyPressWinKeyBehavior.Value)
|
|
|
|
|
{
|
|
|
|
|
HotkeyControl.Keys = new List<object> { 92 };
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
HotkeyControl.Keys = settingsProperties.OpenShortcutGuide.GetKeysList();
|
|
|
|
|
}
|
2021-03-03 01:56:37 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnNavigatedFrom(NavigationEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
ViewModel.LogClosingModuleEvent();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|